凌峰创科服务平台

Linux服务器如何安装PHP?

在Linux服务器上安装PHP是搭建Web应用环境的重要步骤,不同Linux发行版的安装命令和配置细节略有差异,但核心流程一致,以下以Ubuntu/Debian和CentOS/RHEL两大主流系统为例,详细说明PHP的安装过程、配置优化及常见问题处理。

Linux服务器如何安装PHP?-图1
(图片来源网络,侵删)

安装前准备

  1. 更新系统包列表
    确保服务器软件包为最新版本,避免依赖冲突:

    • Ubuntu/Debian: sudo apt update && sudo apt upgrade -y
    • CentOS/RHEL: sudo yum update -y(CentOS 8+使用dnf
  2. 安装必要依赖
    PHP运行需要基础编译工具和库支持,执行以下命令安装:

    # Ubuntu/Debian
    sudo apt install -y apache2 nginx libapache2-mod-php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
    # CentOS/RHEL
    sudo yum install -y httpd nginx php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip

    依赖包说明:

    • libapache2-mod-php:Apache的PHP模块(Apache专用)
    • php-fpm:PHP-FPM(FastCGI进程管理器,Nginx推荐使用)
    • php-mysqlnd:MySQL数据库驱动
    • 其他扩展为常用Web功能库(如图像处理、XML解析等)
  3. 选择Web服务器
    根据需求安装Apache或Nginx:

    Linux服务器如何安装PHP?-图2
    (图片来源网络,侵删)
    • Apache: sudo apt install apache2(Ubuntu)或sudo yum install httpd(CentOS)
    • Nginx: sudo apt install nginx(Ubuntu)或sudo yum install nginx(CentOS)
      注意:若同时安装两者,需配置端口避免冲突(默认Apache为80,Nginx为8080)。

安装PHP

(一)Ubuntu/Debian系统

  1. 添加PHP仓库
    官方仓库版本可能较旧,建议添加Ondřej Surý的PPA仓库获取最新稳定版:

    sudo apt install -y software-properties-common
    sudo add-apt-repository ppa:ondrej/php -y
    sudo apt update
  2. 安装指定版本PHP
    通过apt search php查看可用版本(如PHP 8.1、8.2等),执行安装:

    sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-curl

    安装后验证版本:php -vphp8.1 -v

(二)CentOS/RHEL系统

  1. 安装EPEL和Remi仓库
    CentOS默认仓库PHP版本较低,需添加第三方仓库:

    Linux服务器如何安装PHP?-图3
    (图片来源网络,侵删)
    # CentOS 7
    sudo yum install -y epel-release http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    sudo yum install -y yum-utils
    sudo yum-config-manager --enable remi-php82  # 启用PHP 8.2仓库
    # CentOS 8/Stream
    sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    sudo dnf module reset php
    sudo dnf module enable php:remi-8.2 -y
  2. 安装PHP及扩展

    sudo yum install -y php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip

    验证安装:php -v

配置PHP

  1. PHP-FPM配置(Nginx推荐)
    编辑PHP-FPM配置文件(路径因版本而异,如/etc/php/8.1/fpm/pool.d/www.conf):

    listen = /run/php/php8.1-fpm.sock  # 监听Unix套接字(默认)
    listen.owner = www-data
    listen.group = www-data
    listen.mode = 0660
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3

    修改后重启服务:sudo systemctl restart php8.1-fpm

  2. Apache配置
    若使用Apache,确保mod_php已启用:

    sudo a2enmod php8.1  # Ubuntu启用对应版本
    sudo systemctl restart apache2

    测试PHP:在网站根目录创建info.php<?php phpinfo(); ?>,访问http://服务器IP/info.php

  3. 时区与内存优化
    编辑PHP主配置文件/etc/php/8.1/apache2/php.ini/etc/php.ini

    date.timezone = Asia/Shanghai  # 设置时区
    memory_limit = 256M           # 调整内存限制
    upload_max_filesize = 20M     # 上传文件大小限制
    post_max_size = 20M          # POST数据大小限制

    修改后重启Web服务器和PHP-FPM。

常见问题处理

  1. 安装后无法加载PHP模块

    • 检查模块是否安装:php -m | grep mysql
    • Apache:确认LoadModule php_modulehttpd.conf中已启用
    • Nginx:检查fastcgi_pass是否指向正确PHP-FPM套接字或地址
  2. PHP-FPM启动失败
    查看错误日志:sudo journalctl -u php8.1-fpm,常见原因包括权限错误、配置语法错误或端口冲突。

  3. 版本切换(多版本共存)
    Ubuntu可通过update-alternatives管理:

    sudo update-alternatives --config php  # 切换默认PHP版本

    CentOS需手动编译或使用yum module切换。

安全与优化建议

  1. 禁用危险函数
    php.ini中设置:disable_functions = exec,passthru,shell_exec,system

  2. 配置文件权限
    确保配置文件仅root可读:sudo chmod 640 /etc/php/8.1/fpm/php.ini

  3. 定期更新PHP
    Ubuntu:sudo apt upgrade php8.1
    CentOS:sudo yum update php


相关问答FAQs

Q1: 如何在Linux服务器上切换已安装的PHP版本?
A1: 对于Ubuntu/Debian系统,若通过PPA安装了多版本PHP,可使用sudo update-alternatives --config php命令选择默认版本,对于CentOS/RHEL,需通过dnf module enable php:版本号启用目标版本后重新安装,切换到PHP 8.0:sudo dnf module enable php:remi-8.0 -y && sudo dnf install php,修改后需重启相关服务(Apache/Nginx/PHP-FPM)。

Q2: 安装PHP时提示“依赖包冲突”如何解决?
A2: 首先尝试更新系统包列表并清理缓存:sudo apt update --fix-missing(Ubuntu)或sudo yum clean all(CentOS),若仍冲突,可能需卸载旧版本PHP:sudo apt purge php*(Ubuntu)或sudo yum remove php*(CentOS),然后重新安装,注意备份配置文件(如php.ini),避免丢失自定义设置。

分享:
扫描分享到社交APP
上一篇
下一篇