上一篇
Linux下如何安装PHP环境
- Linux
- 2025-06-14
- 4934
在Linux上安装PHP环境通常使用包管理器(如apt/yum)安装PHP核心及所需扩展,并配置Web服务器(如Apache或Nginx)支持PHP解析,基本步骤:,1. 安装PHP:
sudo apt install php
(Debian/Ubuntu) 或
sudo yum install php
(RHEL/CentOS),2. 安装Web服务器模块(如Apache的
libapache2-mod-php
或Nginx的PHP-FPM),3. 安装常用扩展(如php-mysql),4. 重启Web服务生效
安装前的准备
在Linux系统部署PHP环境前,请确保:
- 已获取
root
或sudo
权限 - 终端网络连接正常
- 确认系统版本(推荐Ubuntu 20.04+/CentOS 7+)
- 更新系统:
Ubuntu/Debiansudo apt update && sudo apt upgrade -y
CentOS/RHEL
sudo yum update -y
分步骤安装指南
安装PHP核心
Ubuntu/Debian
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y
CentOS/RHEL
sudo yum install epel-release -y sudo yum install https://rpms.remirepo.net/enterprise/remi-release-$(rpm -E %rhel).rpm -y sudo yum module enable php:remi-8.1 -y # 以PHP 8.1为例 sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip -y
配置PHP(关键安全设置)
- 编辑主配置文件:
sudo nano /etc/php/*/fpm/php.ini # Ubuntu路径 sudo nano /etc/php.ini # CentOS路径
- 修改以下参数:
expose_php = Off # 隐藏PHP版本 cgi.fix_pathinfo=0 # 防止路径遍历攻击 upload_max_filesize = 64M # 调整上传文件大小 post_max_size = 64M memory_limit = 256M
集成Web服务器(Nginx示例)
-
安装Nginx:
Ubuntusudo apt install nginx -y
CentOS
sudo yum install nginx -y
-
配置站点(示例
/etc/nginx/sites-available/your_site
):server { listen 80; server_name your_domain.com; root /var/www/html; location ~ .php$ { include snippets/fastcgi-php.conf; # Ubuntu路径 # include /etc/nginx/fastcgi_params; # CentOS路径 fastcgi_pass unix:/run/php/php-fpm.sock; } }
-
重启服务生效:
sudo systemctl restart nginx php-fpm sudo systemctl enable nginx php-fpm
验证安装
- 创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
- 浏览器访问:
http://your_server_ip/info.php
预期结果:显示PHP版本、扩展列表等详细信息(测试后务必删除此文件:
sudo rm /var/www/html/info.php
)
安全加固措施
- 限制敏感函数:在
php.ini
中添加disable_functions = exec,passthru,shell_exec,system
- 配置文件权限:
sudo chown -R www-data:www-data /var/www/html # Ubuntu sudo chown -R nginx:nginx /var/www/html # CentOS sudo find /var/www/html -type d -exec chmod 755 {} ; sudo find /var/www/html -type f -exec chmod 644 {} ;
- 启用防火墙:
Ubuntusudo ufw allow 'Nginx Full'
CentOS
sudo firewall-cmd --permanent --add-service=http --add-service=https sudo firewall-cmd --reload
故障排查
- 502 Bad Gateway:检查
php-fpm.sock
路径是否匹配Nginx配置 - 扩展未加载:运行
php -m
确认扩展状态,重启php-fpm
- 权限拒绝:使用
namei -l /var/www/html
检查目录权限链
扩展建议
- 性能优化:
- 安装OPcache:
sudo apt install php-opcache
/sudo yum install php-opcache
- 调整
pm
模式(/etc/php-fpm.d/www.conf
):pm = dynamic pm.max_children = 50 pm.start_servers = 5
- 安装OPcache:
- 版本管理:
使用update-alternatives
(Ubuntu)或remi
仓库(CentOS)切换多版本PHP
引用说明:
- PHP官方安装文档:https://www.php.net/manual/en/install.unix.php
- Nginx PHP配置指南:https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
- Linux安全加固标准:CIS Benchmarks
本文基于主流Linux发行版编写,适用于生产环境部署,定期更新保证方案有效性。