Symfoware

Symfowareについての考察blog

CodeIgniter 3をnginx + php-fpmで動作させる

Debian 7 + nginx + php-fpmでCodeIgniter 3を動かすまでの手順メモです。

こちらを参考にさせていただきました。
nginx + php-fpm で CodeIgniter を動かすメモ




nginx + php-fpmのインストール



こちらを参考にインストールします。
Debian 7 + nginx + php-fpmな環境を構築する


まずはphp5-fpm。
インストールと起動。サービスの自動起動を有効化。


# apt-get install php5-fpm
# service php5-fpm start
# insserv php5-fpm




続いて、nginxのインストールと自動起動の有効化。


# apt-get install nginx
# insserv nginx







CodeIgniter 3の設置



こちらからCodeIgniter 3.0をダウンロードします。
http://www.codeigniter.com/download

/usr/share/nginx/wwwにci3というフォルダ名で解凍しました。


# cd /usr/share/nginx/www
# wget --no-check-certificate -O ci3.zip https://github.com/bcit-ci/CodeIgniter/archive/develop.zip
# unzip ci3.zip
# mv CodeIgniter-develop/ ci3/




/usr/share/nginx/wwwの内容は以下のようになりました。

530_01.png






nginx.confの設定



こちらを参考に、nginxの設定ファイルを変更しました。
Nginx CodeIgniter remove index.php in the URL


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





内容は以下のとおり。
※よく理解していないので、誤りがあるかも。


server {

    root /usr/share/nginx/www/ci3;
    server_name localhost;

    location / {
        try_files $uri $uri/ /index.php?/$request_uri;

    }
    
    if ($request_uri !~ ^/(index\.php|assets|files|robots\.txt)) {
        rewrite ^/(.*)$ /index.php/$1 last;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME     $fastcgi_script_name;
        fastcgi_param PATH_INFO     $fastcgi_script_name;
        include fastcgi_params;
    }

}




修正が終わったら、nginxを起動しておきます。


# service nginx start








CodeIgniterの設定



/usr/share/nginx/www/ci3/application/config/config.php
このファイルを編集します。

変更箇所は以下の一行。


  1. //$config['uri_protocol']    = 'AUTO';
  2. $config['uri_protocol']    = 'REQUEST_URI';





これで、http://(サーバーIP)/を表示すると、こんな内容になるはずです。

530_02.png



別解



こちらを参考に
https://github.com/anvoz/CodeIgniter-Skeleton/wiki/CodeIgniter-Nginx-Rewrite-Rules
nginxの設定を以下のようにします。


server {

    root /usr/share/nginx/www/ci3;
    server_name localhost;
    index index.php index.html index.htm;
    
    location ~* ^/(assets|files|robots\.txt) { }
    location / {
        try_files $uri $uri/ /index.php?/$request_uri;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }

}


これなら、AUTO設定のまま動いてくれました。


  1. $config['uri_protocol']    = 'AUTO';






CodeIgniter 3のユーザーガイド(User Guide)まとめ
関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/01/24(土) 15:46:59|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<CodeIgniter 3のチュートリアル1 Static pages | ホーム | Pythonで辞書型のオブジェクトをキーワード引数として関数に渡す>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1591-7395bb14
この記事にトラックバックする(FC2ブログユーザー)