[ Laravel 5.6 文檔 ] 快速入門 —— 部署應用到生產環境

[ Laravel 5.6 文檔 ] 快速入門 —— 部署應用到生產環境

雖然現在還沒有到部署 Laravel 應用到生產環境的時候,但這些要做的事情總是有一天要做的,現在來了解一下也無妨,這樣可以確保上線的應用儘可能高效地運行。【文章轉自laravel學院】

簡介

當你準備部署 Laravel 應用到生產環境時,有一些重要的事情可以確保應用儘可能高效地運行,在本文檔中我們就來探討下這些要做的事情從而確保應用以最佳方式部署。

伺服器配置

Nginx

如果部署應用的伺服器運行的是 Nginx,可以使用下面的配置文件配置 Web 伺服器。大部分情況下,這個文件需要根據伺服器的配置做一些調整(如果你想要一個工具來協助管理伺服器,可以考慮使用 Laravel Forge):

Advertisements

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; }}

優化

自動載入優化

Advertisements

部署應用到生產環境時,確保優化過 Composer 的類自動載入映射以便 Composer 可以快速為給定類找到要載入的文件:

composer install --optimize-autoloader

註:除了優化自動載入器之外,還要在項目代碼倉庫中包含 composer.lock 文件,這樣的話項目依賴可以更快安裝。

優化配置載入

部署應用到生產環境時,需要確保在部署過程中運行了 Artisan 命令 config:cache:

php artisan config:cache

這個命令會將所有 Laravel 配置文件合併成一個緩存文件,從而極大減少框架在載入配置值時對文件系統的 IO 操作。

註:如果你在部署過程中執行了 config:cache 命令,需要確保只在配置文件中調用了 env 函數。一旦配置被緩存后,就不會再載入 .env 文件,因此所有對 env 函數的調用都會返回 null。

優化路由載入

如果你正在構建一個包含大量路由的大型應用,需要確保在部署過程中運行了 Artisan 命令 route:cache:

php artisan route:cache

這個命令會生成一個緩存文件將所有路由註冊濃縮到單個方法調用,從而在註冊大量路由時提升路由註冊性能。

註:由於該特性使用了 PHP 序列化功能,所以只能緩存基於控制器的應用路由,因為 PHP 不能序列化閉包。

使用 Forge 部署

如果你對自己管理伺服器配置、安裝各種工具軟體以及維護大型應用所需服務沒有信心,或者覺得這些操作過於繁瑣,那麼 Laravel Forge 是一個不錯的選擇。

Laravel Forge 可以在不同的雲服務供應商(例如 DigitalOcean、Linode、AWS 等)中創建伺服器,此外,Forge 還會幫你安裝並管理構建大型 Laravel 應用所需的所有工具,例如 Nginx、MySQL、Redis、Memcached、Beanstalk 等等。

Advertisements

你可能會喜歡