本文涵盖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
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.conf
中LoadModule 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
配置。
使用Composer管理依赖:
bash
composer require monolog/monolog:^2.0
定期更新PHP与扩展:
bash
sudo apt upgrade php8.3 # Ubuntu/Debian sudo pecl upgrade redis # 更新PECL扩展
生产环境安全配置:
禁用危险函数:
ini
disable_functions = exec,passthru,shell_exec,system
启用OPcache缓存:
ini
opcache.enable=1 opcache.memory_consumption=128