本文描述早期 (Apache 1.3.x, PHP 3, MySQL 3.22) 從原始碼編譯安裝 LAMP 棧的過程。現代生產環境請使用 套件管理器 (apt/yum/dnf)、Docker 或 雲託管服務。此處保留為技術演進參考。
| 組件 | 文中版本 (約 2000 年) | 現代標準 (2024) |
|---|---|---|
| Apache | 1.3.9 原始碼編譯 | 2.4.x (apt install apache2 / docker) |
| PHP | 3.0.13 靜態編譯進 Apache | 8.2+ (FPM 模式, php-fpm) |
| MySQL | 3.22.29 RPM 安裝 | 8.0 / MariaDB 10.11 (apt/docker/雲RDS) |
| 連接器 | mysql_connect (已移除) | mysqli / PDO_MySQL |
| 配置管理 | 手動編輯 httpd.conf、php.ini | Ansible/Terraform/配置中心 |
./configure --prefix=/www./configure --with-mysql --with-apache=../apache_1.3.9 → make install./configure --prefix=/www --activate-module=src/modules/php3/libphp3.ahttpd.conf 啟用 AddType application/x-httpd-php3 .php3/www/bin/apachectl startmysql_* 函數在 PHP 7.0 移除,改用 mysqli 或 PDO# Docker Compose (生產級模板)
version: '3.8'
services:
web:
image: php:8.2-apache
ports: ["80:80"]
volumes: ["./src:/var/www/html"]
depends_on: [db]
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASS}
volumes: ["db_data:/var/lib/mysql"]
command: --default-authentication-plugin=mysql_native_password
volumes:
db_data: