最初に断っておきますが、「Laravelって何?」と言う方はGoogle先生の方を頼ってください。
その辺りの知識はある程度あるものとして、ここではLaravelの環境構築方法のみを記述します。
加えて、仮装サーバ(Virtualbox/vagrant)上にWebmin/Virtualminを使用して構築した環境上での話になります。かなりマニアックです。
Laravelのインストール方法等は一般的な方法であるため環境に依存せずに参考になる点もあるかと思いますが情報の取捨選択は独力でお願いします。
なお、仮装サーバ(Virtualbox/vagrant)の構築については「Virtualbox / vagrant のすゝめ」という別記事にしてありますので、そちらを参考にしてください。
また、Laravelが動作する環境に関してはWebサーバ(Apache)DB(MySQL/MariaDB)PHPなどが必要になりますが、この辺も「Webmin / Virtualmin のすヽめ」に書いた内容を参考に構築してください。
ここがスタートになります。
composerのインストール
Virtualminによる環境構築が終了し、ドキュメントルートでのPHPの実行確認ができたとして、LaravelのインストールにはcomposerというPHP用のパッケージ管理ツールを使いますので、まずはこのツールをインストールします。ただし、ここで気をつけるべきことがあります。
まず以下のようなPHPファイルを作成し、ブラウザからアクセスしてみましょう。
<?php
echo phpinfo();
上記にブラウザからアクセスするとPHPのバージョンが確認できると思います。おそらくは「PHP Version 7.2.24」などと表示されたのではないでしょうか?
次にCentOS上のコマンドとして以下を実行してみてください。
php -v
「PHP 5.4.16 …」のように表示されたかと思います。Apacheから実行されているPHPのバージョンとコマンド実行時のバージョンが合っていません。PHPのインストールはVirtualminのインストール時に合わせて実施されるようですが、なぜか2つのバージョンをインストールしてしまうようです。
コマンドラインの方でもPHP7の方を使用したいので、以下のコマンドをrootアカウントで実行します。
cp /opt/rh/rh-php72/enable /etc/profile.d/rh-php72.sh
bashを起動し直す必要がありますが、コマンドラインから実行されるPHPのバージョンも7になったかと思います。
ここまでできたら、改めてcomposerのインストールを行います。
下記コマンドをrootで実行します。
cd /tmp
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer
これでcomposerが実行可能になったかと思います。
Laravelのインストール
改めてVirtualminから仮装ホスト環境管理用に作成したアカウントに「su(set userかと思ってましたがsubstitute userらしいです)」します。
su - <ユーザー名>
オプションとしてハイフンを指定することを忘れないようにしてください。
これで実行ユーザーが仮装ホスト管理ユーザーに変更され、かつ同ユーザーのホームディレクトリに移動しているかと思います。
ここにLaravel環境を構築します。
なお、Virtualbox/vagrant環境を使用する際、開発対象ファイルを操作する環境はホストOSと共有するように設定しておくと便利なのですが、ここでは割愛して仮装ホスト環境内に直接Laravel環境を構築してしまいます。
ホームディレクトリで以下のコマンドを実行します。プロジェクト名は任意ですが、同名でホームディレクトリ直下にLaravel環境のディレクトリが生成されますので、その辺も考慮した命名が必要です。
composer create-project laravel/laravel --prefer-dist <プロジェクト名> 6.*
最後の「6.*」はLaravelのバージョンを意味します。本記事執筆中の2020年11月7日現在Laravelの最新バージョンは8ですが、LaravelにはLTS(Long Term Support)バージョンと通常バージョンが存在し、LTSはバグフィックスが2年間、セキュリティフィックスは3年間、通常バージョンはバグフィックスが半年、セキュリティフィックスは1年間となっているので、特に理由がなければLTSを使用した方がベーターです。よって、現在のLTS最新バージョンが6(2019年9月リリース)であるため、このバージョンを指定しています。なお、単に「6」と書くと「v6.0.0」がインストールされてしまいますが、バージョン6の中でも細かくアップデートがありますので、6の中の最新のものを使用するという意味で「6.*」のように記述します(現時点では「v6.20.0」がインストールされます)。
上記でLaravel環境が構築できたかと思います。
ただし、この段階でLaravelにはアクセスできません。Laravelでは構築された環境直下にpublicと言うディレクトリが生成され、このディレクトリをドキュメントルートとして動作しようとします。よって、Apacheの設定におけるドキュメントルートの定義の書き換えが必要になります。
一旦rootアカウントに戻って、「/etc/httpd/conf/httpd.conf」を開きます。
「Webmin / Virtualmin のすヽめ」に準じて構築した環境であれば、仮想マシンのIPでアクセスされた場合の定義が存在するはずで、その中にドキュメントルートを「/home/<仮装サーバ運用アカウント名>/public_html」としている箇所が4箇所見つかるはずです。
具体的には以下のような感じで。
<VirtualHost <仮想サーバIP>:80>
....
DocumentRoot /home/<仮装サーバ運用アカウント名>/public_html
....
<Directory /home/<仮装サーバ運用アカウント名>/public_html>
....
</Directory>
....
</VirtualHost>
<VirtualHost <仮想サーバIP>:443>
....
DocumentRoot /home/<仮装サーバ運用アカウント名>/public_html
....
<Directory /home/<仮装サーバ運用アカウント名>/public_html>
....
</Directory>
....
</VirtualHost>
上記の「public_html」を「<プロジェクト名>/public」に書き換えます。<プロジェクト名>はLaravel環境構築時に指定した名称であり、Laravel環境のディレクトリ名です。
上記を実施したらhttpdを再起動します。Webminの画面からも実行できますが、ここはサクッとコマンドラインで実行してしまいましょう。
systemctl restart httpd.service
上記実行後、ブラウザから仮想マシンのIP指定でアクセスするとLaravelインストール時にデフォルトで生成されるページが表示されるはずです。