sudo systemctl start php-fpm
(以实际安装版本如 php8.1-fpm 为准),并设置开机自启:sudo systemctl enable php-fpm
,需确保已安装对应 PHP-FPM 包。在 Linux 系统中启动 PHP 服务通常涉及两种主流方式:作为 Apache 模块或作为独立的 PHP-FPM 服务(与 Nginx 等服务器配合),以下是详细操作指南:
准备工作:安装 PHP
在启动前,请确保 PHP 已正确安装:
# 检查 PHP 版本(验证是否安装) php -v # 若未安装,根据发行版选择命令 # Ubuntu/Debian sudo apt update && sudo apt install php libapache2-mod-php php-fpm php-cli # CentOS/RHEL sudo yum install epel-release sudo yum install php php-fpm php-mysqlnd
启动 PHP 服务的两种方式
▶ 方式 1:作为 Apache 模块 (mod_php)
适用于 Apache Web 服务器。
-
启用 PHP 模块
sudo a2enmod php* # Ubuntu/Debian sudo systemctl restart apache2
CentOS 默认启用,重启 Apache 即可:
sudo systemctl restart httpd
-
验证配置
创建测试文件/var/www/html/info.php
<?php phpinfo(); ?>
访问
http://服务器IP/info.php
,显示 PHP 信息页即成功。
▶ 方式 2:作为 PHP-FPM 服务 (与 Nginx 配合)
PHP-FPM(FastCGI Process Manager)是独立进程,需与 Web 服务器协作。
-
启动 PHP-FPM 服务
sudo systemctl start php-fpm # 启动 sudo systemctl enable php-fpm # 设置开机自启
-
配置 Nginx 支持 PHP
编辑站点配置文件(如/etc/nginx/sites-available/default
),在server
块内添加:location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; # 根据实际 sock 路径调整 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
重启 Nginx:
sudo systemctl restart nginx
-
验证
创建测试文件(如/var/www/html/test.php
)并访问,显示phpinfo()
页面即成功。
管理 PHP 服务常用命令
操作 | 命令 (PHP-FPM) | 命令 (Apache) |
---|---|---|
启动服务 | sudo systemctl start php-fpm |
sudo systemctl start apache2 |
停止服务 | sudo systemctl stop php-fpm |
sudo systemctl stop httpd |
重启服务 | sudo systemctl restart php-fpm |
sudo systemctl restart apache2 |
查看状态 | sudo systemctl status php-fpm |
sudo systemctl status apache2 |
开机自启 | sudo systemctl enable php-fpm |
sudo systemctl enable apache2 |
常见问题解决
-
PHP 页面不解析,直接显示代码
- Apache:检查是否启用
libapache2-mod-php
模块,并重启 Apache。 - Nginx:确认
fastcgi_pass
路径正确(通过ls /run/php/php*.sock
验证)。
- Apache:检查是否启用
-
502 Bad Gateway 错误
- PHP-FPM 未运行:执行
sudo systemctl start php-fpm
。 - Nginx 配置中
fastcgi_pass
路径与实际 sock 文件不一致。
- PHP-FPM 未运行:执行
-
权限问题
确保 Web 目录(如/var/www/html
)所有者是 Web 服务器用户(如www-data
或nginx
):sudo chown -R www-data:www-data /var/www/html
安全建议
-
隐藏 PHP 版本信息
编辑/etc/php/*/fpm/php.ini
(PHP-FPM)或/etc/php/*/apache2/php.ini
(Apache),设置:expose_php = Off
-
定期更新 PHP
使用包管理器保持 PHP 最新:sudo apt upgrade php* # Ubuntu/Debian sudo yum update php* # CentOS/RHEL
- Apache 用户:通过
libapache2-mod-php
模块直接集成 PHP,重启 Apache 生效。 - Nginx 用户:需独立运行 PHP-FPM 服务,并在 Nginx 配置中反向代理 PHP 请求。
无论哪种方式,务必通过phpinfo()
测试页面验证服务状态,并遵循最小权限原则保障安全。
引用说明:本文操作基于主流 Linux 发行版(Ubuntu 22.04/CentOS 8),参考 PHP 官方文档及 Nginx/Apache 最佳实践,命令路径可能因版本差异略有不同,建议通过
systemctl status php-fpm
或apachectl -M
获取实际配置信息。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/28927.html