読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

ArchLinuxでnginx + php (php-fpm)とか

Server nginx ArchLinux php

本日VMのArchLinuxの再インストールをした・・・そんなことより今日はnginxなWebサーバーでphpを動かしてみるかってことでphp-fpmを使ったやり方をメモ。
最近apachephp周りも少しいじくってみたけどnginxの方が簡単な印象。
php書かないからねー動かす専門だからな...まあいいや。

必要な物をインストールするよ

とりあえず適当にこのくらい...

$ sudo pacman -S nginx php php-fpm  

として...

php-fpmの設定

php-fpmはArchLinuxの場合/etc/php/php-fpm.confに設定ファイルが作られる。まずはそいつを設定する。
適当なエディタで開いて...

$ sudoedit /etc/php/php-fpm.conf

で、

user = http
group = http

というところがnginxの設定ファイル内部にある"user"に一致しているかを確認する。
続いて同じファイルの中に

listen = 127.0.0.1:9000

としてlistenを書き込む。デフォルトではunixソケットを使うようになっているので変更する。

また、最後に

listen.allowed_clients = 127.0.0.1

という行をコメントアウトして有効にしておく。

nginxを設定するよ

nginxの設定をするけど、今回はDocumentRoot(root)に当たるディレクトリを/srv/httpとする。
設定ファイルは例えばこんな具合

user=http;

#省略  

http {
    listen 80;
    server_name localhost;//任意に変更
    root /srv/http;
    index index.html index.php;

    location / {
        index index.html;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params; #fastcgi_paramsとsがつくので注意
    }

    #省略
}

という感じ"location ~ .php$"のくだりとかそのままコピペでおk。

動かしてみよう

ArchLinuxは親切なのでsystemctlでちゃんとphp-fpmが動かせるようになってる。

$ sudo systemctl start php-fpm

してから

$ sudo systemctl start nginx

として動けばとりあえずサーバーは動いた。   続いてDocumentRoot(root)以下に適当なphpファイルを作ってそれにアクセスしてみる。

$ sudo -u http echo "<?php phpinfo(); ?>" > /srv/http/test.php

とかしてブラウザで

http://localhost/test.php

にアクセスしてできたら成功。

f:id:opamp_sando:20130811011553p:plain

まあ、これは実際にVMのArchのnginxサーバーにアクセスしてみた時の画像。

エラーがでたら

エラーがでたらサーバー本体やphp-fpmのログなどを頼りに設定を確認してみよう...orz

Firefox ブラウザ無料ダウンロード