如何在linux安装php

如何在linux安装php

在Linux中安装PHP:Ubuntu/Debian运行sudo apt update && sudo apt install php;CentOS/RHEL执行sudo yum install php或sudo dnf install php,安装后重启...

优惠价格:¥ 0.00
当前位置:首页 > Linux > 如何在linux安装php
详情介绍
在Linux中安装PHP:Ubuntu/Debian运行 sudo apt update && sudo apt install php;CentOS/RHEL执行 sudo yum install phpsudo dnf install php,安装后重启Web服务

以下是针对 “如何在 Linux 安装 PHP” 的完整操作指南,包含主流发行版(Ubuntu/Debian、CentOS/RHEL)的详细步骤、源码编译方案、扩展管理及常见问题解答:


前置准备

无论采用何种方式安装 PHP,均需满足以下条件:
| 项目 | 说明 |
|———————|——————————————————————–|
| 操作系统 | Ubuntu 20.04+ / Debian 11+
OR CentOS 7/8 / RHEL 8+ |
| 网络连接 | 确保可访问互联网以下载软件包 |
| sudo 权限 | 非 root 用户需具备 sudo 执行权 |
| 目标用途 | Web 开发环境 → 推荐 LAMP/LEMP 栈;命令行脚本 → 仅需基础环境 |


通过包管理器安装(推荐)

适用于 Ubuntu/Debian 系统

# 1. 更新软件源索引
sudo apt update && sudo apt upgrade -y
# 2. 安装默认 PHP 及常用组件 (PHP 8.1)
sudo apt install -y php libapache2-mod-php php-mysql php-cli php-gd php-mbstring php-xml php-curl
# 3. 可选:安装最新稳定版 PHP (Ondrej PPA)
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install -y php8.3 libapache2-mod-php8.3
# 4. 重启 Apache 生效
sudo systemctl restart apache2

关键目录说明

  • /etc/php/{version}/ → 全局配置文件目录
  • /var/www/html/ → 默认 Web 根目录
  • /usr/bin/php → CLI 入口文件

适用于 CentOS/RHEL 系统

# 1. 启用 EPEL 和 Remi 仓库
sudo dnf install -y epel-release https://rpms.remirepo.net/enterprise/remi-release-$(rpm -E %centos_ver).rpm
# 2. 重置并启用 PHP 8.3 模块
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.3 -y
# 3. 安装 PHP 及相关组件
sudo dnf install -y php php-mysqlnd php-gd php-mbstring php-xml php-opcache php-pecl-apcu
# 4. 重启 HTTPD 服务
sudo systemctl restart httpd

注意:CentOS 8+ 使用 httpd 而非 apache2,且默认禁用静态模块需手动加载。


源码编译安装(高级用法)

此方法适合需要自定义参数或支持特殊架构的场景:

# 1. 安装编译依赖项
sudo apt install -y build-essential libssl-dev zlib1g-dev 
    libpq-dev libzip-dev libicu-dev libonig-dev libxml2-dev
# 2. 下载指定版本源码(以 PHP 8.3.12 为例)
wget https://www.php.net/distributions/php-8.3.12.tar.gz
tar -zxvf php-8.3.12.tar.gz && cd php-8.3.12
# 3. 配置编译选项(关键参数详解)
./configure --prefix=/opt/php83 
    --with-config-file-path=/opt/php83/bin 
    --enable-fpm --enable-opcache --with-jpeg-dir=/usr 
    --with-png-dir=/usr --with-freetype-dir=/usr 
    --with-zlib-dir=/usr --with-curl=/usr 
    --with-openssl=/usr --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd --enable-mbstring 
    --enable-exif --enable-ftp --enable-sockets 
    --disable-debug --disable-rpath --enable-shared
# 4. 编译并安装
make -j$(nproc) && sudo make install
# 5. 添加环境变量
echo 'export PATH="/opt/php83/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

优势:完全掌控编译选项,可剔除无用模块减少内存占用。


常用 PHP 扩展安装对照表

功能类别 Ubuntu/Debian 包名 CentOS/RHEL 包名 用途说明
JSON php-json php-json JSON 数据处理
cURL php-curl php-curl HTTP/HTTPS 请求
ImageMagick php-imagick php-pecl-imagick 图像处理
Memcached php-memcached php-pecl-memcached 分布式缓存
Redis php-redis php-pecl-redis NoSQL 数据库交互
Yarn (Composer) composer (全局安装) php-pecl-yaml + Composer自签 PHP 包管理工具

安装示例

# Ubuntu/Debian
sudo apt install -y php-redis php-mongodb
# CentOS/RHEL
sudo dnf install -y php-pecl-redis php-pecl-mongodb

配置与验证

修改 php.ini

主配置文件路径:

  • Ubuntu: /etc/php/{version}/cli/php.ini (CLI) / apache2/php.ini (Web)
  • CentOS: /etc/opt/remi/php{version}/php.ini

典型优化项

memory_limit = 256M          # 脚本最大内存限制
upload_max_filesize = 100M   # 上传文件上限
post_max_size = 100M         # POST 数据上限
max_execution_time = 300     # 脚本超时时间(秒)

验证安装

# 查看版本信息
php -v
# 输出示例:PHP 8.3.12 (cli) (built: Jul 15 2024 ...)
# 创建 info.php 测试文件
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php > /dev/null
# 浏览器访问 http://your_server_ip/info.php

相关问答 FAQs

Q1: 如何在同一台服务器上运行多个 PHP 版本?

A: 使用 update-alternatives 管理多版本:

# Ubuntu/Debian
sudo update-alternatives --config php       # 设置默认 CLI 版本
sudo a2dismod php8.1 && sudo a2enmod php8.3 # 切换 Apache 使用的 PHP FPM 版本
# CentOS/RHEL
sudo alternatives --config php             # 图形化选择默认版本
sudo alternatives --set php /usr/bin/php83 # 命令行强制设置

注意:每次切换后需重启 Web 服务器。

Q2: 安装 PHP 后无法解析 .php 文件怎么办?

A: 此问题通常由 Web 服务器未正确加载 PHP 模块导致:

  1. Apache 用户:检查是否启用了 mod_phplibapache2-mod-php 模块,并确认 DirectoryIndex 包含 index.php
  2. Nginx 用户:需手动配置 FastCGI 代理,示例配置片段:
    location ~ .php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
  3. 通用排查:检查错误日志(/var/log/apache2/error.log/var/log/nginx/error.log),常见错误包括权限不足或路径
0