部署
介紹
當你準備部署 Laravel 應用程式到正式上線主機時,你能執行一些操作,用來確保你的應用程式能更有效的執行。在這個文件中,我們將介紹如何用很棒的方式來部署應用程式。
伺服器設定
Nginx
如果你把應用程式部署到執行 Nginx 的伺服器,你可以使用下面的設定內容來開始設定你的網頁伺服器。此文件內容最好是根據你的伺服器設定需求來客製化。如果你需要託管你的伺服器,可以考慮 Laravel Forge 等服務:
server {
listen 80;
server_name example.com;
root /example.com/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm 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_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
優化
自動載入優化
部署到正式上線主機的時候,確保你優化了 Composer 的類別自動載入器映射,以便 Conposer 能更快的找到正確的檔案並加載到給定的檔案:
composer install --optimize-autoloader
{tip} 除了優化自動載入器,你應該始終將
composer
放在你的專案版本控制系統。當composer.lock
檔案存在於你的系統時,專案的依賴套件項目能被快速的安裝。
優化設定檔的載入
當你在部署應用程式到正式上線主機時,你應該記得在你部署過程中有執行 Artisan 指令的 config:cache
:
php artisan config:cache
這個指令可以將所有的 Laravel 設定檔快取到一個檔案,這會大大減少了載入設定值時框架對檔案系統的存取次數。
優化路由的載入
如果你正在建構一個很多路由的大型應用程式時,你應該確保在部署過程中執行 Artisan 的 route:cache
命令:
php artisan route:cache
這個指令會將所有的路由註冊減少為快取檔案中的單個方法呼叫,有助於提升數擁有百個路由的系統的速度。
{note} 因為這個功能使用到 PHP 序列化,所以你只能快取專門使用控制器類別的路由。PHP 目前無法將閉包給序列化。
部署到 Forge
如果你還沒有準備好管理自己的伺服器設定,又或者不太會設定執行強大的 Laravel 應用程式所需的各種服務,Laravel Forge 會是一個不錯的選擇。
Laravel Forge 能在各種伺服器服務的提供商(像是 DigitalOcean、Linode 或 AWS 等等)上建立伺服器。除此之外,Forge 也可以安裝和管理建構 Laravel 應用程式所需的所有工具,像是 Nginx、MySQL、Redis、Memcached 和 Beanstalk 等。