部署


    ##簡介
  • 伺服器設定
    • Nginx
  • 改進
    • 自動載入器改進
    • 設定載入改進
    • #路由載入改進
  • #使用Forge 部署

簡介

當你準備部署你的

Laravel

應用到生產環境時,請確保幾個重要的注意點以保證你的應用能盡可能高效的運作。本文中我們將會涵蓋幾個重點來確保你的 Laravel 應用程式部署得當。

伺服器設定

## Nginx

如果你想要部署你的應用到
Nginx
伺服器上,你可能會用到下面這個設定檔作為一個開始來設定你的###Web### 伺服器上,你可能會用到下面這個設定檔作為一個開始來設定你的###Web### 伺服器。很有可能,這個檔案需要根據你的伺服器設定來做一些自訂的修改。如果你需要協助來管理你的伺服器,可以考慮使用 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_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
        include fastcgi_params;  
         }

    location ~ /\.(?!well-known).* {
        deny all;   
         }
     }
##################

改進

自動載入器改進

當你準備好到生產環境部署應用程式時,確保你優化了你的Composer 類別的自動載入映射,這樣可以讓Composer 可以很快的找到正確的載入檔去載入給定的類別:

composer install --optimize-autoloader --no-dev

小提示:除了最佳化自動載入器,你也應該確保在你的專案程式碼倉庫中包含了composer.lock 這個檔案。當你的專案程式碼中有 composer.lock 這個檔案時,便可以更快的安裝專案中所需的依賴項。

優化設定載入

當你將應用程式部署到生產環境時,你應該確保在你部署過程中執行config:cache Artisan 指令:

php artisan config:cache

此指令將所有Laravel 的設定檔合併到一個快取文件,這次大大減少了框架在載入設定值時必須對檔案系統進行存取的次數。

{note} 如果在你部署過程中執行config:cache 命令,你應該確保你只從你的設定檔中呼叫env 函數。一旦配置被緩存,.env 檔案將不被載入並且對 env 函數的所有呼叫將傳回 null

優化路由載入

如果你想建立具有許多路由的大型應用程序,你應該確保在你部署的過程中運行route:cache Artisan 命令:

php artisan route:cache

此命令將為所有路由註冊縮減到一個快取檔案中的單一方法調用,從而在註冊數百個路由時提高了路由註冊的效能。

{note} 由於此功能使用 PHP 序列化,你只能快取專門使用基於控制器路由的應用程式路由。 PHP 不能序列化閉包路由。

使用Forge 部署

如果你還沒準備好管理自己的伺服器配置,或者不熟悉配置對運行強大的Laravel 應用程式所需的各種服務,Laravel Forge 是一個不錯的選擇。

Laravel Forge 能在各種基礎設施供應商(如:DigitalOcean,Linode,AWS 等等)上建立伺服器。另外,Forge 安裝和管理建立強大 Laravel 應用程式所需的所有工具,例如:Nginx,MySQL,Redis,Memcached,Beanstalk 等等。

本篇首刊在 LearnKu.com 網站上。