« | »

2014.08.06

nginx+php5 on Ubuntu 12

Ubuntu 12.04でnginxとphp5を使う。
2014.6.9 リリース
2014.8.6 更新

UbuntuでApacheを使う場合はtaskselコマンドでLAMPを簡単にインストールできるのだが、
Apache以外を使いたい場合は従来通り1つ1つインストールして設定を書いていくことになる。

まず、nginxをインストールする。

# apt-get install nginx

設定

# vi /etc/nginx/nginx.conf

ここで設定されているユーザ名を、phpでも設定する。
うちのクラウドは1CPUなので、プロセッサ数を1に変更

Web公開用のディレクトリは、/usr/share/nginx/www
階層が深くて面倒なので、適当なディレクトリにシンボリックリンクを貼っておいても良い。

# ln -s /usr/share/nginx/www .

とりあえずサンプルなどが閲覧できるように、ファイアウォールでhttpとhttpsくらいを許可しておく。

# ufw allow http
# ufw allow https

ufwなら下記のように設定しても良い。

# ufw app list
# ufw allow "Nginx Full"

サービスを開始させると、http://からWebを確認できる。

# service nginx start


phpをインストールする。
Apacheの場合はApache側の設定だけで適当にphpを制御してくれるのだが、
nginxの場合は、CGIの処理要求が発生に応じて、nginxからphpへの要求を仲介するモジュールが必要になる。
今回はphp-fpm(FastCGI Process Manager)を使用する。MySQLも利用する場合は、php-mysqlもインストールしておく。

# apt-get install php5 php5-fpm php5-mysql

設定
nginxのdefaultを編集する。
PHPに関する設定のコメントアウトをはずす。
fastcgi_passはunix:/var/run/php5-fpm.sock;を指定する。
WordPressを使う予定がある場合は、
try_files $uri $uri/ /index.php?q=$uri&$args;
と、
if (!-e $request_filename) {....
を加えておかないと、パーマリンクが上手く動作しない。

# vi /etc/nginx/sites-available/default

www.confでlistenの設定を変更する。
listen.modeは0660でも動くかも知れない。

# vi /etc/php5/fpm/pool.d/www.conf

php-fpmが自動起動するように設定する。

# update-rc.d -f php5-fpm default

nginxとphp-fpmを再起動

# service nginx restart
# service php5-fpm restart

/usr/share/nginx/www/index.phpなどを作って動作確認。

ブラウザでアクセスして、PHPの情報が表示されれば成功。
うまくいかない場合は、/var/log/nginx/error.logを参照して原因究明。