開発環境の構築2(nginx+PHP(FastCGI)+Laravel)
アプリケーションの類いを入れる
とりあえずPHPの動くwebサーバー立てようぜ!という感じ
気分的にnginx+PHP(FastCGI)+Laravelが動くまで
nginx
どうせアクセス来ないしapacheでもいいんだけど、手元にある本がnginxのみなのでこちらに
相変わらずapt-getで最新が取れないようなので
http://wiki.nginx.org/Install
$ sudo -s # nginx=stable # use nginx=development for latest development version # add-apt-repository ppa:nginx/$nginx # apt-get update # apt-get install nginx # nginx -v nginx version: nginx/1.4.7
にあるままに実行
MySQL
$ sudo apt-get install mysql-server mysql-client -y $ sudo mysql_secure_installation
mysql_secure_installationなんて物があるんですね。最低限の設定でしょうけど。
5.5.35が入った
文字コードくらいは先に設定した方がよさげ(追記)
$ sudo vim /etc/mysql/my.cnf [mysqld] character-set-server=utf8 skip-character-set-client-handshake
PHP
nginxとPHPを一緒に使うのは初めてだけど、fpmってのを入れれば良いのかしら?
$ sudo apt-get install php5-fpm php5-cli php5-mysql php5-json php5-curl php5mcrypt php5-memcached -y
5.5.3が入った模様
php5-json php5-curl php5mcryptは入れようかなーと考えているlaravelで必要
php5-memcachedをキャッシュとして使用予定
laravel
確定ではないけどフレームワークとしてlaravelを入れてみる
Laravel - The PHP framework for web artisans.
$ wget http://laravel.com/laravel.phar $ sudo mv laravel.phar /usr/local/bin/laravel $ sudo chmod 755 /usr/local/bin/laravel
適当なディレクトリで
$ laravel new hoge $ cd hoge $ chmod 777 -R app/storage $ vi app/config/app.php localとかtimezonの設定
nginx設定 for laravel
/etc/nginx/conf.d/に入れればいいのか?
$ vim hoge.conf 1 server { 2 listen 80; 3 server_name doujin-ongaku.jp; 4 5 access_log /var/log/nginx/doujin-map.access.log; 6 error_log /var/log/nginx/doujin-map.error.log; 7 8 root /var/www/hoge/public; 9 10 location / { 11 index index.php; 12 try_files $uri $uri/ /index.php?$query_string; 13 } 14 15 location ~ \.php$ { 16 fastcgi_pass unix:/var/run/php5-fpm.sock; 17 fastcgi_index index.php; 18 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 19 include /etc/nginx/fastcgi_params; 20 } 21 }
fastcgi_passの項目は「127.0.0.1:9000」になってる情報もあったけど、
/etc/php5/fpm/pool.d/www.conf の listen の設定次第の模様
どっちがいいか、みたいのもあるっぽいけどとりあえず動く方で
(よく分からない設定を変えたくないだけ)
動作
hostsを設定してドメインに飛んでみると…
「Mcrypt PHP extension required.」
入れたやん!さっき入れたやん!
$ php -m [PHP Modules] ... iconv json libxml mbstring mhash mysql mysqli ...
無い・・・?
解決方法↓
Can't use PHP extension Mcrypt in Ubuntu 13.10 (Nginx, PHP-FPM) - Ask Ubuntu
Ubuntu13.10だと起きる感じっぽい
$ sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini $ sudo php5enmod mcrypt $ sudo service php5-fpm restart
arrived!!