【PHP・Laravelで開発準備編2】CentOS8にLaravel6をインストールする

laravel Webエンジニア

前回の記事「【PHP・Laravelでの開発準備編】VirtualBoxにCentOS8をインストール」でCentOS8をインストールしました。

今回はインストールしたCentOS8にLaravel6を構築していきます。

Laravel6のインストール

Laravel6の公式ページは以下になります。
https://readouble.com/laravel/6.0/ja/installation.html

さらっとComposerを利用すると書いていますが、デフォルトでは使えるようにはなっていないのでまずはComposerを準備する必要があります。

composerの準備

まずはrootでログインして以下のコマンドを打ちます。

cd ~
curl https://getcomposer.org/installer | php

すると「Install it or recompile php without –disable-json」というエラーが出ます。

php-jsonが足りていないということなのでそちらをインストールします。

yum -y install php-json

するとcomposer.pharがダウンロードされてきますので、そちらをどこからでも実行可能なパスの通っている「/usr/local/bin/」に移動します。

mv composer.phar /usr/local/bin/composer

最後に以下を打ってバージョンが表示されればcomposerの準備は完了です。

composer --version

apacheのドキュメントルートに新しいプロジェクトを設置

composerはサードパーティーにシステムに関する操作を許可してしまう為、rootユーザーでは使わないことが推奨されています。

インストールの際に作成したユーザーでログインしてから作業を行う必要があります。

もしrootでログインしているばあいはsu user名とすればそのユーザーに切り替えできます。

切り替えたら最初にLaravelのインストーラーをダウンロードします。少し時間がかかります。

composer global require laravel/installer

次にlaravelの実行ファイルにパスを通します。もしパスが違う場合は上記のコマンドでインストーラーを入れた際にどこに格納されたかをチェックしてみてください。私の環境では以下でした。

公式では$HOME/.config/composer/vendor/binとなっていましたのでそちらの可能性もあります。
vi /home/user/.bash_profile
を打って最後の行に以下を追加記述

export PATH=$PATH:$HOME/.composer/vendor/bin

設定を反映するためにもう一度user名で切り替え
su user名

laravelと打って説明等が表示されればパスが通っています。

次にデフォルトだとドキュメントルートは「/var/www/html」になっていますので、そちらに移動して新しいプロジェクトを作成します。

cd /var/www/html
laravel new whateat

whateatの部分は作成するプロジェクト名に応じて可変に調整してください。

とするとおそらく「The provided cwd “/var/www/html/whateat” does not exist.」というエラーメッセージが出ると思います。

これは/var/www/htmlの権限がrootになっており、userのものではないためフォルダが作成できずに出るエラーとなります。

一旦rootユーザーになって権限を変更します。

su -
chown user名:user名 /var/www/html

userに戻って再度実行します。この時rootのまま実行するとパーミッションが面倒なことになるので、もしrootのままやってしまった場合は一旦フォルダを消してやり直せばOKです。

su user名
cd /var/www/html
laravel new whateat
cd whateat
composer install
chmod 777 -R storage
chmod 777 -R bootstrap/cache
chcon -R -t httpd_sys_rw_content_t /var/www/html/whateat/storage
chcon -R -t httpd_sys_rw_content_t /var/www/html/whateat/bootstrap/cache

後半はディレクトリのパーミッションなどエラー回避の為のコマンドになります。

これで「http://localhost:50080/whateat/public/」にアクセスしてページが表示されればLaravelの動作はOKです。

次回はLaravelをより具体的に使っていきます。