LoginSignup
23
27

More than 3 years have passed since last update.

PHPフレームワーク「Laravel5」の環境を Vagrant, CentOS 6.6, SCLの PHP 5.4, Apache2.4, MariaDB 5.5 で作ってみた、その1

Last updated at Posted at 2015-03-18

Laravel5, SCL の環境構築

Laravel4(ララベル)の環境を作ったけど、すでに Laravel5 が出ていたもあり折角なので、Software Collections から PHP 5.4以上, Apache, MariaDBを入れ環境を構築してみることにしてみました。

そして意外なところで3時間ほどはまりました。まあ勉強にもなりよかったんですけど、何故に毎回はまるんだろう?とw。

ソフトウェア バージョン
Laravel 5.0.16
PHP 5.4.16
Apache 2.4.6
MariaDB 5.5.40

Varagnt

こんな定義でさくっと作って立ち上げときます。

config.vm.define :laravel5 do |laravel5|
  laravel5.vm.network :private_network, ip: "192.168.11.213"
  laravel5.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--memory", 384]
  end
end

Software Collections (SCL) レポジトリのインストール

まずはじめに行っておくこと

# yum install centos-release-SCL

PHP, PHP-FPM のインストール

PHP は、いつもとおり。PHP-FPM (FastCGI Process Manager) を入れる理由は、SCL では libphp5.so, libphp5-zts.so が入らないから(ソースからコンパイルすれば入ります)な、そんな理由です(※ここで3時間ハマリました)。
あと mcrypt 入れないと Laravel が怒るのでいれますが、今回は最低限のパッケージだけ入れてますんで必要ならば適宜いれること。

# yum install php54
# yum install -y https://www.softwarecollections.org/en/scls/rhscl/php54/epel-6-x86_64/download/rhscl-php54-epel-6-x86_64.noarch.rpm
# yum install -y php54-php-mbstring php54-php-fpm php54-php-pdo php54-php-mysqlnd
# yum install -y https://www.softwarecollections.org/en/scls/remi/php54more/epel-6-x86_64/download/remi-php54more-epel-6-x86_64.noarch.rpm
# yum install -y php54-php-mcrypt

ログイン/reboot 時にphp54 を有効化

SCL でインスコすると /opt/rh 以下に配置され、かつ scl コマンドでごにょごにょしないといけないので、ログイン/reboot 時にphp54 を有効化しときます。
/etc/profile.d/enablephp54.sh ファイルを作成し内容は下記をこぴぺします。

/etc/profile.d/enablephp54.sh
#!/bin/bash
source /opt/rh/php54/enable
export X_SCLS="php54" 

[https://access.redhat.com/solutions/527703]

これで php -v コマンド使えるようになります。

PHP-FPM の起動設定

設定するとこは多少あるけど、とりあえずデフォルトで立ち上げておきます。
ちなみにデフォルトだと 127.0.0.1:9000 でサービスが立ち上がります。

# service php54-php-fpm start
# chkconfig php54-php-fpm on
# chkconfig php54-php-fpm --list

Apache のインストール

こちらもさくっといつものとおり、な感じでサービス起動までやっときます。
念のためアクセスできるか確認しときと、よりgoodすね。

# sudo yum install httpd24
# service httpd24-httpd start
# /opt/rh/httpd24/root/usr/sbin/httpd -version
# chkconfig httpd24-httpd on
# chkconfig httpd24-httpd --list

ついでに MariaDB(MySql)をインストール

今回、登場ないけどついでにw

# yum install mariadb55 mariadb55-server
# service mariadb55-mysqld start
# chkconfig mariadb55-mysqld on

/etc/profile.d/enablemariadb55.sh ファイルを作成し内容は下記をこぴぺします。

/etc/profile.d/enablemariadb55.sh
#!/bin/bash
source /opt/rh/mariadb55/enable

Composerのインストール

Composer パッケージ管理プログラムを使うので、まずこれをインストールするとこから初めます。

# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer

パスを追加します。.bashrc に追加しておくといいことありますね。

export PATH=$PATH:/usr/local/bin

laravel5 をインストール(プロジェクトの作成)

最新版(バージョン指定しないと常に最新をもってくる)のlaravel5 をインストールテストと起動テストをしてみます。
※初回は、色々なコンポーネントを読み込むため非常に時間がかかります。

$ composer create-project laravel/laravel hogehoge --prefer-dist
$ cd hogehoge
$ php artisan serve --host="0.0.0.0" --port="9090"

無題.png

http://192.168.11.213:9090 にアクセスし上記の画面が表示されればok

Apache で laravel のプロジェクトを動かす前に確認しておくこと

Apache -> FirstCGI 経由で php が実行されるかまず確認しておくこと。
いわゆる phpinfo の情報を前もって確認しておくことが重要、重要です(2度いった)。

テスト用に適当に conf ファイルを作り(下記を参照)ます。

/opt/rh/httpd24/root/etc/httpd/conf.d/testphp.conf
Listen 8888
<VirtualHost 192.168.11.213:8888>
    DocumentRoot /opt/rh/httpd24/root/var/www/html2
    ServerName laravel5-test
    <LocationMatch "^/.*\.php$">
        ProxyPass fcgi://127.0.0.1:9000/opt/rh/httpd24/root/var/www/html2
    </LocationMatch>
    <Directory "/opt/rh/httpd24/root/var/www/html2/">
      Require all granted
    </Directory>
</VirtualHost>

phpのファイル作成しておきます。

# mkdir /opt/rh/httpd24/root/var/www/html2
# echo "<?php phpinfo(); ?>" > /opt/rh/httpd24/root/var/www/html2/phpinfo.php

Apache. php-fpm を再起動したら http://192.168.11.213:8888/phpinfo.php を実行してみて下記の画面が表示されればok。

php.png

Apache で laravel のプロジェクトを動かす

scl でインスコした apache の DocumentRoot は、/opt/rh/httpd24/root/var/www/ なのでとりあえずお作法に従ってその下に Laravel プロジェクトを 作ってみる(どこでもいいんだけどねw)。

まずは、Laravel のプロジェクトを作成します。

# cd /opt/rh/httpd24/root/var/www/
# composer create-project laravel/laravel /opt/rh/httpd24/root/var/www/laravel5 --prefer-dist

symfony/event-dispatcher でGithub のアカウントを聞いてきたので素直に入力。

  - Installing symfony/event-dispatcher (v2.6.4)

A token will be created and stored in "/root/.composer/auth.json", your password will never be stored
To revoke access to this token you can visit https://github.com/settings/applications
Username: 
Password: 

/opt/rh/httpd24/root/etc/httpd/conf.d に以下のファイルをさくっと作り、httpd を再起動します。

/opt/rh/httpd24/root/etc/httpd/conf.d/laravel5.conf
Listen 9999

<VirtualHost 192.168.11.213:9999>
    ServerName laravel5
    DocumentRoot /opt/rh/httpd24/root/var/www/laravel5/public
    DirectoryIndex index.html index.php
    <LocationMatch "^/.*\.php$">
        ProxyPass fcgi://127.0.0.1:9000/opt/rh/httpd24/root/var/www/laravel5/public
    </LocationMatch>
    <Directory "/opt/rh/httpd24/root/var/www/laravel5/">
      Require all granted
    </Directory>
</VirtualHost>

Apache 2.2 の conf そのまま使えると思ったら 2.4 から定義がだいぶ変更されていました。特に NameVirtualHost の指定をしなくてもよくなったり細々したところが。。。

httpd を再起動して…。http://192.168.11.213:9999/ にアクセスしてみます。okですよねw

参考にさせていただいたサイト様

apache インストール/設定 メモ
CentOS6.4にインストールしたApacheを設定する。
PHP5.5.5,PHP-FPMのインストール手順(Apache, Mysql)

23
27
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
27