温馨提示×

Linux PHP如何配置服务器环境

小樊
37
2025-12-14 06:52:21
栏目: 云计算

Linux PHP 服务器环境配置指南

一 环境选型与准备

  • 常见组合:
    • LAMPLinux + Apache + MySQL/MariaDB + PHP
    • LNMPLinux + Nginx + MySQL/MariaDB + PHP-FPM
  • 准备与原则:
    • 以发行版官方仓库为主,必要时使用可信第三方仓库(如 Remi)获取新版本 PHP。
    • 安装常用扩展:php-cli php-fpm php-mysqlnd php-gd php-curl php-xml php-mbstring php-zip
    • 统一 PHP 版本:CLI 与 FPM 版本保持一致,避免兼容性问题。
    • 防火墙与安全组放行 HTTP/HTTPS(80/443) 端口。

二 安装与基础配置

  • Ubuntu/Debian 示例(Apache 模块方式)
    1. 安装组件
      • sudo apt update
      • sudo apt install apache2 libapache2-mod-php php php-cli php-fpm php-mysqlnd php-gd php-curl php-xml php-mbstring php-zip
    2. 启用索引与模块
      • sudo a2enmod php**{version}**
      • 可选:将 index.php 置于 DirectoryIndex 首位(/etc/apache2/mods-enabled/dir.conf)
    3. 启动服务
      • sudo systemctl enable --now apache2
  • CentOS/RHEL 7 示例(Nginx + PHP-FPM)
    1. 安装 EPEL 与 Remi 仓库,启用所需 PHP 版本
      • sudo yum install -y epel-release yum-utils
      • sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
      • 使用 yum-config-manager 启用对应 php 版本仓库
    2. 安装组件
      • sudo yum install -y nginx mariadb-server mariadb php php-fpm php-mysqlnd php-gd php-curl php-xml php-mbstring php-zip
    3. 启动服务
      • sudo systemctl enable --now nginx mariadb php-fpm
  • 验证
    • php -v
    • 查看服务状态:systemctl status apache2|nginx|php-fpm
    • 数据库安全初始化:sudo mysql_secure_installation(仅首次)

三 Web 服务器与 PHP 集成

  • Nginx + PHP-FPM(推荐)
    • 典型 server 配置片段:
      • location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php**{version}**-fpm.sock; # 或 127.0.0.1:9000 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
    • 检查并重载:
      • sudo nginx -t && sudo systemctl reload nginx
  • Apache + mod_php
    • 启用模块与默认站点:
      • sudo a2enmod php**{version}**
      • 可选:a2ensite 你的站点配置并禁用默认站点
    • 重载:
      • sudo systemctl reload apache2
  • 路径与版本提示
    • FPM 套接字常见路径:/var/run/php/php{version}-fpm.sock(Debian/Ubuntu),或 /run/php/php{version}-fpm.sock(部分发行版)
    • 站点根目录常见:/var/www/html(Apache),/usr/share/nginx/html(Nginx)

四 PHP 核心配置与性能优化

  • 定位 php.ini
    • php -i | grep “Loaded Configuration File”
    • 或创建 phpinfo.php 查看 “Loaded Configuration File”
  • 常用运行时参数(按业务调整)
    • memory_limit = 256M
    • max_execution_time = 120
    • upload_max_filesize = 20M
    • post_max_size = 20M
    • date.timezone = Asia/Shanghai
  • 性能与安全
    • 启用 OPcache(建议生产环境开启)
      • opcache.enable=1
      • opcache.memory_consumption=128
      • opcache.interned_strings_buffer=8
      • opcache.max_accelerated_files=4000
      • opcache.revalidate_freq=60
    • 错误与日志
      • display_errors = Off(生产)
      • log_errors = On
      • error_log = /var/log/php_errors.log
      • error_reporting = E_ALL & ~E_NOTICE
    • 安全加固
      • 禁用危险函数:disable_functions = exec,shell_exec,passthru,system,proc_open,proc_close,openlog,syslog,readlink,symlink,popen,dl,leak,popepassthru,stream_socket_server,chroot,chgrp,chown,escapeshellcmd,escapeshellarg
      • 路径隔离:open_basedir = /var/www/:/tmp/
  • 使配置生效
    • Apache:sudo systemctl reload apache2
    • PHP-FPM:sudo systemctl reload php**{version}**-fpm

五 验证与常见问题

  • 验证步骤
    • 创建测试文件:echo “” | sudo tee /var/www/html/info.php
    • 访问:http://服务器IP/info.php(生产环境完成后请删除该文件)
  • 常见问题排查
    • 502/504:检查 PHP-FPM 是否运行、监听地址与 Nginx 配置一致、套接字权限与属主正确
    • 空白页:开启错误日志(display_errors=Off; log_errors=On),查看 error_log
    • 权限问题:确保 DocumentRoot/tmpwww-datanginx 用户可读写
    • 扩展缺失:安装对应 php-{extension} 包并重启 PHP-FPM/Web 服务
    • 版本不一致:确认 CLI 与 FPM 使用同一 PHP 版本(php -v 与 php-fpm -v)

0