PHP - 部署與效能優化
課程簡介
學習如何將 PHP 應用程式部署至伺服器,並通過效能優化技術提升網站的穩定性與速度,確保應用程式能高效運行。
部署流程
- 選擇伺服器與主機環境
- 推薦選項:VPS(如 AWS、GCP、Linode)或共享主機。
- 確保 PHP、Web Server(如 Nginx/Apache)已安裝。
- 設置 Web Server
- 配置 Nginx 或 Apache 處理 PHP 檔案的方式。
- 範例配置(Nginx):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
server { listen 80; server_name example.com; root /var/www/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- 部署應用程式
- 使用 FTP 或 SCP 上傳檔案至伺服器。
- 設定正確的檔案權限(如
chmod
和chown
)。 - 設定資料庫連線資訊。
- HTTPS 設定
- 安裝 Let’s Encrypt 憑證:
1
sudo certbot --nginx
- 安裝 Let’s Encrypt 憑證:
效能優化技巧
- 啟用 PHP OPcache
- 編輯 PHP 設定檔(通常位於
/etc/php/7.4/fpm/php.ini
):1 2 3 4
opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000
- 編輯 PHP 設定檔(通常位於
- 使用快取
- Redis 或 Memcached 用於存儲頻繁訪問的資料。
- 範例:
1 2 3 4
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->set('key', 'value'); echo $redis->get('key');
- 壓縮與最小化資源
- 啟用 Gzip 壓縮:
1 2
gzip on; gzip_types text/plain application/json application/javascript text/css;
- 啟用 Gzip 壓縮:
- 優化資料庫查詢
- 使用索引加速查詢:
1
CREATE INDEX idx_user_id ON users(user_id);
- 使用索引加速查詢:
- 內容傳遞網路 (CDN)
- 將靜態資源(如圖片、CSS、JS)交由 CDN(如 Cloudflare)處理。
- 分頁與延遲加載
- 分頁顯示資料避免一次載入大量內容。
- 使用 JavaScript 延遲載入圖片或表格內容。
教學重點
- 瞭解 Web Server 與 PHP 的協作方式。
- 學習快取與壓縮技術。
- 執行效能測試工具(如 Apache Benchmark 或 JMeter)。
- 將效能優化集成至開發流程。
本文章以 CC BY 4.0 授權