根据不同的Linux发行版,安装方法有所不同:
# 更新软件包列表
sudo apt update
# 安装PHP(最新稳定版)
sudo apt install php
# 安装PHP扩展(常用扩展)
sudo apt install php-cli php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
# 检查PHP版本
php -v
# 添加EPEL和Remi仓库(CentOS/RHEL 7/8)
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 启用Remi仓库中的PHP模块
sudo yum module enable php:remi-8.1 # 替换为您需要的PHP版本
# 安装PHP
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
# 检查PHP版本
php -v
/etc/php/[version]/cli/php.ini
(命令行) 和 /etc/php/[version]/fpm/php.ini
(FPM)/etc/php.ini
编辑php.ini文件:
sudo nano /etc/php/[version]/fpm/php.ini
推荐修改的配置项:
; 调整内存限制
memory_limit = 256M
; 上传文件大小限制
upload_max_filesize = 64M
post_max_size = 64M
; 最大执行时间
max_execution_time = 300
; 时区设置
date.timezone = "Asia/Shanghai"
; 错误报告设置(生产环境建议关闭错误显示)
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
配置文件通常位于:
- Ubuntu/Debian: /etc/php/[version]/fpm/pool.d/www.conf
- CentOS/RHEL: /etc/php-fpm.d/www.conf
常见调整:
; 进程管理设置
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
; 监听设置
listen = /run/php/php8.1-fpm.sock # 或 127.0.0.1:9000
; 用户/组设置
user = www-data
group = www-data
sudo systemctl restart php8.1-fpm # 根据您的PHP版本调整
在Nginx配置文件中添加:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
# 或 fastcgi_pass 127.0.0.1:9000;
}
# 安装Apache PHP模块
sudo apt install libapache2-mod-php # Ubuntu/Debian
sudo yum install php # CentOS/RHEL
# 启用模块
sudo a2enmod php8.1 # Ubuntu/Debian
创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
然后在浏览器中访问 http://your-server-ip/info.php
查看PHP信息页面。
ini
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
ini
open_basedir = /var/www/html:/tmp
问题1: PHP扩展未加载
- 解决方案:确保已安装扩展并启用,例如:
bash
sudo phpenmod mbstring # Ubuntu/Debian
问题2: 修改php.ini后未生效
- 解决方案:重启PHP-FPM或Web服务器
bash
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx # 或 apache2/httpd
问题3: 内存不足错误
- 解决方案:增加memory_limit
值或优化代码
通过以上步骤,您应该能够在Linux系统上成功安装和配置PHP环境。根据您的具体需求,可能还需要安装其他PHP扩展或进行额外的配置调整。