首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Windows 与 Linux 下 PHP 开发环境完整配置指南

     編輯:PHP 相關知識

软件下载来源建议

  • Apache:官网镜像慢,推荐华军、天空、中关村下载最新 Windows 安装包。
  • MySQL:官网 mysql.com,或国内镜像站。
  • PHP:官网 windows.php.net 下载 Non Thread Safe (NTS) 版配合 FastCGI,或 Thread Safe (TS) 版配合 Apache 模块。

版本匹配原则:Apache 2.4 + PHP 7.4/8.x (TS) + MySQL 5.7/8.0;生产环境建议统一使用 Linux 发行版仓库版本(如 Ubuntu 22.04: Apache 2.4.52, PHP 8.1, MySQL 8.0)。

Windows 环境配置步骤

1. 安装路径规划

  • Apache & PHP:D:\Apache24、D:\PHP
  • MySQL:C:\MySQL(默认即可,避免权限问题)

2. PHP 核心配置 (php.ini)

复制 php.ini-development 为 php.ini,编辑关键项:

配置项推荐值说明
extension_dirD:\PHP\ext扩展 DLL 目录,绝对路径
doc_rootD:\Apache24\htdocsWeb 根目录,需与 Apache DocumentRoot 一致
cgi.force_redirect0Apache 模块模式下必须关闭
date.timezoneAsia/Shanghai避免 date() 警告
display_errorsOn开发环境开启,生产关闭
error_reportingE_ALL报告所有错误
extension= mysqli取消注释启用 MySQL 支持
extension= pdo_mysql取消注释启用 PDO MySQL
extension= gd取消注释图像处理
extension= mbstring取消注释多字节字符串
extension= openssl取消注释HTTPS/加密
extension= curl取消注释HTTP 客户端

将 php.ini 复制到 C:\Windows(或 Apache 的 bin 目录),并将 php8ts.dll (或 php7ts.dll)、libmysql.dll 复制到 C:\Windows\System32(或加入系统 PATH)。

3. Apache 配置 (httpd.conf)

# 加载 PHP 模块 (TS 版)
LoadModule php_module "D:/PHP/php8apache2_4.dll"
# 指定 PHPIniDir
PHPIniDir "D:/PHP"

# 关联 .php 文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# 默认首页
DirectoryIndex index.php index.html

# 字符集
AddDefaultCharset UTF-8

# 启用重写 (可选)
LoadModule rewrite_module modules/mod_rewrite.so

验证:重启 Apache,访问 https://localhost/phpinfo.php(内容 )。

Linux 环境配置 (以 Ubuntu 22.04 / CentOS 7 为例)

1. 一键安装 (推荐)

# Ubuntu/Debian
sudo apt update && sudo apt install apache2 mysql-server php php-mysql php-gd php-mbstring php-xml php-curl php-zip php-bcmath php-intl libapache2-mod-php

# CentOS/RHEL 7 (需 EPEL + Remi)
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php81
sudo yum install httpd mariadb-server php php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip php-bcmath php-intl

2. 服务启动与开机自启

# Ubuntu (systemd)
sudo systemctl start apache2 mysql
sudo systemctl enable apache2 mysql

# CentOS 7
sudo systemctl start httpd mariadb
sudo systemctl enable httpd mariadb

3. MySQL 安全初始化

sudo mysql_secure_installation
# 设置 root 密码、移除匿名用户、禁止 root 远程登录、删除 test 库

4. PHP 配置调整

编辑 /etc/php/8.1/apache2/php.ini (Ubuntu) 或 /etc/php.ini (CentOS),同 Windows 关键项。重载 Apache:sudo systemctl reload apache2。

5. 虚拟主机示例 (Apache)

<VirtualHost *:80>
    ServerName dev.example.com
    DocumentRoot /var/www/dev.example.com/public
    <Directory /var/www/dev.example.com/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/dev.example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/dev.example.com_access.log combined
</VirtualHost>

启用站点:sudo a2ensite dev.example.com && sudo systemctl reload apache2 (Ubuntu)。

常见问题排查

现象可能原因解决
PHP 页面显示源码/下载Apache 未加载 PHP 模块或 AddType 缺失检查 LoadModule、AddType、重启 Apache
连接 MySQL 失败扩展未启用、密码错误、socket 路径不对phpinfo 确认 mysqli/pdo_mysql;检查 php.ini mysql.default_socket
中文乱码数据库/表/连接字符集不一致统一 utf8mb4;PDO DSN 加 charset=utf8mb4
上传大文件失败php.ini post_max_size/upload_max_filesize 过小调大至 100M+,同时调整 Apache LimitRequestBody
权限报错目录所属用户非 www-data/apachechown -R www-data:www-data /var/www/...

现代化替代方案(强烈推荐)

  • Docker:docker-compose up -d 启动标准化 PHP+MySQL+Redis+Nginx 栈,版本锁定、环境一致、秒级迁移。
  • Laravel Sail / Symfony CLI / PHP 内置服务器:php -S localhost:8000 -t public 快速调试单项目,无需全局安装。
  • WSL2 (Windows):在 Windows 运行真实 Linux 环境,享受原生工具链与 Windows 编辑器双重体验。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved