在Linux系统中安装和配置PHP是搭建Web开发环境的核心步骤,无论是部署个人博客还是企业级应用,都需要先完成PHP环境的正确配置。不同Linux发行版的包管理工具存在差异,安装方式也有所不同,同时还可以根据需求选择源码编译安装来自定义功能。

使用包管理器安装PHP
大部分Linux发行版都提供了官方的PHP包,通过包管理器安装是最快捷的方式,适合大多数常规使用场景。
Ubuntu/Debian系统安装
Ubuntu和Debian系统使用apt包管理器,首先更新软件源,然后安装PHP核心包和常用扩展:
# 更新软件源 sudo apt update # 安装PHP核心及常用扩展 sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
CentOS/RHEL系统安装
CentOS和RHEL系统使用yum或者dnf包管理器,需要先安装EPEL源和Remi源来获取较新版本的PHP:
# 安装EPEL源 sudo dnf install epel-release -y # 安装Remi源 sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y # 启用对应PHP版本的源,这里以PHP8.2为例 sudo dnf module enable php:remi-8.2 -y # 安装PHP核心及常用扩展 sudo dnf install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip -y
源码编译安装PHP
如果需要自定义PHP的功能模块,或者需要安装特定版本的PHP,可以选择源码编译安装的方式,步骤如下:
安装编译依赖
编译PHP前需要先安装所需的依赖库,不同发行版的依赖安装命令如下:
- Ubuntu/Debian:
sudo apt install build-essential libxml2-dev libsqlite3-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libonig-dev libzip-dev -y - CentOS/RHEL:
sudo dnf install gcc make libxml2-devel sqlite-devel curl-devel libpng-devel libjpeg-devel oniguruma-devel libzip-devel -y
下载并编译PHP源码
从PHP官方站点下载对应版本的源码包,解压后执行配置、编译和安装命令:
# 下载PHP8.2.10源码包 wget https://www.php.net/distributions/php-8.2.10.tar.gz # 解压源码包 tar -zxvf php-8.2.10.tar.gz cd php-8.2.10 # 配置编译参数,指定安装路径和启用的模块 ./configure --prefix=/usr/local/php --enable-fpm --with-mysqli --with-pdo-mysql --with-curl --with-gd --with-mbstring --with-zip --with-openssl # 编译,-j参数指定并行编译的线程数,可根据CPU核心数调整 make -j4 # 安装 sudo make install
PHP核心配置:php.ini文件
PHP的全局配置文件是php.ini,不同安装方式的配置文件路径不同:
- 包管理器安装:通常路径为
/etc/php/版本号/cli/php.ini和/etc/php/版本号/fpm/php.ini - 源码编译安装:默认路径为
/usr/local/php/lib/php.ini,如果没有可以复制源码包中的php.ini-production作为配置文件
以下是常用的配置参数调整:
; 设置时区 date.timezone = Asia/Shanghai ; 设置上传文件最大大小 upload_max_filesize = 20M ; 设置POST请求最大大小 post_max_size = 20M ; 设置脚本最大执行时间,单位秒 max_execution_time = 300 ; 设置脚本最大内存占用 memory_limit = 256M ; 开启错误显示,生产环境建议关闭 display_errors = On error_reporting = E_ALL
php-fpm服务配置与启动
php-fpm是PHP的FastCGI进程管理器,用于和Nginx、Apache等Web服务器配合处理PHP请求。
配置php-fpm
php-fpm的配置文件通常位于/etc/php/版本号/fpm/php-fpm.conf和/etc/php/版本号/fpm/pool.d/www.conf,常用调整如下:
; www.conf中的常用配置 ; 监听方式,可选sock文件或者端口,sock方式性能更好 listen = /run/php/php8.2-fpm.sock ; 监听的用户和组,需要和Web服务器用户一致 listen.owner = www-data listen.group = www-data ; 进程管理配置 pm = dynamic pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20
启动php-fpm服务
包管理器安装的php-fpm可以直接通过systemctl管理:
# 启动php-fpm服务 sudo systemctl start php8.2-fpm # 设置开机自启 sudo systemctl enable php8.2-fpm # 查看服务状态 sudo systemctl status php8.2-fpm
源码编译安装的php-fpm需要手动配置systemctl服务,或者直接使用安装目录下的sbin/php-fpm命令启动:
# 启动php-fpm sudo /usr/local/php/sbin/php-fpm # 停止php-fpm sudo pkill php-fpm
验证PHP安装是否成功
可以创建一个PHP测试文件来验证环境是否正常:
<?php // 输出PHP配置信息 phpinfo(); ?>
将上面的代码保存为info.php,放到Web服务器的根目录下,访问http://127.0.0.1/info.php,如果能看到PHP的配置信息页面,说明PHP已经安装配置成功。
注意:测试完成后建议删除info.php文件,避免暴露服务器PHP配置信息带来安全风险。