当前位置:首页 > Linux > 正文

Linux启动PHP服务方法

在 Linux 中启动 PHP 服务通常指启动 PHP-FPM,使用命令 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 服务器。

  1. 启用 PHP 模块

    sudo a2enmod php*       # Ubuntu/Debian
    sudo systemctl restart apache2

    CentOS 默认启用,重启 Apache 即可:

    sudo systemctl restart httpd
  2. 验证配置
    创建测试文件 /var/www/html/info.php

    Linux启动PHP服务方法  第1张

    <?php phpinfo(); ?>

    访问 http://服务器IP/info.php,显示 PHP 信息页即成功。


▶ 方式 2:作为 PHP-FPM 服务 (与 Nginx 配合)

PHP-FPM(FastCGI Process Manager)是独立进程,需与 Web 服务器协作。

  1. 启动 PHP-FPM 服务

    sudo systemctl start php-fpm        # 启动
    sudo systemctl enable php-fpm       # 设置开机自启
  2. 配置 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
  3. 验证
    创建测试文件(如 /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

常见问题解决

  1. PHP 页面不解析,直接显示代码

    • Apache:检查是否启用 libapache2-mod-php 模块,并重启 Apache。
    • Nginx:确认 fastcgi_pass 路径正确(通过 ls /run/php/php*.sock 验证)。
  2. 502 Bad Gateway 错误

    • PHP-FPM 未运行:执行 sudo systemctl start php-fpm
    • Nginx 配置中 fastcgi_pass 路径与实际 sock 文件不一致。
  3. 权限问题
    确保 Web 目录(如 /var/www/html)所有者是 Web 服务器用户(如 www-datanginx):

    sudo chown -R www-data:www-data /var/www/html

安全建议

  1. 隐藏 PHP 版本信息
    编辑 /etc/php/*/fpm/php.ini(PHP-FPM)或 /etc/php/*/apache2/php.ini(Apache),设置:

    expose_php = Off
  2. 定期更新 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-fpmapachectl -M 获取实际配置信息。

0