apt-get 安裝,適合快速原型與學習sudo apt-get update
sudo apt-get install nginx php5-cgi php5-cli mysql-server-5.1 phpmyadmin spawn-fcgi
安裝過程中會提示設定 MySQL root 密碼、phpMyAdmin 資料庫配置,按提示操作即可。
瀏覽器訪問 https://127.0.0.1/ 或 https://localhost/,應看到「Welcome to nginx!」預設頁面。
/etc/nginx/fastcgi_paramsfastcgi_ignore_client_abort on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
核心點: fastcgi_pass 指向 PHP-FPM 監聽地址;SCRIPT_FILENAME 必須為絕對路徑,否則 PHP 找不到腳本檔案。
/etc/nginx/nginx.conf 主配置user www-data www-data; # Ubuntu 預設用戶組
worker_processes 2; # CPU 核心數
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6].(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
/etc/nginx/sites-available/defaultserver {
listen 80 default_server;
server_name localhost;
root /var/www/nginx-default;
access_log /var/log/nginx/localhost.access.log;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
include fastcgi_params; # 關鍵:引入 FastCGI 參數
}
}
echo 'sudo /etc/init.d/nginx restart/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 /usr/bin/php-cgi
-a 綁定 IP-p 監聽端口-C 子進程數 (並發處理能力)https://localhost/,應顯示 PHP info 頁面| 項目 | 建議 |
|---|---|
| PHP 進程管理 | 改用 php5-fpm 套件 (Ubuntu 10.04 需加裝 PPA),支援平滑重啟、狀態頁、慢日誌 |
| Nginx 靜態資源緩存 | 在 location ~* \.(jpg|css|js)$ 加入 expires 30d; |
| MySQL 安全 | mysql_secure_installation 移除匿名用戶、禁止 root 遠程、刪除 test 庫 |
| phpMyAdmin 訪問控制 | Nginx 層面 allow/deny 限制 IP,或改用非預設路徑 |
| 日誌切割 | 配置 logrotate 定期輪轉 Nginx/MySQL/PHP 日誌 |
spawn-fcgi 是否運行、端口 9000 是否被佔用、Nginx fastcgi_pass IP/端口是否匹配SCRIPT_FILENAME 路徑錯誤,確認 $document_root$fastcgi_script_name 拼接正確php-cgi 執行用戶需對目錄有執行權限版本提示: Ubuntu 10.04 已於 2015 年結束支援。現代部署請使用 Ubuntu 22.04/24.04 LTS,直接
apt install nginx php-fpm mysql-server即可獲得 PHP 8.x、MySQL 8.0、Nginx 1.18+ 的現代棧。