# 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
# Ubuntu/Debian
sudo apt install nginx -y
# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
訪問 http://服務器IP,看到Nginx歡迎頁即表示安裝成功。
# 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
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
php -v
編輯配置文件(路徑可能不同):
# 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
編輯默認站點配置:
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;
}
}
sudo nginx -t # 檢查語法
sudo systemctl restart nginx
sudo nano /var/www/html/info.php
寫入以下內容:
<?php phpinfo(); ?>
瀏覽器訪問 http://服務器IP/info.php,應顯示PHP信息頁。
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R nginx:nginx /var/www/example.com
# 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;
}
}
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx
編輯 php.ini:
sudo nano /etc/php/7.4/fpm/php.ini
修改:
disable_functions = exec,passthru,shell_exec,system
在PHP location塊中添加:
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/example.com:/tmp";
# 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
systemctl status php-fpmsudo chmod 755 -R /var/wwwtail -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字,可根據需要擴展具體章節的細節內容)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。