2011. 4. 8. 17:09
[서버관련]
사용자 업로드폴더(웹에서접근가능)나 업로드폴더가 아닌 일반 이미지폴더에
<? phpinfo() ?> 로 저장후 test.jpg를 올리게 되면
nginx는 uri 뒤에 확장자만 .php면 넘기게 되어 있기때문에 보안에 주의해야합니다.
위의 경로로 test.jpg가 구동되는것을 방지하려면,
이렇게 구성해주면 됩니다.
통상적인 프레임워크를 쓰기위한 rewite 가 아래와 같이 구성되어 있으면
nginx 쓰면서 가장 보안에 주의해야할 부분입니다.
<? phpinfo() ?> 로 저장후 test.jpg를 올리게 되면
nginx는 uri 뒤에 확장자만 .php면 넘기게 되어 있기때문에 보안에 주의해야합니다.
ex) http://abc.com/images/test.jpg/xxx.php
위의 경로로 test.jpg가 구동되는것을 방지하려면,
try_files $uri $uri/ /index.php;
if (!-f $request_filename) { return 403; }
혹은
if (!-e $request_filename) { rewrite ^.*$ /index.php last; }
if (!-f $request_filename) { return 403; }
혹은
if (!-e $request_filename) { rewrite ^.*$ /index.php last; }
이렇게 구성해주면 됩니다.
통상적인 프레임워크를 쓰기위한 rewite 가 아래와 같이 구성되어 있으면
if ($request_filename ~* ".*\.(php)$") {
rewrite ^.*$ /index.php last;
}
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
상관없겠네요..rewrite ^.*$ /index.php last;
}
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
nginx 쓰면서 가장 보안에 주의해야할 부분입니다.
2011. 3. 14. 16:39
[서버관련]
php-fpm 모듈을 올릴때
/usr/local/sbin/php-fpm start
아래와 같은 에러가 나면서 start 스트립트가 멈추지 않는 현상이 나타난다.
vi /usr/local/sbin/php-fpm 의 상단에
과 같이 pid의 경로를 제대로된 경로로 수정해주니 잘되었따아.. 1시간삽질;;;
/usr/local/sbin/php-fpm start
아래와 같은 에러가 나면서 start 스트립트가 멈추지 않는 현상이 나타난다.
fpm_event_loop(), line 107: libevent: entering main loop
vi /usr/local/sbin/php-fpm 의 상단에
php_fpm_BIN=/usr/local/bin/php-cgi
php_fpm_CONF=/usr/local/etc/php-fpm.conf
;php_fpm_PID=/usr/loca/logs/php-fpm.pid
php_fpm_PID=/var/run/php-fpm.pid
php_fpm_CONF=/usr/local/etc/php-fpm.conf
과 같이 pid의 경로를 제대로된 경로로 수정해주니 잘되었따아.. 1시간삽질;;;
2011. 3. 4. 21:20
[서버관련]
nginx에서 cgi구동시
만 나올때
를 nginx.conf 에 추가해야한다.;;
No input file specified.
만 나올때
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
를 nginx.conf 에 추가해야한다.;;
2011. 2. 17. 19:20
[서버관련]
lighttpd 웹서버에서 CakePHP 프레임웍 사용할때 lighttpd.conf 셋팅방법입니다.
php.ini 에
cgi.fix_pathinfo=1
추가한다.
lighttpd.conf 의 fastcgi설정에
"broken-scriptfilename" => "enable" 추가한다.
fastcgi.server = ( ".php" =>
(( "socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi" ,
"broken-scriptfilename" => "enable"
))
)
(( "socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi" ,
"broken-scriptfilename" => "enable"
))
)
lighttpd.conf 의 rewrite 설정
url.rewrite = (
"(css|files|img|js)/(.*)" => "/$1/$2",
"^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3",
)
"(css|files|img|js)/(.*)" => "/$1/$2",
"^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3",
)
lighttpd를 재가동합니다.
2011. 2. 9. 10:33
[서버관련]
모든 php파일에 include를 추가하지 않고, 자동으로 최상단에
특정 php파일을 include한 효과를 줄 수 있습니다.
php.ini 에
auto_prepend_file = /home/httpd/html/include/auto.php
와 같이 추가해주면 됩니다.
아파치에서는 더욱 유연하게 설정됩니다.
httpd.conf 에
php_value auto_prepend_file = /home/httpd/include/auto.php
와 같이 기술하면 되며,
특정 Directory 만 적용한다면 <Directory> 안에 기술하면 되겠네요.ㅎ
php_value auto_prepend_file = /home/httpd/include/auto.php
와 같이 기술하면 되며,
특정 Directory 만 적용한다면 <Directory> 안에 기술하면 되겠네요.ㅎ
nginx 에서는 아래와 같이 적용합니다.
fastcgi_param PHP_VALUE "auto_prepend_file=/home/httpd/include/auto.php"
아쉽게도 저는 lighttpd 를 좋아하는데. lighttpd.conf에는 지원되지 않네요