如何配置Debian的PHP环境
小樊
43
2025-11-23 08:20:59
Debian PHP环境配置指南
一 准备与安装
- 更新索引并安装基础组件:
- sudo apt update
- sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-bcmath
- 查看与安装指定版本(示例为PHP 8.2):
- apt-cache policy php
- sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql
- 验证安装:
- php -v
- 查看服务状态:sudo systemctl status php8.2-fpm(按实际版本替换)
二 选择并配置Web服务器
- 使用 Nginx + PHP-FPM(推荐)
- 配置 FPM 监听(/etc/php/8.2/fpm/pool.d/www.conf):
- listen = /run/php/php8.2-fpm.sock
- listen.owner = www-data;listen.group = www-data
- 启动 FPM:
- sudo systemctl start php8.2-fpm && sudo systemctl enable php8.2-fpm
- 配置 Nginx(/etc/nginx/sites-available/default)示例:
- server {
- listen 80; server_name example.com;
- root /var/www/html; index index.php index.html;
- location / { try_files $uri $uri/ =404; }
- location ~ .php$ {
- include snippets/fastcgi-php.conf;
- fastcgi_pass unix:/run/php/php8.2-fpm.sock;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- location ~ /.ht { deny all; }
- }
- 检查并重载:
- sudo nginx -t && sudo systemctl reload nginx
- 使用 Apache(mod_php 或 FPM)
- mod_php(简单,适合快速部署):
- sudo apt install libapache2-mod-php8.2
- sudo a2enmod php8.2 && sudo systemctl restart apache2
- FPM(与 Nginx 类似,适合高并发):
- 启用模块:sudo a2enmod proxy_fcgi setenvif
- 虚拟主机示例:
- <FilesMatch .php$>
- SetHandler “proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost”
-
- sudo systemctl restart apache2
三 PHP 核心配置与性能优化
- 配置文件路径(按运行模式区分):
- CLI:/etc/php/8.2/cli/php.ini
- FPM:/etc/php/8.2/fpm/php.ini
- FPM 进程池:/etc/php/8.2/fpm/pool.d/www.conf
- 常用参数建议(按业务调整):
- memory_limit = 256M(生产可提升到512M)
- upload_max_filesize = 64M;post_max_size = 64M
- max_execution_time = 300
- display_errors = Off(生产);开发可 On
- error_reporting = E_ALL
- FPM 进程与权限(/etc/php/8.2/fpm/pool.d/www.conf):
- user = www-data;group = www-data
- listen.owner = www-data;listen.group = www-data
- 动态/静态进程管理:pm = dynamic;pm.max_children = 50;pm.start_servers = 5;pm.min_spare_servers = 5;pm.max_spare_servers = 35
- 应用配置与重载:
- 修改 FPM 后:sudo systemctl reload php8.2-fpm
- 修改 Apache 后:sudo systemctl reload apache2
- 修改 Nginx 后:sudo nginx -t && sudo systemctl reload nginx
四 多版本共存与切换
- 安装多个版本(示例:7.4 与 8.2):
- sudo apt install php7.4 php7.4-fpm php8.2 php8.2-fpm
- 分别配置各自的 FPM 监听(如:/run/php/php7.4-fpm.sock 与 /run/php/php8.2-fpm.sock),并在 Nginx/Apache 的 server 块中指定对应版本。
- 切换 CLI 默认版本(Debian 多版本通常用 alternatives):
- 查看:update-alternatives --config php
- 交互选择所需版本(如 php8.2)
- 注意:不同站点可在同一服务器上运行不同 PHP 版本,分别指向对应的 FPM socket 或端口。
五 测试与运维安全
- 功能测试:
- 创建探针:echo “” | sudo tee /var/www/html/info.php
- 访问:http://服务器IP/info.php(确认版本、扩展、SAPI 与 FPM socket)
- 数据库连通性测试(示例):
-
connect_error) die("连接失败: " . $conn->connect_error);
- echo "连接成功";
- ?>
- 防火墙放行(UFW):
- Nginx:sudo ufw allow ‘Nginx Full’
- Apache:sudo ufw allow ‘Apache Full’
- 安全建议:
- 生产环境关闭 info.php,或限制访问来源
- 启用 HTTPS(如 Let’s Encrypt)
- 保持系统与扩展更新:sudo apt update && sudo apt upgrade
- 设置合适的文件权限与所有者(如 /var/www/html 归属 www-data)