開発環境の構築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をキャッシュとして使用予定

memcached
$ sudo apt-get install memcached
$ sudo vi /etc/memcached.conf

とりあえず設定は無しでいいや

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

f:id:miyawa:20140419123917p:plain
arrived!!