LAMP(Linux + Apache + MySQL + PHP)编译部署流程

一个经典的 LAMP(Linux + Apache + MySQL + PHP)编译部署流程。在企业或者个人运维里,一般用包管理器(yum/apt)会更快,但如果要自己编译,就需要控制版本、优化参数和安装路径。


1. 准备工作

  • 系统环境:Linux (CentOS/RHEL/Ubuntu均可)

  • 工具依赖:

    1
    2
    3
    4
    5
    yum groupinstall "Development Tools" -y
    yum install -y gcc gcc-c++ make cmake bison zlib zlib-devel \
    ncurses ncurses-devel libxml2 libxml2-devel \
    libjpeg libjpeg-devel libpng libpng-devel \
    freetype freetype-devel openssl openssl-devel curl curl-devel

    Ubuntu 用 apt-get build-dep 方式安装依赖即可。


2. 编译安装 MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 下载源码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.40.tar.gz
tar zxvf mysql-8.0.40.tar.gz
cd mysql-8.0.40

# 建立用户和目录
useradd -r -s /sbin/nologin mysql
mkdir -p /usr/local/mysql /data/mysql
chown -R mysql:mysql /data/mysql

# 编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=boost

make -j$(nproc) && make install

初始化数据库:

1
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql

配置 systemd 或 init 脚本启动。


3. 编译安装 Apache (httpd)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
wget https://downloads.apache.org/httpd/httpd-2.4.62.tar.gz
wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz

tar zxvf httpd-2.4.62.tar.gz
cd httpd-2.4.62
# 将 apr / apr-util 解压放入 srclib 目录
mv ../apr-1.7.4 srclib/apr
mv ../apr-util-1.6.3 srclib/apr-util

./configure --prefix=/usr/local/apache \
--enable-so \
--enable-rewrite \
--enable-ssl \
--with-mpm=event

make -j$(nproc) && make install

启动测试:

1
/usr/local/apache/bin/apachectl start

4. 编译安装 PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
wget https://www.php.net/distributions/php-8.3.11.tar.gz
tar zxvf php-8.3.11.tar.gz
cd php-8.3.11

./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--enable-mbstring \
--with-openssl \
--with-zlib \
--enable-fpm \
--with-curl

make -j$(nproc) && make install
cp php.ini-development /usr/local/php/lib/php.ini

5. Apache 与 PHP 集成

/usr/local/apache/conf/httpd.conf 里添加:

1
2
3
# 支持 PHP
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html

重启 Apache:

1
/usr/local/apache/bin/apachectl restart

6. 验证部署

建立测试页面:

1
echo "<?php phpinfo(); ?>" > /usr/local/apache/htdocs/index.php

浏览器访问 http://服务器IP/,能看到 PHP 信息页面。


7. 调用图

4cb763aaac20adfda42cfd2a26c6b84e.png