PHP及扩展安装全指南(2025年最新版)

3小时前发布

本文涵盖PHP本体安装、扩展管理、环境配置及常见问题解决方案,适用于开发、测试及生产环境。

一、PHP本体安装

1. Windows环境

  • 集成环境(推荐新手)

    • 修改php.ini

      ini


      display_errors = Off   # 关闭错误暴露

      opcache.enable = 1      # 启用字节码缓存

      upload_max_filesize = 100M  # 大文件上传优化
    • Apache加固:禁用.htaccess覆盖,设置ServerTokens Prod隐藏版本信息。

    • MySQL初始化:运行mysql_secure_installation删除测试数据库与匿名账户。

    • XAMPP 9.0:包含PHP 8.3+、Apache 2.4+、MySQL 8.3,安装时禁用默认PHP版本回退功能以避免漏洞。

    • 安全配置

  • 手动安装(进阶用户)

    • 下载PHP 8.3 TS(线程安全)版本,解压至C:\php8,添加环境变量。

    • Apache 2.4集成:

      apache


      LoadModule php_module "C:/php8/php8apache2_4.dll"

      AddType application/x-httpd-php .php
    • Nginx 1.25反向代理:配置fastcgi_pass 127.0.0.1:9000实现PHP-FPM协议转发。

2. Linux/macOS环境

  • Linux(CentOS/Ubuntu)

    • CentOS

      bash


      sudo yum install epel-release

      sudo yum install remi-release

      sudo yum-config-manager --enable remi-php83

      sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring
    • Ubuntu

      bash


      sudo apt update

      sudo apt install php8.3 php8.3-fpm php8.3-mysql
  • macOS(Homebrew)

    bash


    brew tap shivammathur/php

    brew install shivammathur/php/php@8.3

    brew services start php@8.3
  • Docker容器化部署

    • PHP-FPM容器

      dockerfile


      FROM php:8.3-fpm-alpine

      RUN docker-php-ext-install pdo_mysql && \

      pecl install redis-6.0.0 && \

      docker-php-ext-enable redis

      EXPOSE 9000

      HEALTHCHECK --interval=30s CMD php -r "echo 'OK';" || exit 1
    • Docker Compose示例

      yaml


      services:

      php:

      build: .

      volumes:

      - ./src:/var/www/html

      environment:

      PHP_MEMORY_LIMIT: 512M

      nginx:

      image: nginx:1.25

      ports:

      - "80:80"

      depends_on:

      - php

二、PHP扩展安装

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

  • Linux(Ubuntu/Debian)

    bash


    sudo apt install php8.3-mysqli php8.3-gd php8.3-zip  # 安装常用扩展
  • Linux(CentOS/RHEL)

    bash


    sudo yum install php83-php-mysqli php83-php-gd

2. 通过PECL安装

  • 安装PECL工具:

    bash


    sudo apt install php-pear  # Ubuntu/Debian

    sudo yum install php-pecl  # CentOS/RHEL
  • 安装扩展(如Redis):

    bash


    sudo pecl install redis-6.0.0
  • php.ini中启用扩展:

    ini


    extension=redis.so

3. 手动编译安装(高级用户)

  • 下载扩展源码(如Redis):

    bash


    wget https://github.com/phpredis/phpredis/archive/5.0.2.zip

    unzip 5.0.2.zip

    cd phpredis-5.0.2
  • 编译安装:

    bash


    /usr/local/php/bin/phpize  # 生成configure文件

    ./configure --with-php-config=/usr/local/php/bin/php-config

    make && sudo make install
  • 启用扩展:在php.ini中添加:

    ini


    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20210902/redis.so

三、环境配置与优化

1. 性能调优

  • 启用JIT编译器(PHP 8.3+):

    ini


    opcache.jit_buffer_size=256M

    opcache.jit=tracing
  • 多版本PHP共存:通过PHP_VERSION环境变量切换解释器。

2. 开发工具集成

  • PHPStorm 2025配置

    • 启用PHP 8.3语法支持。

    • 配置Xdebug 3.2远程调试:

      ini


      xdebug.mode = debug

      xdebug.client_port = 9003

      xdebug.idekey = PHPSTORM

四、常见问题解决方案

1. 端口冲突

  • 现象:Apache/Nginx启动失败,提示端口80被占用。

  • 解决

    bash


    netstat -ano | findstr :80  # Windows

    lsof -i :80                 # Linux/macOS

    taskkill /PID <pid> /F      # Windows强制终止

    kill -9 <pid>               # Linux/macOS强制终止

2. PHP文件未解析

  • 现象:访问.php文件返回源码或下载。

  • 解决

    • Apache:检查httpd.confLoadModule php_module指令是否被注释。

    • Nginx:验证fastcgi_param SCRIPT_FILENAME路径是否正确。

3. 数据库连接异常

  • 现象PDOException: could not find driver

  • 解决

    • 运行php -m | grep pdo验证扩展是否安装。

    • 重新编译PHP时添加--with-pdo-mysql参数。

4. 扩展冲突

  • 现象PHP Warning: Module 'xxx' already loaded in Unknown on line 0

  • 解决:检查php.ini中是否有重复的extension=xxx.so配置。

五、最佳实践

  1. 使用Composer管理依赖

    bash


    composer require monolog/monolog:^2.0
  2. 定期更新PHP与扩展

    bash


    sudo apt upgrade php8.3  # Ubuntu/Debian

    sudo pecl upgrade redis  # 更新PECL扩展
  3. 生产环境安全配置

    • 禁用危险函数:

      ini


      disable_functions = exec,passthru,shell_exec,system
    • 启用OPcache缓存:

      ini


      opcache.enable=1

      opcache.memory_consumption=128

image.png



WhatsApp Floating Button 右下角二维码按钮与链接
QQ二维码
微信二维码
微信二维码