您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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-fpm
sudo chmod 755 -R /var/www
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字,可根据需要扩展具体章节的细节内容)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。