温馨提示×

centos php环境搭建步骤

小樊
37
2025-12-23 07:54:53
栏目: 编程语言

CentOS PHP环境搭建步骤

一 准备与版本选择

  • 更新系统并安装常用仓库:执行命令:sudo yum update -ysudo yum install -y epel-release
  • 选择堆栈:常见为 LAMP(Apache+MySQL+PHP)LEMP(Nginx+MySQL+PHP)
  • 选择 PHP 版本:
    • CentOS 7 常见为 PHP 7.x;如需 PHP 7.4/8.0,可启用第三方仓库(如 webtatic)后再安装。
    • CentOS 8 默认 PHP 7.2,也可通过相应仓库安装 7.4/8.0
  • 常用扩展建议:php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-bcmath php-zip

二 快速搭建 LAMP(Apache + MariaDB/MySQL + PHP)

  • 安装组件:
    • Web 服务器:sudo yum install -y httpd
    • 数据库:优先 MariaDB(CentOS 7 常见为 mariadb-server):sudo yum install -y mariadb-server;如需 MySQL,按发行版仓库安装
    • PHP 与扩展:sudo yum install -y php php-mysqlnd php-gd php-mbstring php-xml php-bcmath
  • 启动与开机自启:
    • sudo systemctl start httpd && sudo systemctl enable httpd
    • sudo systemctl start mariadb && sudo systemctl enable mariadb
    • 运行安全初始化:sudo mysql_secure_installation
  • 验证与测试:
    • 查看版本:php -v
    • 创建测试页:echo “” | sudo tee /var/www/html/info.php
    • 浏览器访问:http://服务器IP/info.php 应显示 PHP 信息页

三 快速搭建 LEMP(Nginx + MariaDB/MySQL + PHP-FPM)

  • 安装组件:
    • Web 服务器:sudo yum install -y nginx
    • 数据库:同 LAMP(mariadb-serverMySQL
    • PHP 与 FPM:sudo yum install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-bcmath
  • 启动与开机自启:
    • sudo systemctl start nginx && sudo systemctl enable nginx
    • sudo systemctl start php-fpm && sudo systemctl enable php-fpm
  • 配置 Nginx 处理 PHP:编辑站点配置(如 /etc/nginx/conf.d/default.conf
    • 示例(Unix Socket,常见路径为 /var/run/php-fpm/php-fpm.sock/run/php-fpm/php-fpm.sock):
      server {
          listen 80;
          server_name your_domain_or_ip;
          root /var/www/html;
          index index.php index.html;
      
          location / {
              try_files $uri $uri/ =404;
          }
      
          location ~ \.php$ {
              include fastcgi_params;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
          }
      }
      
    • 如使用 TCP 方式:fastcgi_pass 127.0.0.1:9000;
  • 重启服务并测试:
    • sudo systemctl restart nginx
    • 访问 http://服务器IP/info.php 验证

四 常用配置与优化

  • 核心参数(编辑 /etc/php.ini):
    • memory_limit(脚本内存上限)、upload_max_filesizepost_max_size(上传相关)
    • date.timezone(如:Asia/Shanghai
  • FPM 与权限:
    • 确认 php-fpm 运行用户与站点目录属主一致(如 nginx/www),避免 403/500 错误
  • 性能与安全:
    • 启用 OPcache(生产环境建议开启)
    • 仅保留必要扩展,隐藏 phpinfo 页面,限制访问 /var/www 目录
  • 重载配置:
    • sudo systemctl restart php-fpm(FPM 变更)
    • sudo systemctl restart httpdsudo systemctl restart nginx(Web 服务变更)

五 常见问题与排错

  • 安装 PHP 扩展提示无匹配包:在 CentOS 7 上优先安装 php-mysqlnd 而非已弃用的 php-mysql
  • 访问 http://IP/ 显示默认页而非项目:确认 DocumentRootindex 指令配置正确,且站点目录存在默认首页。
  • 访问 info.php 空白或下载:多为 Nginx/Apache 未正确代理到 PHP-FPM,检查 fastcgi_pass 路径或端口、以及 SCRIPT_FILENAME 是否设置。
  • 数据库启动失败或提示 Unit not found:在 CentOS 7 使用 mariadb-server 替代 mysql-server 更常见。
  • SELinux 或防火墙拦截:必要时调整策略或临时放行 80/443 端口后再测试。

0