laravel5.6をcentOS7.2にインストールして動かしてみた


最近ぐうたらしているのでPHPフレームワークで新しくアプリを作成しようかと思い、最近のトレンドを調べてみました。

業務では cakePHPsymfony2 などを利用していますが、調べたところやっぱり最近のイチオシは laravel だということなので、暫く動かしていなかった vagrant マシンに laravel を入れてみようという記事です。

前提

  • ホストOSはwindows10
  • ゲストOSはcentOS7.2
  • vagrant,VirtualBoxは最新版(2018/07/21時点)をインストール済み
  • ゲストOSは以前vagrantで構築済み(IPは 192.168.33.20)
  • PHPはremiで7.1をインストール済み(remiはyumでインストール)
  • composerもインストール済み

やったこと

  • PHP7.1をアンインストールして7.2をインストール(関連モジュールも一緒にインストール)
  • VirtualBoxのディレクトリ共有を使ってホストOSとゲストOSのディレクトリを繋ぐ
  • composerをアップデートしてlaravelをインストール
  • apacheのconfを変更
  • webブラウザでアクセス

PHP7.2をインストールする

PHPのバージョンを確認する。

とりあえず今インストールされているPHPを確認します。

php -v

【結果】

PHP 7.1.11 (cli)
以下略

ということで、まずはPHPを7.2にアップグレードしました。

yumでremiをアップデートする。

まずはremiで利用できるPHPを確認します。

確認コマンド

ll /etc/yum.repos.d/ | grep remi-

【結果】

-rw-r--r-- 1 root root  456  6月 19 09:28 remi-php54.repo
-rw-r--r-- 1 root root 1314  6月 19 09:28 remi-php70.repo
-rw-r--r-- 1 root root 1314  6月 19 09:28 remi-php71.repo
-rw-r--r-- 1 root root  750  6月 19 09:28 remi-safe.repo

PHP71までしかリポジトリ登録されていないのでremiを更新します。(remiはyumで入れてあるのでyumを更新します。)

yum update

更新完了したらもう一度確認します。

-rw-r--r-- 1 root root  456  6月 19 09:28 remi-php54.repo
-rw-r--r-- 1 root root 1314  6月 19 09:28 remi-php70.repo
-rw-r--r-- 1 root root 1314  6月 19 09:28 remi-php71.repo
-rw-r--r-- 1 root root 1314  6月 19 09:28 remi-php72.repo
-rw-r--r-- 1 root root 1314  6月 19 09:28 remi-php73.repo
-rw-r--r-- 1 root root  750  6月 19 09:28 remi-safe.repo

ん?PHP73?7.2より7.3があるなら7.3を入れよう!
ということで一旦PHP7.1を削除します。

yum remove php-*

削除完了したら7.3を入れてみます。

yum info --enablerepo=remi,remi-php73 php

正常にインストールが完了したようなので確認します。

PHP 5.6.36 (cli)
以下略

え・・・5.6って・・・

どうやら7.3は インストールできないようです(ちゃんと調べればよかった・・・)

インストールされてしまった5.6を削除して7.2を入れます。

yum remove php-*

PHP7.2をインストール

yum -y install --enablerepo=remi,remi-php72 php php-opcache php-devel php-mbstring php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-gd php-intl php-symfony php php-pdo php-xml php-tokenizer php-pear php-zip

関連モジュールごと入れてしまいましょう。

確認します。

php -v

【結果】

PHP 7.2.8 (cli) (built: Jul 17 2018 09:50:46) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.8, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

ちゃんと入りました!


VirtualBoxのディレクトリ共有を使ってホストOSとゲストOSのディレクトリを繋ぐ

larabelのインストール前にゲストOSとホストOSを繋ぎます。
VritualBoxの「設定⇒共有フォルダー」から共有ディレクトリの設定をします。

ホスト側の準備ができたらゲスト側でも共有設定をします。

mount -t vboxsf laravel_test /var/www/html/

これで /var/www/html/ 配下が共有されました。


composerをアップデートしてlaravelをインストール

準備ができたのでlaravelをインストールしましょう。
laravelはcomposerでインストールしますが、composerの状態が古いのでアップデートします。

composer self-update

アップデートが完了したらマニュアルに従ってLaravelインストーラをダウンロードします。

composer global require "laravel/installer=~1.1"

インストーラが正常にDLできたっぽいのでpathを通して laravel new できるようにします。

export PATH="$PATH:~/.composer/vendor/bin"

ではlaravelコマンドを・・・

laravel new laravel_test

【結果】

-bash: laravel: コマンドが見つかりません

ん?・・・できない。も~ワカラン!!

できないんでcomposerからプロジェクトを作成します。

composer create-project laravel/laravel /var/www/html/laravel_test

あ、こっちはできた。

[root@localhost laravel_test]# pwd
/var/www/html/laravel_test
[root@localhost laravel_test]# ll
合計 178
drwxrwxrwx 1 root root      0  7月 21 12:03 app
-rwxrwxrwx 1 root root   1686  7月 21 12:03 artisan
drwxrwxrwx 1 root root      0  7月 21 12:03 bootstrap
-rwxrwxrwx 1 root root   1477  7月 21 12:03 composer.json
-rwxrwxrwx 1 root root 144199  7月 21 12:06 composer.lock
drwxrwxrwx 1 root root   4096  7月 21 12:23 config
drwxrwxrwx 1 root root      0  7月 21 12:03 database
-rwxrwxrwx 1 root root   1022  7月 21 12:03 package.json
-rwxrwxrwx 1 root root   1134  7月 21 12:03 phpunit.xml
drwxrwxrwx 1 root root   4096  7月 21 12:03 public
-rwxrwxrwx 1 root root   3675  7月 21 12:03 readme.md
drwxrwxrwx 1 root root      0  7月 21 12:03 resources
drwxrwxrwx 1 root root      0  7月 21 16:52 routes
-rwxrwxrwx 1 root root    563  7月 21 12:03 server.php
drwxrwxrwx 1 root root      0  7月 21 12:03 storage
drwxrwxrwx 1 root root      0  7月 21 12:03 tests
drwxrwxrwx 1 root root   4096  7月 21 12:06 vendor
-rwxrwxrwx 1 root root    549  7月 21 12:03 webpack.mix.js
[root@localhost laravel_test]#

ディレクトリ共有も済んでいるので、windows側のフォルダにも同様のファイル群が表示されました。


apacheのconfを変更

最後にwebrootを変更します。

vi /etc/httpd/conf/httpd.conf

httpd.confを開き、以下を追加します。

DocumentRoot "/var/www/html/laravel_test/public"

<Directory "/var/www/html/laravel_test/public">
Allowoverride All
</Directory>

一応シンタックスエラーが起きていないか確認します。

service httpd configtest

【結果】

Syntax OK

大丈夫そうなのでapacheを再起動します。

systemctl restart httpd

ブラウザでアクセスする。

全ての作業が完了したのでブラウザでアクセスしてみます。

ゲストOSのIPは92.168.33.20で構築してあるのでIPをそのまま叩いてみます。

無事に表示されました!

しばらくいじり倒そうと思います。
次回はlaravelの使用感について書きたいと思います。


参考にした記事

https://readouble.com/laravel/5.6/ja/
https://www.ritolab.com/entry/80