搭建PHP运行基础

在Linux系统中运行PHP,首先需要确保系统已安装PHP及相关运行环境,不同Linux发行版的包管理器不同,安装方式略有差异,但核心步骤一致,以下以Ubuntu/Debian和CentOS/RHEL两大主流系列为例,说明PHP的安装方法。
1 基于Ubuntu/Debian系统的安装
Ubuntu/Debian系列使用apt包管理器,安装PHP前需更新包列表:
sudo apt update
随后安装PHP及常用扩展(如MySQL、GD库等):
sudo apt install php php-cli php-fpm php-mysql php-gd php-xml php-curl
php-cli是命令行接口,用于执行PHP脚本;php-fpm是FastCGI进程管理器,常与Nginx搭配;php-mysql等扩展是PHP与数据库、图像处理等功能交互的依赖,安装完成后,可通过以下命令验证PHP是否安装成功:
php --version
若输出版本信息(如PHP 8.1.x),则表示安装成功。
2 基于CentOS/RHEL系统的安装
CentOS/RHEL系列使用yum或dnf包管理器(CentOS 7+推荐dnf),首先安装EPEL(Extra Packages for Enterprise Linux)仓库,以获取PHP扩展:
sudo yum install epel-release # CentOS 7及以下 sudo dnf install epel-release # CentOS 8+
然后安装PHP及扩展:
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-xml php-curl # CentOS 7及以下 sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-curl # CentOS 8+
同样,通过php --version验证安装结果。
3 安装Web服务器(Apache/Nginx)
PHP通常需与Web服务器配合运行,以通过浏览器访问PHP脚本,Apache和Nginx是主流选择,可根据需求安装:
-
Apache安装(Ubuntu/Debian):
sudo apt install apache2
安装后,Apache默认网站目录为
/var/www/html,可通过http://localhost访问测试页面。 -
Nginx安装(Ubuntu/Debian):
sudo apt install nginx
Nginx默认网站目录同样为
/var/www/html,访问http://localhost可查看欢迎页面。 -
Apache安装(CentOS/RHEL):
sudo yum install httpd # 或 dnf install httpd sudo systemctl start httpd # 启动服务
-
Nginx安装(CentOS/RHEL):
sudo yum install nginx # 或 dnf install nginx sudo systemctl start nginx # 启动服务
基础运行方式:命令行与Web服务器访问
PHP在Linux中可通过两种主要方式运行:命令行直接执行脚本、通过Web服务器访问脚本,以下是具体操作步骤。
1 命令行运行PHP脚本
PHP CLI(命令行接口)无需Web服务器支持,可直接执行PHP脚本,适合调试、自动化任务等场景。

步骤1:创建PHP脚本
使用文本编辑器(如vim、nano)创建一个测试脚本,例如test.php:
vim test.php
<?php
echo "Hello, PHP in Linux!\n";
echo "当前时间:" . date("Y-m-d H:i:s") . "\n";
?>
保存并退出(wq)。
步骤2:执行脚本
通过php命令直接运行脚本:
php test.php
若输出结果为:
Hello, PHP in Linux!
当前时间:2023-10-01 12:00:00
则表示命令行运行成功。
步骤3:传递参数给脚本
命令行运行时,可通过$argv和$argc接收参数,例如修改test.php:
<?php echo "参数个数:" . $argc . "\n"; echo "第一个参数:" . $argv[1] . "\n"; ?>
执行以下命令:
php test.php arg1 arg2
输出结果为:
参数个数:3
第一个参数:arg1
2 通过Web服务器访问PHP脚本
2.1 Apache环境配置
Apache默认支持PHP,需确保加载了mod_php模块(安装php包时通常会自动加载)。
步骤1:创建PHP脚本
在Apache网站目录/var/www/html下创建info.php:
sudo vim /var/www/html/info.php
<?php phpinfo(); ?>
保存后,浏览器访问http://localhost/info.php,若显示PHP详细配置信息,则表示Apache已正确解析PHP。
步骤2:配置虚拟主机(可选)
若需绑定域名,可修改Apache虚拟主机配置文件(如/etc/apache2/sites-available/000-default.conf):
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
重启Apache服务生效:
sudo systemctl restart apache2 # Ubuntu/Debian sudo systemctl restart httpd # CentOS/RHEL
2.2 Nginx环境配置
Nginx本身不解析PHP,需通过php-fpm将PHP请求转发给PHP进程管理器。
步骤1:启动php-fpm服务
安装php-fpm后,启动并设置为开机自启:
sudo systemctl start php-fpm # Ubuntu/Debian/CentOS/RHEL通用 sudo systemctl enable php-fpm
步骤2:配置Nginx解析PHP
修改Nginx默认配置文件(如/etc/nginx/sites-available/default),在server块中添加以下配置:
server {
listen 80;
root /var/www/html;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意:路径需与php-fpm版本匹配,Ubuntu 22.04为php8.1-fpm.sock
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
注意:fastcgi_pass的路径因PHP版本和系统而异,可通过ls /run/php/查看实际文件名。
步骤3:重启Nginx并测试
重启Nginx服务:

sudo systemctl restart nginx
浏览器访问http://localhost/info.php,若显示PHP配置信息,则配置成功。
配置与优化:让PHP更贴合需求
PHP的运行行为可通过配置文件php.ini调整,需根据实际需求修改内存限制、执行时间、上传文件大小等参数。
1 定位php.ini文件
php.ini的位置因安装方式和PHP版本而异:
-
命令行模式:
php --ini # 查看加载的配置文件路径
输出类似
Loaded Configuration File: /etc/php/8.1/cli/php.ini,表示命令行模式使用/etc/php/8.1/cli/php.ini。 -
Web服务器模式(php-fpm):
php-fpm --ini # 或查看php-fpm配置文件中的"php_admin_value[error_log]"
通常位于
/etc/php/8.1/fpm/php.ini(Ubuntu)或/etc/php.ini(CentOS)。
2 常用配置项修改
使用sudo vim /path/to/php.ini打开配置文件,修改以下常用参数:
- 内存限制:
memory_limit = 256M(默认128M,处理大数据时需调大) - 最大执行时间:
max_execution_time = 60(默认30秒,复杂脚本需延长) - 上传文件大小:
upload_max_filesize = 20M、post_max_size = 20M(需保持一致,限制上传文件大小) - 时区设置:
date.timezone = Asia/Shanghai(避免时区错误)
修改后保存,并重启对应服务(命令行模式无需重启,Web服务器需重启php-fpm和Nginx/Apache):
sudo systemctl restart php-fpm nginx # Nginx环境 sudo systemctl restart php-fpm apache2 # Apache环境
3 多版本PHP管理(可选)
若需同时运行多个PHP版本(如PHP 7.4和8.1),可通过phpbrew或scl(CentOS)管理,以phpbrew为例:
安装phpbrew
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew sudo mv phpbrew /usr/local/bin/ phpbrew init # 按提示配置环境变量
安装指定PHP版本
phpbrew install 7.4 +default +mysql +gd # 安装PHP 7.4,包含常用扩展 phpbrew install 8.1 +default +mysql +gd # 安装PHP 8.1
切换PHP版本
phpbrew use 8.1 # 切换到PHP 8.1 phpbrew use 7.4 # 切换到PHP 7.4
常见问题解决:快速定位并排除故障
1 “command not found: php”
原因:PHP未安装或未添加到系统PATH环境变量。
解决:
- 确认PHP是否安装:
which php或php --version。 - 若未安装,参考“环境准备”部分重新安装。
- 若已安装但未找到,检查PATH变量:
echo $PATH,确认包含PHP安装目录(如/usr/bin/php)。
2 浏览器访问PHP文件显示源码
原因:Web服务器未正确配置PHP解析(如Apache未加载mod_php,Nginx未配置php-fpm)。
解决:
- Apache:检查
mods-enabled目录下是否有php.conf和php8.load(或对应版本),执行sudo a2enmod php8.1加载模块后重启Apache。 - Nginx:检查
fastcgi_pass路径是否正确,确认php-fpm服务是否运行(sudo systemctl status php-fpm)。
3 权限问题:无法访问PHP文件
原因:网站目录或文件权限不足,导致Web服务器(如Nginx运行用户为www-data)无法读取。
解决:
- 设置网站目录所有者为Web服务器用户(Ubuntu为
www-data,CentOS为apache或nginx):sudo chown -R www-data:www-data /var/www/html # Ubuntu sudo chown -R apache:apache /var/www/html # CentOS
- 设置文件权限为644,目录权限为755:
sudo find /var/www/html -type f -exec chmod 644 {} \; sudo find /var/www/html -type d -exec chmod 755 {} \;
4 PHP-FPM启动失败
原因:配置文件错误、端口冲突或进程数设置过高等。
解决:
- 查看错误日志:
sudo tail -f /var/log/php8.1-fpm.log(Ubuntu)或/var/log/php-fpm/error.log(CentOS)。 - 检查配置文件语法:
sudo php-fpm -t(需切换到对应版本PHP目录)。
通过以上步骤,即可在Linux系统中顺利安装、配置并运行PHP,无论是简单的命令行脚本,还是复杂的Web应用,PHP都能在Linux环境下稳定高效地支持开发需求。
















