Linux 技术手札

RHEL / CentOS 编译 Apache, MariaDB, PHP(LAMP)

LAMP 是 Linux + Apache + MySQL + PHP 的缩写, 但从 RHEL / CentOS 7 开始已经不会内置 MySQL, 改为使用 MariaDB, MariaDB 使用上与 MySQL 相同, 旧有的 MySQL 数据库也可以直接升级使用, 这里会介绍下载源码编译安装 Apache + MariaDB + PHP。

安装 MySQL

参考本站另一篇文章 — RHEL / CentOS / Fedora 编译安装 MySQL 5.6 完成 MySQL 安装。

安装 Apache

为了方便管理, 以下会将所有下载的源码放到 /usr/local/src, 再编译安装:

下载 Apache 源码:

# cd /usr/local/src
# wget http://ftp.cuhk.edu.hk/pub/packages/apache.org//httpd/httpd-2.4.16.tar.gz

解压及编译 Apache 源码:

# tar zxvf httpd-2.4.16.tar.gz
# cd httpd-2.4.16
# ./configure –prefix=/usr/local/apache –enable-so –enable-rewrite
# make && make install
# /usr/local/apache/bin/apachectl start

用浏览器开启主机的 IP 地址, 如果可以看到 Apache 的默认页面便完成安装了。

接着将 Apache 设定成开机自动启动:

# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd

编译 httpd 档:

# vi /etc/init.d/httpd

在开头加入以下几行:

然后输入以下指令便完成设定开机自动启动 Apache 了:

# sudo chmod +x /etc/init.d/httpd
# chkconfig –add httpd

安装 PHP

在编译 PHP 前, 先用 YUM 安装 PHP 相关的套件, 例如 curl, lobjpeg 等, 编译 PHP 一些常用模组时需要用到这些套件。

# yum install libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel libmcrypt libmcrypt-deel libtool-ltdl-devel

然后下载 PHP:

# cd /usr/local/src
# wget http://php.net/get/php-5.5.28.tar.gz/from/a/mirror
# mv mirror php-5.5.28.tar.gz

解压及编译 PHP:

# tar zxvf php-5.5.28.tar.gz
# cd php-5.5.28
# ./configure –prefix=/usr/local/php55 –with-apxs2=/usr/local/apache/bin/apxs –with-curl –with-mcrypt –enable-mbstring –with-iconv –with-gd –with-jpeg-dir=/usr/test/local/lib –enable-pdo –with-pdo-mysql=mysqlnd –with-mysql=mysqlnd –with-mysqli=mysqlnd
# make && make install

编译完成后, 将 PHP 内建的 development 版 php.ini 档放到 PHP 安装目录:

# cp php.ini-development /usr/local/php55/lib/php.ini
# ln -s /usr/local/php55/php/bin/php /usr/bin/php

然后开启 php.ini 档设定:

# sudo vi /usr/local/php55/lib/php.ini

里面有一个 include_path, 将前面的分号删除, 改成这样:

include_path = “/usr/local/php55/php/lib/php”

储存盘案, 再开启 Apache 的 httpd.conf:

# vi /usr/local/apache/conf/httpd.conf

找到 DirectoryIndex, 加入 index.php, 即这样:

DirectoryIndex index.html index.htm index.php

然后再加入一行:

AddHandler application/x-httpd-php .php

修改后储存盘案, 重新启动 Apache:

# /usr/local/apache/bin/apachectl restart
Exit mobile version