[ Vagrant ] 01: LEMP環境にてPHP5.5( laravel)の開発環境を作る

この記事では何回かにわけて、LEMP環境にてlaravelフレームワークを使った開発環境を構築していきます。

以下に要件を記載しておきます。

・PCはMAC(10.9.4)
・VirtualBox 4.3.12
・Vagrant 1.6.3
・CentOS 6.5
・Nginx 1.6.1
・PHP 5.5.15
・MySQL 5.1.73
・Laravel 4.2

まずはローカル開発環境を整えます。

Vagrantのインストール

この段階については良記事がネット上にたくさんあるので、リンクを記載しておきます。
vagrant で centosを使ってみる(※1

ちなみにvagrantを初めて使う場合は、公式サイトのチュートリアルを行っておくと勘所がつかめるでしょう。
Vagrant公式ドキュメントの和訳サイト

Nginxのインストール

ではVagrantでCentOSの環境がローカルPCに完成したという前提で話を進めます。
ターミナルからvagrant sshでゲストマシンに接続した状態にして、以下のようにNginxをインストールしていきます。


sudo su

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

yum -y install nginx

nginx -v

これでNginxのバージョン情報が出力されれば、インストールは完成です。

Nginxのダウンロード元を変更することも可能です。

sudo vi /etc/yum.repos.d/nginx.repo
baseurl=http://nginx.org/packages/centos/6/$basearch/

baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/


Centos6.5に Nginx 1.7.3(mainline)をインストールしてみた(※2

ではNginxの環境設定を少しだけ行いましょう。

ドキュメントルートとFASTCGI


# default.confを開く
vi /etc/nginx/conf.d/default.conf

  # server{}直下のserver_nameの次の行にドキュメントルートを追加
  + root /var/www;

  # /のアクセス設定
  - location / {
  -   root   /usr/share/nginx/html;
  -   index  index.html index.htm;
  - }
  + location / {
  +   index index.php;
  +   try_files $uri $uri/ /index.php?$query_string;
  + }

  # FASTCGIの設定
  + 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;
  + }

PHPとMySQLのインストール

次にPHPとMySQLを整えていきます。

PHP

NginxではPHPを動かすためにPHP-FPMというパッケージが必要になります。


#すでに入っているPHPを削除する
yum remove php*
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

#インストール
yum install -y php php-fpm php-mysql php-mcrypt --enablerepo=remi-php55

このあとに、rpm -qa | grep phpを実行してみるとPHP関連のパッケージが一覧で表示されます。
すべてインストールされているか目視で確認しておきましょう。

nginxユーザーの追加


#www.confを開く
vi /etc/php-fpm.d/www.conf

  #/apacheで検索してユーザーをnginxに変更する
  -user = apache
  +user = nginx

  #同じくgroupも変更する
  -group = apache
  +group = nginx

#これでescを押し:wqで保存して閉じます

MySQL


#mysql
yum install -y mysql mysql-server

スタート

このあとに諸々をスタートさせておきましょう。


/etc/init.d/php-fpm start
/etc/init.d/nginx restart
/etc/init.d/mysqld restart

#autostart
chkconfig --levels 235 php-fpm on
chkconfig --levels 235 nginx on
chkconfig --levels 235 mysqld on

これでためしにPHPが動くようになったかどうかをチェックしてみましょう。


vi /var/www/index.php

  #phpinfo関数を実行します
  <?php phpinfo();

#:wqで保存して閉じる

このあと、localhostや127.0.0.1などにアクセスしてみます。

PHPの情報がズラッと出てれば成功です。

画面が真っ白になる場合などは、
・インストールしたパッケージが正しいか
・加工したファイルに文法ミス等ないか
・POST_FORWARDの設定が正しいか
などを確認してみます。POST_FORWARDはVagrantの設定ですので、Vagrantfileを開いて、以下のように追加してみましょう。

〔…〕ポートフォワーディングによって、ゲストマシンのポートは、ホストマシンのポートを経由するように設定されます。 これにより、ホストマシンのポートにアクセスできます。〔…〕


Vagrant.configure("2") do |config|
  〔…〕
  config.vm.network :forwarded_port, host: 4567, guest: 80
end

〔…〕ゲストマシンが再起動したら、ブラウザでhttp://127.0.0.1:4567にアクセスしましょう。


Vagrant公式ドキュメント

これでVagrant上にLEMP環境が整ったかと思います。

次は、ここにLaravelフレームワークを入れて開発環境を整えていきます。