デプロイ
はじめに
Laravelアプリケーションを本番環境にデプロイする準備が整ったら、アプリケーションができるだけ効率的に実行されるようにするために重要なことがい くつかあります。このドキュメントでは、Laravelアプリケーションが適切にデプロイされていることを確認するための素晴らしい出発点をカバーします。
サーバー要件
Laravelフレームワークにはいくつかのシステム要件があります。Webサーバーが以下の最小限のPHPバージョンと拡張機能を持っていることを確認する必要があります:
- PHP >= 8.2
- Ctype PHP拡張機能
- cURL PHP拡張機能
- DOM PHP拡張機能
- Fileinfo PHP拡張機能
- Filter PHP拡張機能
- Hash PHP拡張機能
- Mbstring PHP拡張機能
- OpenSSL PHP拡張機能
- PCRE PHP拡張機能
- PDO PHP拡張機能
- Session PHP拡張機能
- Tokenizer PHP拡張機能
- XML PHP拡張機能
サーバーの設定
Nginx
Nginxを実行しているサーバーにアプリケーションをデプロイする場合、次の設定ファイルをWebサーバーの設定の出発点として使用できます。おそらく、このファイルはサーバーの構成に応じてカスタマ イズする必要があります。サーバーの管理を支援してもらいたい場合は、Laravel Forgeなどの公式のLaravelサーバー管理およびデプロイメントサービスを検討してください。
以下の設定のように、Webサーバーがすべてのリクエストをアプリケーションの public/index.php
ファイルにリダイレクトするようにしてください。index.php
ファイルをプロジェクトのルートに移動しようとしないでください。プロジェクトのルートからアプリケーションを提供すると、多くの機密設定ファイルが一般のインターネットに公開されます:
server {
listen 80;
listen [::]:80;
server_name example.com;
root /srv/example.com/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
FrankenPHP
FrankenPHPを使用して、Laravelアプリケーションを提供することもできます。 FrankenPHPは、Goで書かれたモダンなPHPアプリケーションサーバーです。 FrankenPHPを使用してLaravel PHPアプリケーションを提供するには、単純にphp-server
コマンドを呼び出すだけです:
frankenphp php-server -r public/
FrankenPHPがサポートするLaravel Octaneの統合、HTTP/3、モダンな圧縮、またはLaravelアプリケーションをスタンドアロンのバイナリとしてパッケージ化するなど、より強力な機能を活用するには、FrankenPHPのLaravelドキュメントを参照してください。