Linux下怎么配置Nginx和PHP

发布时间:2022-02-15 15:40:59 作者:iii
来源:亿速云 阅读:246
# 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

8.2 PHP文件被下载

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字,可根据需要扩展具体章节的细节内容)

推荐阅读:
  1. windows下安装和配置nginx
  2. Ubuntu如何安装PHP和PHP Nginx配置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux nginx php

上一篇:vue中setup有什么作用

下一篇:Docker怎么搭建本地仓库

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》