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终端用哪种字体既清晰又能完美支持中文显示?

    在CentOS系统中,选择一款合适的字体不仅关乎视觉美观,更直接影响工作效率,尤其是在长时间面对代码、命令行或文档时,一个优秀的字体应当具备良好的可读性、清晰的渲染效果,并且能妥善处理不同语言的显示需求,“centos字体哪个好”并没有一个唯一的答案,最佳选择取决于您的具体使用场景,例如是用于终端模拟器、桌面环……

    2025-10-04
    0016
  • 如何优化服务器以支持高效的FLV视频播放?

    服务器上的FLV视频播放功能允许用户通过互联网流式传输并观看FLV格式的视频文件。这种格式因其较小的文件大小和较快的加载速度,在在线视频服务中非常受欢迎。

    2024-08-09
    0013
  • Linux CentOS无法联网,应该如何快速排查解决?

    在Linux服务器的运维过程中,网络问题是初学者乃至资深管理员都可能遇到的“拦路虎”,尤其对于广泛用于企业环境的CentOS系统,一旦无法联网,将直接影响软件更新、远程访问和服务部署,面对“Linux CentOS无法联网”的困境,切忌盲目操作,应遵循一套系统化的排查逻辑,从物理层到应用层,逐步定位问题根源,基……

    2025-10-13
    0039
  • CentOS下如何通过目录权限命令实现精准的文件访问控制?

    在 Linux 系统中,目录权限的管理是保障系统安全与稳定运行的关键环节,CentOS 作为企业级常用的操作系统,其目录权限的设置需通过特定命令实现精准控制,本文将围绕 CentOS 目录权限的核心命令展开,详细讲解其用法、场景及注意事项,帮助用户高效管理文件系统权限,目录权限基础概念Linux 文件系统中的每……

    2025-10-22
    0010

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信