nginx如何部署php7项目

发布时间:2021-12-08 09:36:23 作者:iii
来源:亿速云 阅读:165
# Nginx如何部署PHP7项目

## 前言

在当今的Web开发中,Nginx和PHP的组合已成为高性能网站的主流选择之一。Nginx以其高效的事件驱动架构著称,而PHP7则带来了显著的性能提升。本文将详细介绍如何在Linux系统上使用Nginx部署PHP7项目,涵盖环境配置、Nginx虚拟主机设置以及常见问题排查等内容。

---

## 一、环境准备

### 1.1 系统要求
- Linux操作系统(推荐Ubuntu 20.04/CentOS 7+)
- 已安装Nginx(版本1.18+)
- PHP7(7.2及以上版本)
- MySQL/MariaDB(可选,用于数据库支持)

### 1.2 安装必要组件

#### Ubuntu/Debian系统
```bash
# 更新软件包列表
sudo apt update

# 安装Nginx
sudo apt install nginx -y

# 安装PHP7及常用扩展
sudo apt install php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-zip -y

CentOS/RHEL系统

# 添加EPEL仓库
sudo yum install epel-release -y

# 安装Nginx
sudo yum install nginx -y

# 安装PHP7及扩展
sudo yum install php74-php-fpm php74-php-mysqlnd php74-php-curl php74-php-gd php74-php-mbstring -y

二、配置PHP-FPM

2.1 检查PHP-FPM状态

systemctl status php7.4-fpm  # Ubuntu
systemctl status php74-php-fpm  # CentOS

2.2 修改PHP-FPM配置

编辑配置文件(路径可能因系统而异):

sudo nano /etc/php/7.4/fpm/pool.d/www.conf  # Ubuntu
sudo nano /etc/opt/remi/php74/php-fpm.d/www.conf  # CentOS

关键参数调整:

listen = /run/php/php7.4-fpm.sock  # 使用Unix socket
; listen = 127.0.0.1:9000         # 或使用TCP端口

user = www-data
group = www-data

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

2.3 重启PHP-FPM

sudo systemctl restart php7.4-fpm

三、Nginx服务器配置

3.1 创建项目目录

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

3.2 配置虚拟主机

创建Nginx配置文件:

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

示例配置:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/public_html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        # fastcgi_pass 127.0.0.1:9000;  # 如果使用TCP方式
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
}

3.3 启用配置

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t  # 测试配置
sudo systemctl restart nginx

四、部署PHP项目

4.1 上传项目文件

将PHP项目文件上传至:

/var/www/example.com/public_html/

4.2 设置权限

sudo chmod -R 755 /var/www
sudo chown -R www-data:www-data /var/www/example.com

4.3 测试PHP解析

创建测试文件:

echo "<?php phpinfo(); ?>" > /var/www/example.com/public_html/info.php

访问 http://your_server_ip/info.php 应显示PHP信息页。


五、安全加固

5.1 禁用危险函数

编辑 php.ini

disable_functions = exec,passthru,shell_exec,system,proc_open,popen

5.2 配置SSL证书(Let’s Encrypt)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com

5.3 防火墙设置

sudo ufw allow 'Nginx Full'
sudo ufw enable

六、常见问题排查

6.1 502 Bad Gateway

6.2 PHP文件被下载

6.3 性能优化建议


结语

通过以上步骤,您已成功在Nginx上部署了PHP7项目。这种组合不仅能提供出色的性能,还能通过灵活的配置满足各种需求。建议定期检查服务器日志并保持软件更新,以确保系统安全稳定运行。

注意:本文基于Ubuntu系统编写,其他Linux发行版可能需要调整部分命令和路径。 “`

(全文约1700字)

推荐阅读:
  1. nginx下如何部署vue项目
  2. 服务器使用Nginx如何部署Springboot项目

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

nginx php

上一篇:mysql中索引配置如何优化

下一篇:对MySQL性能影响关系紧密的配置参数有哪些

相关阅读

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

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