溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下怎么配置Nginx和PHP

發布時間:2022-02-15 15:40:59 來源:億速云 閱讀:262 作者:iii 欄目:開發技術
# Linux下怎么配置Nginx和PHP

## 前言

Nginx作為高性能的Web服務器,與PHP的組合是構建動態網站的經典方案。本文將詳細介紹在Linux系統下如何配置Nginx和PHP(以PHP-FPM模式),涵蓋安裝、基礎配置、虛擬主機設置及安全優化等內容。

---

## 一、環境準備

### 1.1 系統要求
- Linux發行版(本文以Ubuntu 20.04/CentOS 7為例)
- 管理員權限(sudo或root用戶)
- 穩定的網絡連接

### 1.2 更新系統包
```bash
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL
sudo yum update -y

二、安裝Nginx

2.1 安裝Nginx

# Ubuntu/Debian
sudo apt install nginx -y

# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y

2.2 啟動并設置開機自啟

sudo systemctl start nginx
sudo systemctl enable nginx

2.3 驗證安裝

訪問 http://服務器IP,看到Nginx歡迎頁即表示安裝成功。


三、安裝PHP與PHP-FPM

3.1 安裝PHP(以PHP 7.4為例)

# Ubuntu/Debian
sudo apt install php7.4-fpm php7.4-mysql php7.4-cli -y

# CentOS/RHEL
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm php-mysqlnd -y

3.2 啟動PHP-FPM

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

3.3 檢查PHP版本

php -v

四、配置Nginx與PHP-FPM

4.1 修改PHP-FPM配置

編輯配置文件(路徑可能不同):

# Ubuntu/Debian
sudo nano /etc/php/7.4/fpm/pool.d/www.conf

# CentOS/RHEL
sudo nano /etc/php-fpm.d/www.conf

找到以下參數并修改:

user = nginx
group = nginx
listen = /run/php/php7.4-fpm.sock  # Ubuntu默認值
; listen = 127.0.0.1:9000          # CentOS默認值

重啟PHP-FPM:

sudo systemctl restart php-fpm

4.2 配置Nginx支持PHP

編輯默認站點配置:

sudo nano /etc/nginx/sites-available/default  # Ubuntu
sudo nano /etc/nginx/conf.d/default.conf     # CentOS

server 塊內添加PHP處理:

server {
    listen 80;
    server_name your_domain.com;
    root /var/www/html;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;  # Ubuntu
        # include fastcgi_params;           # CentOS
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;  # Ubuntu
        # fastcgi_pass 127.0.0.1:9000;      # CentOS
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

4.3 測試配置并重啟Nginx

sudo nginx -t   # 檢查語法
sudo systemctl restart nginx

五、測試PHP解析

5.1 創建測試文件

sudo nano /var/www/html/info.php

寫入以下內容:

<?php phpinfo(); ?>

5.2 訪問測試頁面

瀏覽器訪問 http://服務器IP/info.php,應顯示PHP信息頁。


六、虛擬主機配置(多站點)

6.1 創建站點目錄

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R nginx:nginx /var/www/example.com

6.2 創建虛擬主機文件

# Ubuntu
sudo nano /etc/nginx/sites-available/example.com

# CentOS
sudo nano /etc/nginx/conf.d/example.com.conf

配置內容示例:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/public_html;

    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

6.3 啟用站點(Ubuntu)

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

6.4 重啟Nginx

sudo systemctl restart nginx

七、安全優化

7.1 禁用危險PHP函數

編輯 php.ini

sudo nano /etc/php/7.4/fpm/php.ini

修改:

disable_functions = exec,passthru,shell_exec,system

7.2 Nginx防跨目錄

在PHP location塊中添加:

fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/example.com:/tmp";

7.3 配置防火墻

# Ubuntu
sudo ufw allow 'Nginx Full'

# CentOS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

八、常見問題排查

8.1 502 Bad Gateway

  • 檢查PHP-FPM是否運行:systemctl status php-fpm
  • 確認Nginx與PHP-FPM的通信方式(sock或端口)

8.2 PHP文件被下載

  • 確保Nginx配置中包含PHP處理塊
  • 檢查文件權限:sudo chmod 755 -R /var/www

8.3 日志查看

tail -f /var/log/nginx/error.log
journalctl -u php-fpm --no-pager -n 20

結語

通過以上步驟,您已成功在Linux系統上配置了Nginx與PHP-FPM。建議后續: 1. 配置HTTPS(使用Let’s Encrypt) 2. 定期更新軟件包 3. 監控服務器資源使用情況

如需更復雜的配置(如負載均衡、OPcache優化等),可參考Nginx和PHP官方文檔。 “`

(注:實際字數約1800字,可根據需要擴展具體章節的細節內容)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女