CentOS7.6にLaravel5.8をインストールする手順。
前提
- OSはCentOS7.6
- PHPと必要なモジュールはインストール済み
- WebサーバはApache
Composerのインストール
LaravelはComposer経由でインストールするため、まずComposerを入れておく。まず、curlでcomposer.pharを持ってくる。
$ curl -sS https://getcomposer.org/installer | php
どこからでも実行できるよう、composer.pharをパスの通っているディレクトリに移動する。
# mv composer.phar /usr/local/bin/composer
Laravelのインストール
インストールしたいディレクトリに移動して、Composer経由でLaravelをインストールする。create-projectでLaravelのインストールからプロジェクトの作成まで一度にやってくれる。プロジェクト名は好きに設定してOK。
composer create-project --prefer-dist laravel/laravel [プロジェクト名]
バージョンを指定することも可能だが、今回は最新で問題ないので指定していない。
インストール後の設定
Laravelの設定
[プロジェクト名]/configディレクトリに各種設定ファイルがあるので変更する。データベースやメールサーバの設定などできるが、一旦はapp.phpの下記を変更すればいいだろう。
'timezone' => 'Asia/Tokyo'
, 'locale' => 'ja'
, 'fallback_locale' => 'ja'
, 'faker_locale' => 'ja_JP',
パーミッションの設定
Webサーバから書き込み可能にするため、 storageとbootstrap/cacheディレクトリのパーミッションを変更する。
chmod -R 777 [プロジェクト名までのパス]/storage
chmod -R 777 [プロジェクト名までのパス]/bootstrap/cache
ドキュメントルートの設定
Apacheのhttpd.confを開いて、ルートディレクトリを[プロジェクト名]配下のpublicディレクトリに変更する。
[プロジェクト名]/public
設定したらサーバを再起動。
systemctl restart httpd
ブラウザでアクセスしてLaravelの画面が表示されていればOK。
補足
トップページは表示されるが、それ以外のページは404 Not Foundになる場合
トップページ([プロジェクト名]/public)にはアクセスできるが、それ以外のページは404 Not Foundになる場合、おそらく.htaccessが効いていない。まず、Apacheのconfファイルを開き、AllowOverrideがnoneになっていないか確認する。
<Directory "[ルートディレクトリ]"> #今回のルートディレクトリはpublicまでのパス
AllowOverride All # Noneだと.htaccessが無効
</Directory>
問題なければ、Apacheのmod_rewriteが有効になっているか確認してみる。