本文提供 Windows 平台下 Apache + PHP + MySQL 綠色版安裝配置完整指南,涵蓋 PHP 模組載入、MySQL 服務安裝、my.ini 核心參數調優模板及 Linux 下 PHP MySQL 擴展編譯安裝補充。
php-5.4.6-Win32-VC9-x86.zip)解壓至 D:/Software/GreenSoft/Php/php5.4.6/httpd.conf 載入模組:
# PHP 模組載入
LoadModule php5_module "D:/Software/GreenSoft/Php/php5.4.6/php5apache2_2.dll"
# php.ini 路徑
PHPIniDir "D:/Software/GreenSoft/Php/php5.4.6/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
phpinfo()編輯 php.ini:
extension_dir = "D:/Software/GreenSoft/Php/php5.4.6/ext"
extension=php_mysql.dll
D:\Software\GreenSoft\MySql\MySql56\Path 追加 D:\Software\GreenSoft\MySql\MySql56\bin;
cd D:\Software\GreenSoft\MySql\MySql56\bin
mysqladmin -u root -p debug shutdown # 停止現有進程
mysqld --install MySql56 --defaults-file=D:\Software\GreenSoft\MySql\MySql56\my.cnf
net start MySql56
net stop MySql56、mysqld --remove MySql56、sc delete MySql56
[mysqld]
port=3306
serverid = 1
basedir="D:/Software/GreenSoft/MySql/MySql56/"
datadir="E:/DataRoot/MySqlData/"
log-error="D:/Software/GreenSoft/MySql/MySql56/log/error.log"
log-slow-queries="D:/Software/GreenSoft/MySql/MySql56/log/slow-query.log"
character-set-server=utf8mb4
default-storage-engine=INNODB
wait_timeout = 10
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connect_errors = 10000000
max_connections=500
back_log = 384
query_cache_size=64M
read_buffer_size=4M
read_rnd_buffer_size=16M
key_buffer_size=128M
sort_buffer_size=4M
join_buffer_size = 8M
thread_cache_size=120
thread_concurrency = 8
tmp_table_size=64M
table_open_cache = 512
skip-name-resolve
skip-locking
# InnoDB 核心參數
innodb_buffer_pool_size=2G # 物理記憶體 70-80%
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit = 1 # ACID 保證
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT
innodb_thread_concurrency = 0 # 0 表示不限制
| 參數 | 建議值 | 說明 |
|---|---|---|
| innodb_buffer_pool_size | 物理記憶體 70-80% | InnoDB 核心緩衝池,越大磁盤 I/O 越少 |
| innodb_flush_log_at_trx_commit | 1 | 1=最安全(每提交刷盤),2=折衷,0=最高效但可能丟失 1 秒資料 |
| max_connections | 500-1000 | 最大連接數,配合 thread_cache_size |
| query_cache_size | 64M-128M | 查詢快取,唯讀多場景有效;寫入頻繁建議關閉 |
| sort_buffer_size | 4M-8M | Connection 級,過大高併發下耗盡記憶體 |
| skip-name-resolve | 啟用 | 禁用 DNS 解析,授權表需用 IP,提升連線速度 |
cd php-source/ext/mysql
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr/local/mysql
make && make install
# php.ini 添加 extension=mysql.so 並重啟 Apache