nginxの設定ではまった事

NO IMAGE

nginxでPHPのアプリ(とりあえず近くにいっぱいあるEC-CUBE)を動かそうとして3日ほどかかったのではまった点をまとめておきます

nginx.conf

restartしても読み込まれない!

service nginx reload もしくは service nginx stop service nginx start とすべし

locationの変更がよくわからない

location / {
    #root   /usr/share/nginx/html;
    root   /var/www/html;
    index  index.php index.html;
}

こう変えてもアクセスすると/usr/share/nginx/htmlへのアクセスになっていた。
解決方法はよくわからず・・・

静的ファイルに関する設定

# serve static files directly

location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
    root   /var/www/html;
    access_log        off;
    expires           30d;
}

rootを設定するのが必須。これも書かないと/usr/share/nginx/html以下を見にいきます。。

phpに関する設定

    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_pass   backend;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_param  QUERY_STRING     $query_string;
    fastcgi_param  REQUEST_METHOD   $request_method;
    fastcgi_param  CONTENT_TYPE     $content_type;
    fastcgi_param  CONTENT_LENGTH   $content_length;
    fastcgi_intercept_errors        on;
    fastcgi_ignore_client_abort     off;
    fastcgi_connect_timeout 60;
    fastcgi_send_timeout 180;
    fastcgi_read_timeout 180;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
}

fastcgi_paramが結構ポイントな気がします。
ここをドキュメントルートのパスにしないとダメっぽいです

upstream backend {
    server 127.0.0.1:9000;
}

あとはこれを書いておくと裏で動いてくれる模様

バーチャルホストの設定

ぐぐると出てくるのがnginx @ ウィキ – nginx バーチャルホストの方法なのですがver7からは書く場所がちがうっぽい??

設定ファイルはここにありました

/etc/nginx/conf.d/virtual.conf

書き方

    listen       80;
    server_name  hogehoge.jp;

    error_log /var/log/nginx/hogehoge_error.log;

    location / {
        root   /var/www/html/hogehoge/html;
        index  index.html index.php;

        if (-f $request_filename) {
            break;
        }
        if (-d $request_filename) {
            break;
        }
        #rewrite ^(.+)$ /index.php?q=$1 last;
    }
    location ~ .php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/hogehoge/html$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

    location ~ /\.ht {
        deny  all;
    }
}

phpに関する設定を毎回書かなきゃいけないのかがよくわからず・・・
とりあえずこの書き方でEC-CUBEのトップページは表示されました(動作確認はちゃんとしてないので全部は動いていないかもしれない・・・)

と、いうわけではまりポイントは今後も増えていきそうなので随時書き足そう(´д`)
準備は出来たのでようやくアプリの動作確認と負荷テストですねΨ(`∇´)Ψ