以前書いた「VagrantでCentOS6.9のイメージを使う」の通り、CentOS6.9 には Apache2.4 と PHP7.1 で Laravel のフレームワークが使える環境を構築しました。

ただ、将来的には AWS かつ Amazon Linux 上で動かしたいので、Amazon Linux だと yum で簡単にできないかと試してみました。
結果的には、yum で事足りてしまったので、EC2 のインスタンスを起動してから、Laravel のロゴが表示されるまでに 30 分くらいでできちゃいました。
ということで、手順書を備忘録として残しておきます。
なお、composer のインストールや Laravel のプロジェクト設定も root ユーザでやっちゃったので、ここは環境に合わせて一般ユーザーを使ってやってください。
AmazonLinuxの設定
今回は、Apache2.4 と PHP7.1 のインストール、ならびに Laravel のデフォルトのページ表示が目的なので、OS 側には細かい設定はしません。
最低限の開発ツールと、余分な IP フィルタだけ外しておきます。
1 2 3 4 5 6 7 8 9 10 11 | $ yum -y update $ yum -y groupinstall base "Development tools" $ service iptables stop $ service ip6tables stop $ chkconfig iptables off $ chkconfig ip6tables off |
Apache2.4のインストール
もしかしたら、デフォルトで Apache2.2 の本体や httpd-tools がインストールされてるかもって思いましたが、インストールはされていませんでした。
1 | $ httpd -version |
もし、古い Apache を使っている環境の場合は、先に削除しておくといいと思います。
1 2 3 | $ yum remove -y httpd $ yum remove -y httpd-tools |
Apache2.4 系のパッケージを標準で設定されているリポジトリで確認してみます。
普通に amzn-main でパッケージが用意されていました。
1 2 3 4 5 6 | $ yum list | grep httpd24 httpd24.x86_64 2.4.25-1.68.amzn1 amzn-main httpd24-devel.x86_64 2.4.25-1.68.amzn1 amzn-main httpd24-manual.noarch 2.4.25-1.68.amzn1 amzn-main httpd24-tools.x86_64 2.4.25-1.68.amzn1 amzn-main |
では、httpd24 のパッケージをインストールします。
1 | $ yum install -y httpd24 |
インストールされた Apache のバージョンを確認します。
1 2 3 4 | $ httpd -version Server version: Apache/2.4.25 (Amazon) Server built: Jan 19 2017 16:55:49 |
この段階で、念の為、Apache の起動を確認しておきます。また、自動起動もオンにしておきます。
1 2 3 | $ service httpd start $ chkconfig httpd on |
PHP7.1のインストール
次に、PHP7.1 のインストールをします。
こちらは、amzn-main には、まだ 7.0 しかないかなって思っていましたが、7.1 が既に用意されていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | $ yum list | grep php71 php71.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-bcmath.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-cli.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-common.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-dba.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-dbg.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-devel.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-embedded.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-enchant.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-fpm.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-gd.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-gmp.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-imap.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-intl.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-json.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-ldap.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-mbstring.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-mcrypt.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-mysqlnd.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-odbc.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-opcache.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-pdo.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-pdo-dblib.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-pgsql.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-process.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-pspell.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-recode.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-snmp.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-soap.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-tidy.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-xml.x86_64 7.1.7-1.23.amzn1 amzn-updates php71-xmlrpc.x86_64 7.1.7-1.23.amzn1 amzn-updates |
必要なモジュールを含めて本体をインストールします。
1 | $ yum -y install php71 php71-devel php71-pdo php71-mysqlnd php71-mbstring |
インストールされた PHP の実行とバージョンの確認をします。
1 2 3 4 5 | $ php -v PHP 7.1.7 (cli) (built: Jul 17 2017 06:11:12) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies |
php.ini には最低限の設定だけしておいて、ここでも再度 Apache のサービス再起動をしておきます。
1 2 3 | $ vi /etc/php.ini date.timezone = Asia/Tokyo |
1 | $ service httpd restart |
Laravelのセットアップ
まずは、composer をインストールします。
冒頭でも書きましたが、今回はここがメインではないので、root ユーザを使います。
1 | $ curl -sS https://getcomposer.org/installer | php |
インストールしたら、実行ファイルを移動して、パスを通しておきます。
1 2 3 | $ mv composer.phar /usr/local/bin/composer $ export PATH=$PATH:$HOME/.composer/vendor/bin |
では、Laravel のセットアップをしてみます。
本来なら、2017 年 7 月に LTS 版である Laravel5.5 が登場する予定だったのですが、8 月に延期となったので、最新の 5.4 をセットアップすることになります。
上記サイトのセットアップを参考にしていきます。
composer で Laravel のセットアッププログラムを取得します。
1 | $ composer global require "laravel/installer" |
Apache のデフォルトの DocumentRoot が /var/www/html になってるので、この配下で blog プロジェクトを作ってみます。
1 | $ laravel new blog |
プロジェクト用のディレクトリに移動して、artisan コマンドの実行と Laravel のバージョンを確認してみます。
1 2 3 4 5 | $ cd blog $ php artisan --version Laravel Framework 5.4.30 |
また、お決まりですが、Laravel のプロジェクト配下の、storage と bootstrap/cache のディレクトリのパーミッションを変更しておきます。
1 2 3 | $ chmod -R 777 storage $ chmod -R 777 bootstrap/cache |
Apache の設定を調整して、Apache のサービスを再起動します。
1 2 3 4 5 | $ vi /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html/blog/public" $ service httpd restart |
これで、EC2 に割り当てられたグローバル IP アドレスに http でアクセスしてみます。問題がなければ、Laravel のデフォルトページが表示されます。