1. 安裝 Nginx 和 PHP-FPM (PHP 8.1+):
更新套件列表:
Bashsudo apt update
安裝 Nginx:
Bashsudo apt install nginx -y
安裝 PHP 8.1 (或更高版本) 和 PHP-FPM 以及必要的 PHP 擴充套件:
若要安裝 PHP 8.1:
Bashsudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-mbstring php8.1-xml php8.1-zip php8.1-gd php8.1-redis -y
若要安裝 PHP 8.2:
Bashsudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-zip php8.2-gd php8.2-redis -y
請根據您的需求選擇 PHP 版本,並確保安裝
php-redis
套件以支援 Redis 連線。您可能還需要安裝其他 PHP 擴充套件,根據您的 Laravel 應用程式需求而定。
確認服務狀態:
Bashsudo systemctl status nginx sudo systemctl status php8.1-fpm # 或 php8.2-fpm
2. 設定 PHP-FPM (PHP 8.1+):
編輯 PHP-FPM 設定檔:
主要的 PHP-FPM 設定檔位於
/etc/php/8.1/fpm/pool.d/www.conf
(或/etc/php/8.2/fpm/pool.d/www.conf
)。使用文字編輯器開啟該檔案:
Bashsudo nano /etc/php/8.1/fpm/pool.d/www.conf # 或 8.2
調整重要設定:
listen
:設定 PHP-FPM 監聽的位址。通常使用 Unix socket:
Ini, TOMLlisten = /run/php/php8.1-fpm.sock # 或 8.2
請確保此設定與您的 Nginx 設定檔中的
fastcgi_pass
相符。
user
和group
:設定 PHP-FPM worker 的執行身分。通常設定為
www-data
:Ini, TOMLuser = www-data group = www-data
pm
,pm.max_children
,pm.start_servers
,pm.min_spare_servers
,pm.max_spare_servers
:這些設定控制 PHP-FPM worker 的數量和行為。
根據您的伺服器資源和預期流量進行調整。
例如:
Ini, TOMLpm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35
儲存並關閉檔案。
重新啟動 PHP-FPM:
Bashsudo systemctl restart php8.1-fpm # 或 8.2
3. 設定 Nginx:
建立 Nginx 虛擬主機設定檔:
在
/etc/nginx/sites-available/
目錄下建立一個新的設定檔,例如your-project
:Bashsudo nano /etc/nginx/sites-available/your-project
設定 Nginx 虛擬主機:
在設定檔中,加入以下內容:
Nginxserver { listen 80; server_name your-domain.com; # 替換為您的網域名稱 root /var/www/your-project/public; # 替換為您的 Laravel 專案路徑 index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 或 8.2,與 PHP-FPM 設定相符 } location /static { alias /var/www/your-project/public/static; } location ~ /\.(?!well-known).* { deny all; } }
請根據您的實際情況修改
server_name
、root
和fastcgi_pass
。儲存並關閉檔案。
建立 symbolic link 到 sites-enabled 目錄:
Bashsudo ln -s /etc/nginx/sites-available/your-project /etc/nginx/sites-enabled/
測試 Nginx 設定:
Bashsudo nginx -t
- 如果測試通過,則會顯示
syntax is ok
和test is successful
。
- 如果測試通過,則會顯示
重新啟動 Nginx:
Bashsudo systemctl restart nginx
4. Laravel 專案部署:
- 將您的 Laravel 專案程式碼複製到
/var/www/your-project/
目錄(或您在 Nginx 設定中指定的路徑)。 - 執行
composer install
安裝相依套件。 - 設定 Laravel 的
.env
檔案,包括資料庫連線和 Redis 連線。 - 執行
php artisan migrate
執行資料庫遷移。 - 設定正確的檔案權限。
沒有留言:
張貼留言