VPSにデプロイして公開する
Laravelアプリをレンタルサーバー(VPS)に載せて公開するまでの流れを、初心者向けに全体像から解説します。
いよいよ最後の単元です。前の単元で準備したアプリを、実際のサーバーに載せて公開します。ここでは、自由度の高い VPS(仮想専用サーバー) に公開する流れを、全体像からつかみます。
公開先にはいくつか選択肢があります。本単元は最も汎用的な VPS を例にしますが、「コードをサーバーに置き、設定して、Webサーバーから見えるようにする」という大きな流れはどこでも同じです。
デプロイの全体像
やることは、大きく次の4ステップです。
① コードをサーバーに置く
② 依存をインストールし、設定する(前の単元の準備)
③ Webサーバー(Nginx等)の公開先を public/ に向ける
④ ファイルの権限を整える
順に見ていきましょう。
① コードをサーバーに置く
サーバーにSSHで接続し、Gitでコードを取得するのが一般的です。
git clone https://github.com/あなたのユーザー名/リポジトリ.git
cd リポジトリ
SSH接続やサーバーの初期設定は、契約したサーバーの案内に従ってください。ここではコードを置いた後の流れに集中します。
② インストールと設定
前の単元で学んだ準備を、このサーバー上で行います。
composer install --optimize-autoloader --no-dev
cp .env.example .env # 本番用に編集(APP_DEBUG=false 等)
php artisan key:generate
php artisan migrate --force
npm install && npm run build
php artisan config:cache && php artisan route:cache && php artisan view:cache
③ 公開先を public/ に向ける(重要)
ここが初心者のつまずきポイントです。Laravelで外部に公開してよいのは、プロジェクト直下の public/ フォルダだけです。.env やソースコードが置かれた他のフォルダは、外から直接見えてはいけません。
そこで、Webサーバー(Nginx など)の「公開フォルダ(ドキュメントルート)」を、プロジェクトの public/ に設定します。Nginx の設定例です。
server {
server_name あなたのドメイン;
root /var/www/リポジトリ/public; # ← public を指す
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock; # 環境に合わせる
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
root が .../public を指していることが肝心です。
④ ファイルの権限を整える
Laravel は、ログやキャッシュを storage/ と bootstrap/cache/ に書き込みます。Webサーバーがここに書き込めるよう、権限を与えます。
chmod -R 775 storage bootstrap/cache
権限の所有者(ユーザー/グループ)は、サーバーの構成に合わせて設定してください。「画面が真っ白/500エラー」の多くは、この権限不足か APP_DEBUG=false でエラーが隠れているのが原因です。
更新のたびにやること
コードを更新したら、サーバーで次を実行するのが基本の流れです。
git pull
composer install --optimize-autoloader --no-dev
php artisan migrate --force
npm run build
php artisan config:cache && php artisan route:cache && php artisan view:cache
毎回同じなので、慣れてきたらスクリプト化して1コマンドにまとめると安全で楽になります。
おつかれさまでした
これで、環境構築からデプロイまで一通りを学びきりました。あなたはもう、Laravel で「作って・動かして・公開する」流れを自分の手で実行できます。あとは、作りたいものを作りながら、各章を辞書のように読み返してください。学習はここからが本番です。
まとめ
- デプロイは「①コードを置く → ②インストール・設定 → ③public/を公開 → ④権限」の流れ。
- 公開してよいのは
public/だけ。Webサーバーのrootをpublic/に向ける。 storageとbootstrap/cacheに書き込み権限を与える。- 更新時の手順は毎回同じなので、スクリプト化すると安全。
- 全カリキュラム修了です。おつかれさまでした!