首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Ubuntu 10.04 LTS 快速構建 LEMP 環境:apt-get 一鍵部署 Nginx + PHP-FPM + MySQL + phpMyAdmin

     編輯:PHP 相關知識

環境與目標

  • OS: Ubuntu 10.04 LTS (Lucid Lynx)
  • 目標棧: Nginx + PHP 5 (FastCGI) + MySQL 5.1 + phpMyAdmin
  • 方式: 官方倉庫 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 資料庫配置,按提示操作即可。

二、驗證 Nginx 基礎運行

瀏覽器訪問 https://127.0.0.1/ 或 https://localhost/,應看到「Welcome to nginx!」預設頁面。

三、關鍵配置:啟用 PHP FastCGI 支援

1. 修正 /etc/nginx/fastcgi_params

fastcgi_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 找不到腳本檔案。

2. 調整 /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/*;
}

3. 配置預設站點 /etc/nginx/sites-available/default

server {
    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 參數
    }
}

四、啟動驗證全流程

  1. 建立測試檔:
    echo '
  2. 重載 Nginx:
    sudo /etc/init.d/nginx restart
  3. 啟動 PHP-FPM (spawn-fcgi 方式):
    /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 /usr/bin/php-cgi
    • -a 綁定 IP
    • -p 監聽端口
    • -C 子進程數 (並發處理能力)
  4. 瀏覽器重新訪問 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 日誌

六、常見問題排查

  • 502 Bad Gateway: 檢查 spawn-fcgi 是否運行、端口 9000 是否被佔用、Nginx fastcgi_pass IP/端口是否匹配
  • 404 Not Found (PHP 檔案存在): SCRIPT_FILENAME 路徑錯誤,確認 $document_root$fastcgi_script_name 拼接正確
  • 權限拒絕: Nginx worker 用戶 (www-data) 需對網站目錄有讀取權限,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+ 的現代棧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved