CentOS6基於源碼編譯安裝LAMP實現WordPress功能和xcache功能
前言:APR(Apache portable Run-time libraries,Apache可移植運行庫)的目的如其名稱一樣,主要為上層的應用程序提供一個可以跨越多操作系統平臺使用的底層支持接口庫。
php的加速器xcache:基於PHP的特殊擴展機制如opcode緩存擴展也可以將opcode緩存於php的共享內存中,從而可以讓同一段代碼的後續重復執行時跳過編譯階段以提高性能。這些加速器並非真正提高了opcode的運行速度,而僅是通過分析opcode後並將它們重新排列以達到快速執行的目的
註意:php-xcache支持的版本
準備工作
軟件版本:軟件包全都放在: /app/目錄下
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.27.tar.bz2
註:在centos6上httpd的版本是2.2版本的,而要使用2.4版本的apr必須要在apr-1.4版本以上
php-5.6.31.tar.xz
xcache-3.2.0.tar.bz2
mariadb-5.5.57-linux-x86_64.tar.gz
wordpress-4.8.1-zh_CN.tar.gz
一、編譯httpd-2.4
1.安裝編譯的環境
cd /app/
yum groupinstall "development tools" # 開發工具包組
yum install openssl-devel pcre-devel expat-devel # 在編譯時,依賴或指定相關特性的包,這裏最好先安裝好,免的在編譯一半的時候再提示安裝。
2.解壓安裝包
tar -xvf apr-1.6.2.tar.gz
tar -xvf apr-util-1.6.0.tar.gz
tar -xvf httpd-2.4.27.tar.bz2
3.復制到httpd-2.4.27/srclib/目錄下,放在一起的進行編譯了,也可以單獨進行編譯,這個httpd-2.4.27/srclib/是必須放在這個目錄下的。
cp -r apr-1.6.2 httpd-2.4.27/srclib/apr
cp -r apr-util-1.6.0 httpd-2.4.27/srclib/apr-util
4.編譯
cd httpd-2.4.27/
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
5.安裝
make && make install
6.環境變量
vim /etc/profile.d/lamp.sh # 這裏單獨創建一個文件,比較容易來管理。
PATH=/app/httpd24/bin/:$PATH
. /etc/profile.d/lamp.sh # 生效
7.服務腳本
cp /etc/init.d/httpd /etc/init.d/httpd24 # 這裏把yum安裝好的腳本,或者其它安裝好的腳本拿過來編輯修改一下。
vim /etc/init.d/httpd24 # 下面是要修改的地方,其它的地方不需要修改
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
編輯完成之後,再把服務添加到開機啟動項當中
chkconfig --add httpd24
chkconfig --list httpd24
service httpd24 start
二、二進制安裝mariadb
1.解壓安裝包
cd /app/
tar -xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mariadb-5.5.57-linux-x86_64 mysql # 這裏必須要以mysql為目錄名,在預編譯的時候已經指字好的,或者做個軟鏈接也可以:ln -s mariadb-5.5.57-linux-x86_64/ mysql
2.創建用戶
useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql # 系統用戶不會自動創建家目錄所以用 -m
3.生成數據庫
cd /usr/local/mysql
scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql # 分別指定數據庫的位置和用戶
4.創建數據庫配置文件
mkdir /etc/mysql
cp support-files/my-large.cnf /etc/mysql/my.cnf # my-large.cnf這是系統自帶的模板
vim /etc/mysql/my.cnf
[mysqld]
datadir = /app/mysqldb # 數據庫位置
5.創建服務腳本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # mysql.server放到系統啟動目錄下,並重新命名。
chkconfig --add mysqld
6.添加日誌文件
touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log
service mysqld start
查看服務是否啟動,查看端口信息:ss -ntl 是否有3306端口打開
7.添加環境變量
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
. /etc/profile.d/lamp.sh
8.數據庫密碼環境的初始化
mysql_secure_installation # 腳本,更改root密碼、test數據庫是否啟用、是否開啟遠程連接等等
9.添加wordpress的用戶和相關的數據庫
mysql -uroot -pcentos # 初始當中指定了root的密碼
create datebase wpdb;
grant all on wpdb.* to [email protected]‘192.168.25.%‘ identified by ‘centos‘;
三、源碼編譯php
1.解壓並編譯
cd /app/
tar -xvf php-5.6.31.tar.xz
yum install libxml2-devel bzip2-devel libmcrypt-devel # 在編譯時,依賴或指定相關特性的包,libmcrypt-devel這個包是在epel源上,要先配置epel源。
cd php-5.6.31
./configure --prefix=/app/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
2.安裝
make && make install
3.添加環境變量
vim /etc/profile.d/lamp.sh
PATH=/app/php/bin:/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
. /etc/profile.d/lamp.sh
4.添加配置文件
cp /app/php-5.6.31/php.ini-production /etc/php.ini # 編譯安裝完成後生成的模板文件
5.添加配置文件到httpd當中,支持php
vim /etc/httpd24/httpd.conf
# 在文件尾部加兩行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# 修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html # 添加php的主頁面
</IfModule>
最後重啟服務
service httpd24 restart
四、測試數據庫的連接
vim /app/httpd24/htdocs/index.php
<html><body><h1>It works!</h1></body></html>
<?php
$mysqli=new mysqli("localhost","root","centos");
if(mysqli_connect_errno()){
echo "連接數據庫失敗!";
$mysqli=null;
exit;
}
echo "連接數據庫成功!";
$mysqli->close();
?>
最後從網頁當中打開,輸入httpd服務器的ip地址,會有提示是否成功。
五、配置WordPress
1.解壓包
cd /app/
tar -xvf wordpress-4.8.1-zh_CN.tar.gz -C /app/httpd24/htdocs
cd /app/httpd24/htdocs
mv wordpress blog
2.添加配置文件並編輯配置文件
cd /app/httpd24/htdocs/blog/
cp wp-config-sample.php wp-config.php # 安裝包當中自帶的模塊配置文件,必須改這個名
vim wp-config.php
define(‘DB_NAME‘, ‘wpdb‘);
/** MySQL數據庫用戶名 */
define(‘DB_USER‘, ‘wpuser‘);
/** MySQL數據庫密碼 */
define(‘DB_PASSWORD‘, ‘centos‘);
/** MySQL主機 */
define(‘DB_HOST‘, ‘localhost‘);
六、編譯xcache 實現Php加速
1.解壓包
cd /app/
tar -xvf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
2.編譯、安裝
在解壓後的目錄當下沒有configure這個腳本,所以要自己生成這個腳本文件
phpize # 統當中沒有phpize這個工具,在之前編譯的好的php裏面/app/php/bin/這個目錄下,有的php版本當中不支持這個工具。
./configure --enable-xcache --with-php-config=/app/php/bin/php-config
make && make install
3.添加配置文件並編輯
mkdir /etc/php.d/
cp xcache.ini /etc/php.d/
vim /etc/php.d/xcache.ini
extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
註:這個編譯生成的模塊文件,默認不存放在默認的目錄下,要指定其存放在那裏
service httpd24 restart # 重啟httpde服務
七、測試
1.http://httpd服務器的地址/blog/
2.壓力測試 ab -c 100 -n 100 http://httpd服務器的地址/blog/
登錄上去會出現主頁面的註冊信息
CentOS6基於源碼編譯安裝LAMP實現WordPress功能和xcache功能