第21回 Laravelのプロジェクトの作成
公開日:2020-10-29 更新日:2020-10-29
1. 概要
Laravelのプロジェクト(空のサイト)の作成を行います。
2. 動画
3. Laravel Installer のインストール
Laravel のプロジェクトを作成する際に必要となる、Laravel Installer のインストールを行います。
composer を使うため、念のため root ユーザ以外のユーザに切り替えます。
Laravel Installer のインストール先のディレクトリを作成して、そこへ移動します。
今回は Nginx のドキュメントルート(html)に作成していますが、好きな場所で構いません。
そして、次のコマンドにより、Laravel Installer をインストールします。
完了すると、vendor/bin 配下に、laravel と言うコマンドが作成されます。
こちらのコマンドでプロジェクトを作成するため、
Nginx のドキュメントルート(html)に、このコマンドのシンボリックリンクを作成します。
vendor/bin にパスを通したり、laravel のコマンドを相対パスや絶対パスを指定して実行する場合は、リンクを作成しなくても構いません。
次のコマンドでバージョンが表示されれば完了です。
composer を使うため、念のため root ユーザ以外のユーザに切り替えます。
su web
Laravel Installer のインストール先のディレクトリを作成して、そこへ移動します。
今回は Nginx のドキュメントルート(html)に作成していますが、好きな場所で構いません。
cd /usr/share/nginx/html
mkdir laravel_installer
cd laravel_installer
そして、次のコマンドにより、Laravel Installer をインストールします。
composer require laravel/installer
完了すると、vendor/bin 配下に、laravel と言うコマンドが作成されます。
こちらのコマンドでプロジェクトを作成するため、
Nginx のドキュメントルート(html)に、このコマンドのシンボリックリンクを作成します。
vendor/bin にパスを通したり、laravel のコマンドを相対パスや絶対パスを指定して実行する場合は、リンクを作成しなくても構いません。
cd /usr/share/nginx/html
ln -s laravel_installer/vendor/bin/laravel laravel
次のコマンドでバージョンが表示されれば完了です。
./laravel -V
4. Laravel のプロジェクトの作成
次のコマンドで、app1 と言うプロジェクトを作成します。
rootユーザで、所有者とグループを変更します。
本番環境では、所有者とグループを nginx にして、権限を554(読込と実行) にするのが良いと思います。
次に、app1 が書込可になっていない場合は、storage などに書き込み権限を付与します。
cd /usr/share/nginx/html
./laravel new app1
rootユーザで、所有者とグループを変更します。
chown web:nginx -R app1
今回は samba でファイル共有をしているため、所有者を web と言うユーザにしていますが、本番環境では、所有者とグループを nginx にして、権限を554(読込と実行) にするのが良いと思います。
次に、app1 が書込可になっていない場合は、storage などに書き込み権限を付与します。
chmod 774 -R app1/storage
chmod 774 -R app1/bootstrap/cache
5. nginx の conf の変更
URLの最後がファイル名ではなく /(スラッシュ)で終わる場合、
デフォルトでは index.html か index.htm が表示されるため、
index.php も表示されるようにします。
conf を開きます。
location の index に、次のように index.php を追加します。
Nginx を再起動します。
これで、ブラウザでアクセスできれば完了です。
もしうまく表示されない場合は、以下を試してみてください。
・SELinuxを無効にする。
getenforce で Enforcing の場合は、setenforce 0 を実行。
・index.php を付けてアクセスする。
・public 配下に適当な test.php などを作成してアクセスする。
・権限を変更する。
chmod 774 -R app1
chown nginx:nginx -R app1
・エラーログを確認する。
/var/log/nginx/error.log
デフォルトでは index.html か index.htm が表示されるため、
index.php も表示されるようにします。
conf を開きます。
vi /etc/nginx/conf.d/default.conf
location の index に、次のように index.php を追加します。
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
Nginx を再起動します。
systemctl retart nginx
これで、ブラウザでアクセスできれば完了です。
http://127.0.0.1/app1/public/
もしうまく表示されない場合は、以下を試してみてください。
・SELinuxを無効にする。
getenforce で Enforcing の場合は、setenforce 0 を実行。
・index.php を付けてアクセスする。
・public 配下に適当な test.php などを作成してアクセスする。
・権限を変更する。
chmod 774 -R app1
chown nginx:nginx -R app1
・エラーログを確認する。
/var/log/nginx/error.log