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


Leave a Reply