LAMP离线源码安装指南
一、准备工作(在联网机器上)
1. 确定目标系统信息
操作系统版本(如 CentOS 7、Ubuntu 20.04 等)
架构(x86_6 elit64 / aarch64 等)
已安装的基础开发工具(如 gcc、make、autoconf、libtool 等)
若目标机未安装基础编译工具,需提前将这些依赖也打包(如 rpm/deb 包或源码)。
2. 下载所需源码包(建议使用稳定版本)
表格
| 组件 | 官方网站 | 示例版本 |
|---|---|---|
| Apache HTTP Server |
|
httpd-2.4.58.tar.gz |
| APR / APR-Util(Apache 依赖) |
|
apr-1.7.4.tar.gz, apr-util-1.6.3.tar.gz |
| PCRE(Apache 依赖) |
|
pcre-8.45.tar.gz |
| OpenSSL(可选,用于 HTTPS) |
|
openssl-3.0.13.tar.gz |
| MySQL |
|
mysql-8.0.36.tar.gz |
| 或 MariaDB |
|
mariadb-10.6.16.tar.gz |
| PHP |
|
php-8.2.16.tar.gz |
| libxml2(PHP 依赖) |
|
libxml2-2.12.5.tar.gz |
| zlib、libcurl、oniguruma 等(PHP 常用依赖) | 各自官网 | — |
建议统一下载到一个目录,如
/lamp-offline,并打包为lamp-offline.tar.gz,拷贝到离线机。
二、离线安装步骤(在目标机器上)
1. 安装基础编译环境(若未安装)
bash
编辑
CentOS/RHEL(需提前准备好 rpm 包)yuminstall-y gcc gcc-c++makeautoconf automake libtool
Ubuntu/Debian(需提前准备好 deb 包)apt-getinstall-y build-essential autoconf automake libtool pkg-config
若无法在线安装,请提前在联网机下载对应系统的开发工具包(如
gcc*.rpm),用rpm -ivh或dpkg -i安装。
2. 安装依赖库(按顺序)
(1) 安装 PCRE
bash
编辑
tar-zxvf pcre-8.45.tar.gzcdpcre-8.45./configure –prefix=/usr/local/pcremake&&makeinstall
(2) 安装 APR 和 APR-Util
bash
编辑
APRtar-zxvf apr-1.7.4.tar.gzcdapr-1.7.4./configure –prefix=/usr/local/aprmake&&makeinstall
APR-Utiltar-zxvf apr-util-1.6.3.tar.gzcdapr-util-1.6.3./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/aprmake&&makeinstall
3. 编译安装 Apache (httpd)
bash
编辑
tar-zxvf httpd-2.4.58.tar.gzcdhttpd-2.4.58
将 APR/APR-Util 复制到 srclib 目录(重要!)cp-r /path/to/apr-1.7.4 srclib/aprcp-r /path/to/apr-util-1.6.3 srclib/apr-util
./configure\–prefix=/usr/local/apache2\–with-pcre=/usr/local/pcre\–enable-so\–enable-rewrite\–enable-ssl
make&&makeinstall
启动测试:
/usr/local/apache2/bin/apachectl start
4. 编译安装 MySQL 或 MariaDB
bash
编辑
安装 cmake(若无)# 可提前下载 cmake 源码或二进制包
tar-zxvf mysql-8.0.36.tar.gzcdmysql-8.0.36
cmake.\-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\-DMYSQL_DATADIR=/usr/local/mysql/data\-DSYSCONFDIR=/etc\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DENABLED_LOCAL_INFILE=1\-DDEFAULT_CHARSET=utf8mb4\-DDEFAULT_COLLATION=utf8mb4_general_ci
make-j4&&makeinstall
初始化数据库:
bash
编辑
cd/usr/local/mysqlmkdirmysql-fileschown-R mysql:mysql.bin/mysqld –initialize –user=mysqlbin/mysql_ssl_rsa_setup
bin/mysqld_safe –user=mysql&
注意:MySQL 8 编译依赖较多(如 boost),建议提前下载 boost 源码或使用
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/path/to/boost(但离线时必须手动提供)。
若追求简单,推荐使用 MariaDB,其编译依赖更少。
5. 编译安装 PHP
bash
编辑
tar-zxvf php-8.2.16.tar.gzcdphp-8.2.16
./configure\–prefix=/usr/local/php\–with-apxs2=/usr/local/apache2/bin/apxs\–with-mysqli=mysqlnd\–with-pdo-mysql=mysqlnd\–enable-mbstring\–with-curl\–with-openssl\–with-zlib\–enable-fpm\–with-libxml
make&&makeinstall
复制配置文件:
bash
编辑
cpphp.ini-production /usr/local/php/lib/php.ini
编辑 Apache 配置以支持 PHP:
apache
编辑
在 /usr/local/apache2/conf/httpd.conf 中添加LoadModule php_module modules/libphp.so
SetHandler application/x-httpd-php
AddType application/x-httpd-php .php
重启 Apache:
bash
编辑
/usr/local/apache2/bin/apachectl restart
php
编辑
<?phpphpinfo();?>
三、注意事项
依赖地狱
:源码编译最大的难点是依赖管理。务必记录每个组件的依赖项。
路径一致性
:所有
–prefix
路径要统一,避免混乱。
用户权限
:MySQL/MariaDB 建议创建
mysql
用户运行。
防火墙/SELinux
:确保 80 端口开放。
日志查看
:Apache 日志在
/usr/local/apache2/logs/
,PHP 错误可开启
display_errors
调试。
四、替代建议(简化离线部署)
如果允许,可考虑:
在联网机完整安装 LAMP,然后用
rsync
或打包整个
/usr/local
到离线机(需相同系统环境)。
使用 Docker 镜像导出/导入(
docker save/load
),适合容器化环境。
如需针对特定 Linux 发行版(如 CentOS 7、Ubuntu 22.04)或具体版本提供详细脚本,请告知系统环境,我可以生成完整 Shell 脚本。
夜雨聆风
