NGINX + FastCGIã§CakePHPç°å¢æ§ç¯ - Ubuntu 10.04ç·¨
CakePHPãUbuntu 10.04ã«NGINX+fast-cgiã§æ§ç¯ããæé ã®ã¡ã¢ã§ãã
ãã®å
容ã¯ãã»ã¼ãã¡ãã®è¨äºã®ç¿»è¨³ã«ãªãã¾ãã
http://kevin.vanzonneveld.net/techblog/article/cakephp_and_nginx/
NGINXãfast-cgiã§åä½ããPHPã¨é£æºããå ´åãlighttpdã®CGIãããã»ã¹å®è¡ããã¢ã¸ã¥ã¼ã«spawn-fcgiãå©ç¨ãã¾ãã
Ubuntu 10.04ã§ã¯æ¨æºã®ããªãã¸ããªããNGINXããã³fast-cgiãspawn-fcgiãã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
spawn-fcgiã¯ãaptã§ã¤ã³ã¹ãã¼ã«ãã¦ããã¼ã¢ã³ã¨ãã¦ã¤ã³ã¹ãã¼ã«ãããªãã®ã§ãæåã§ãã¼ã¢ã³ã¨ãã¦ç»é²ããå¿
è¦ãããã¾ãã
Ubuntu 10.10ã§ã¯spawn-fcgiã§ã¯ãªãPHP-FPMã¨ããã¢ã¸ã¥ã¼ã«ãå©ç¨ãããã¨ãå¯è½ã§ãã以ä¸ã®ãã¼ã¸ãåç
§ï¼
http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-ubuntu-10.10
swanp-cgiã¯ãã¼ã¢ã³ã®è¨å®ã¯æåã§è¡ãå¿
è¦ãããã¾ãããPHP-FPMã¯aptã使ã£ã¦èªåã§ãã¼ã¢ã³ã¨ãã¦ã¤ã³ã¹ãã¼ã«ãããã¨ãã§ãã¾ãã
ãã ããPHP-FPMã¯é常ã«ä¸å®å®ã ã¨ãkevinããã®ãµã¤ãã«æ¸ãã¦ããã¾ãã
以éãNGINXã§CakePHPãåä½ãããå¿ è¦æä½éã®æé ã説æãã¾ãã
NGINXã®ã¤ã³ã¹ãã¼ã«
$ sudo apt-get install nginx
swanp-cgiããã¼ã¢ã³ã¨ãã¦è¨å®ãã
swanp-cgiã¯ãã¼ã9000ã§èµ·åããããã«è¨å®ãã¾ãã
$ sudo vi /etc/init.d/spawn-fcgi
以ä¸ã®ã¹ã¯ãªããã¯ãhttps://github.com/kvz/kvzlib/blob/master/configs/spawnfcgi_initdã«æ²è¼ããã¦ãã¾ãã
#!/bin/sh USER=www-data GROUP=www-data PATH=/sbin:/bin:/usr/sbin:/usr/bin SSD="/sbin/start-stop-daemon" PHP_FCGI_CHILDREN=10 PHP_FCGI_MAX_REQUESTS=1000 RETVAL=0 FCGI_DAEMON="/usr/bin/spawn-fcgi" FCGI_PROGRAM="/usr/bin/php5-cgi" FCGI_PORT="9000" FCGI_SOCKET="/tmp/php-fastcgi.sock" FCGI_PIDFILE="/var/run/spawn-fcgi.pid" #test -x $LIGHTY_DAEMON || exit 0 set -e export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Starting spawn-fcgi" if ! $FCGI_DAEMON -p $FCGI_PORT -f $FCGI_PROGRAM -u $USER -g $GROUP -C $PHP_FCGI_CHILDREN -P $FCGI_PIDFILE; then log_end_msg 1 else log_end_msg 0 fi RETVAL=$? ;; stop) log_daemon_msg "Killing all spawn-fcgi processes" if killall --signal 9 php5-cgi > /dev/null 2> /dev/null; then log_end_msg 0 else log_end_msg 1 fi RETVAL=$? ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit $RETVAL
spwan-fcgiã«å®å¹æ¨©éãã¤ãã¦ããã¼ã¢ã³ã¨ãã¦ç»é²ãã¾ãã
$ sudo chmod u+x /etc/init.d/spawn-fcgi $ sudo update-rc.d spawn-fcgi defaults
spwan-fcgiãèµ·åãã¦ããã¾ãã
/etc/init.d/spawn-fcgi start
NGINXã«CakePHPã¸ã®æ§æãè¨å®ãã
$ sudo vi /etc/nginx/sites-available/default
server { listen 80; server_name example.com www.example.com; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; rewrite_log on; root /var/www/example.com/app/webroot; index index.php index.html index.htm; # Not found this on disk? # Feed to CakePHP for further processing! if (!-e $request_filename) { rewrite ^/(.+)$ /index.php?url=$1 last; break; } # Pass the PHP scripts to FastCGI server # listening on 127.0.0.1:9000 location ~ \.php$ { # fastcgi_pass unix:/tmp/php-fastcgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_intercept_errors on; # to support 404s for PHP files not found fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # Static files. # Set expire headers, Turn off access log location ~* \favicon.ico$ { access_log off; expires 1d; add_header Cache-Control public; } location ~ ^/(img|cjs|ccss)/ { access_log off; expires 7d; add_header Cache-Control public; } # Deny access to .htaccess files, # git & svn repositories, etc location ~ /(\.ht|\.git|\.svn) { deny all; } }
NGINXããªã¹ã¿ã¼ããã¾ãã
$ sudo /etc/init.d/nginx restart
以ä¸ã§ãã»ããã¢ããçµäºã§ãã