CentOS部署Yii项目时PHP-FPM配置如何正确设置?

在CentOS系统上部署Yii项目需要经过环境准备、项目配置、服务优化等多个步骤,确保项目稳定运行,以下是详细操作指南:

CentOS部署Yii项目时PHP-FPM配置如何正确设置?

环境准备

基础系统环境

  • 操作系统:CentOS 7/8(推荐7.9版本,稳定性较高)
  • Web服务器:Nginx 1.18+(推荐)或Apache 2.4+
  • 数据库:MySQL 5.7+或MariaDB 10.3+
  • PHP:7.4+(Yii 2.0支持PHP 7.1-8.1,建议7.4)
  • 其他工具:Git、Composer、Unzip

安装必要软件

# 更新系统
sudo yum update -y
# 安装EPEL源
sudo yum install epel-release -y
# 安装Nginx、MySQL、PHP及相关扩展
sudo yum install nginx mysql-server php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-json php-zip -y
# 安装Git和Composer
sudo yum install git -y
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

服务初始化

# 启动并设置开机自启
sudo systemctl start nginx mysqld php-fpm
sudo systemctl enable nginx mysqld php-fpm
# 初始化MySQL安全配置
sudo mysql_secure_installation

项目部署流程

下载Yii项目

# 创建项目目录(如/var/www/yii-project)
sudo mkdir -p /var/www/yii-project
sudo chown -R nginx:nginx /var/www/yii-project
# 通过Git克隆或Composer创建项目
cd /var/www/yii-project
git clone https://github.com/yiisoft/yii2-app-basic.git .  # 示例:使用基础模板
# 或 composer create-project --prefer-dist yiisoft/yii2-app-basic .

配置文件修改

  • 数据库配置:修改config/db.php,填入MySQL连接信息:
    return [
        'class' => 'yiidbConnection',
        'dsn' => 'mysql:host=localhost;dbname=yii_db',
        'username' => 'yii_user',
        'password' => 'your_password',
        'charset' => 'utf8mb4',
    ];
  • 权限设置
    sudo chmod -R 755 /var/www/yii-project/runtime
    sudo chmod -R 755 /var/www/yii-project/web/assets

Nginx配置

创建/etc/nginx/conf.d/yii-project.conf

server {
    listen 80;
    server_name your_domain.com;
    root /var/www/yii-project/web;
    index index.php;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ .php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

重启Nginx:sudo systemctl reload nginx

数据库初始化

# 导入数据库(若有SQL文件)
mysql -u root -p yii_db < /path/to/your/file.sql
# 或通过Yii命令行迁移
./yii migrate

性能优化与安全加固

PHP-FPM优化

编辑/etc/php-fpm.d/www.conf,调整以下参数:

CentOS部署Yii项目时PHP-FPM配置如何正确设置?

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

重启PHP-FPM:sudo systemctl restart php-fpm

安全配置

  • 禁用目录列表:在Nginx配置中添加autoindex off;
  • 防火墙设置
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload
  • SSL证书(推荐):使用Let’s Encrypt免费证书
    sudo yum install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d your_domain.com

缓存配置

  • OPcache:确保/etc/php.d/10-opcache.ini已启用:
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.max_accelerated_files=4000
  • Redis缓存(可选):安装Redis并配置Yii缓存组件

常见问题排查

问题现象 可能原因 解决方案
404 Not Found Nginx root路径错误 检查roottry_files配置
PHP白屏 PHP-FPM未启动 检查systemctl status php-fpm
数据库连接失败 用户权限不足 授予MySQL用户远程访问权限

FAQs

Q1: 部署后出现”No input file specified”错误怎么办?
A: 通常是由于Nginx配置中fastcgi_param SCRIPT_FILENAME路径错误,确保变量值与$document_root拼接正确,检查/var/log/nginx/error.log确认具体错误。

Q2: 如何设置定时任务执行Yii控制台命令?
A: 编辑crontab(crontab -e),添加如下格式任务:

CentOS部署Yii项目时PHP-FPM配置如何正确设置?

* * * * * /usr/bin/php /var/www/yii-project/yii cron/send-mail >> /var/log/yii-cron.log 2>&1

注意使用PHP完整路径,并确保日志目录可写。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-09-30 21:42
下一篇 2025-09-30 21:51

相关推荐

  • Centos 7待机状态下的系统资源消耗是否合理?如何优化?

    CentOS 7 系统待机优化指南CentOS 7 作为一款广泛使用的Linux发行版,其稳定性和可靠性得到了广大用户的认可,在使用过程中,我们可能会遇到系统待机时能耗较高的问题,本文将为您详细介绍CentOS 7系统待机优化的方法,帮助您降低能耗,提高系统性能,关闭不必要的后台服务查看当前运行的服务使用以下命……

    2026-01-12
    005
  • CentOS LVM删除分区后数据如何恢复?

    在CentOS系统中,LVM(逻辑卷管理)提供了更灵活的磁盘管理方式,允许用户动态调整分区大小,有时我们需要删除不再需要的LVM分区,无论是为了释放空间、重新规划存储还是解决其他问题,正确删除LVM分区需要谨慎操作,以避免数据丢失或系统故障,本文将详细介绍在CentOS系统中安全删除LVM分区的步骤、注意事项以……

    2025-12-20
    005
  • 服务器内建站助手_策略助手

    服务器内建站助手_策略助手是一款帮助用户快速搭建网站的工具,提供丰富的模板和策略建议,让建站变得更加简单高效。

    2024-07-06
    0019
  • CentOS未安装unzip时,如何解压.zip文件?

    在CentOS系统中,unzip工具是解压.zip格式文件的重要命令行工具,但默认情况下,CentOS可能并未预装该工具,当用户尝试使用unzip命令时,可能会遇到“command not found”的错误提示,本文将详细说明CentOS系统中未安装unzip时的解决方案、替代方法以及相关注意事项,检查unz……

    2025-12-06
    0012

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信