實驗:在centos6上編譯lamp基於fpm模式的應用wordpress,並且實現xcache加速
軟件版本:
apr-1.6.2.tar.gz mariadb-5.5.57-linux-x86_64.tar.gz
apr-util-1.6.0.tar.gz xcache-3.2.0.tar.gz
php-5.6.31.tar.xz httpd-2.4.28.tar.bz2
wordpress-4.8.1-zh_CN.tar.gz
必要的包:
"development tools" 開發環境包組
openssl-devel expat-devel pcre-devel httpd需要的包
libxml2-devel bzip2-devel libmcrypt-devel php需要的包
步驟:
1、源碼編譯安裝Httpd2.4
具體含義請參考之前的博文:http://13150617.blog.51cto.com/13140617/1974733
①安裝包組及包
yum groupinstall "development tools" 安裝開發包組
yum install openssl-devel expat-devel pcre-devel 安裝必要的包
②下載軟件並解壓
tar xvf apr-1.6.2.tar.gz
tar xvf apr-util-1.6.0.tar.gz
tar xvf httpd-2.4.28.tar.bz2
cp -r apr-1.6.2 httpd-2.4.28/srclib/apr
cp -r apr-util-1.6.0 httpd-2.4.28/srclib/apr-util 將apr和apr-util放到同一指定目錄下
③編譯安裝httpd
cd httpd-2.4.28/
./configure --prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
make -j 4 && make install
④將httpd的命令路徑加入PATH變量,方便使用(不需要每次都使用絕對路徑)
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:$PATH
. /etc/profile.d/lamp.sh 執行腳本使其生效
⑤啓動服務
apachectl start
⑥配置成服務
cp /etc/init.d/httpd /etc/init.d/httpd24
vim /etc/init.d/httpd24
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
chkconfig --add httpd24
service http24 restart 重啓服務
查看已打開80端口:ss -ntl
2、二進制安裝mariadb
具體含義請參考之前的博文:http://13150617.blog.51cto.com/13140617/1971776
①下載二進制包並解壓
tar xvf mariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local/ 路徑必須在這裏
②將解壓後的包改名爲mysql
cd /usr/local
ln -s mariadb-10.2.9-linux-x86_64/ mysql 創建軟鏈接,名字必須爲mysql,
或者,mv mariadb-10.2.9-linux-x86_64 mysql 直接改名爲mysql
③創建mysql用戶
mkdir -p /app/mysqldb
useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql 創建mysql用戶,家目錄爲/app/mysqldb,可以自己指定
【附加,可以不做此操作:使用邏輯卷作爲數據庫的數據存放位置
設置-->添加一塊硬盤
echo '- - -' > /sys/class/scsi_host/host2/scan 使硬盤生效
創建邏輯卷:
pvcreat /dev/sdb vgcreate vg_mysqldb /dev/sdb
lvcreate -n lv_mysqldb -l +100%FREE vg_mysqldb
mkfs.ext4 /dev/vg_mysqldb/lv_mysqldb -L /app/mysqldb(卷標名) 格式化
vim /etc/fstab 配置開機掛載 /dev/vg_mysqldb/lv_mysqldb /app/mysqldb ext4 defaults,acl 0 0
mount -a 重新掛載
chown mysql /app/mysqldb 修改文件所屬人爲mysql
】
④生成數據庫文件
cd /usr/local/mysql/
scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql 運行腳本生成數據庫文件
⑤生成mysql的配置文件
mkdir /etc/mysql
cp support-files/my-large.cnf /etc/mysql/my.cnf 文件名必須叫這個
vim /etc/mysql/my.cnf
[mysqld]
datadir = /app/mysqldb
innodb_file_per_table = ON
skip_name_resolve = ON
⑥將mysqp配置成服務mysqld
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start 啓動不了因爲沒有日誌文件,根據提示做如下操作
touch /var/log/mysqld.log 創建日誌文件
chown mysql /var/log/mysqld.log 修改日誌文件權限
service mysqld start 啓動mysqld服務
ss -ntl 看到3306端口打開
⑦將mysqld的命令路徑加入PATH變量,方便使用
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
. /etc/profile.d/lamp.sh
⑧運行安全腳本,設置root密碼
mysql_secure_installation
⑨登陸數據庫創建數據庫及用戶爲wordpress的實現做準備
mysql -uroot -pcentos
>create datebase blogdb; 創建blogdb數據庫
創建用戶wpuser@'192.168.199.%'並授權:
>grant all on blogdb.* to wpuser@'192.168.199.%' identified by '123456';
3、源碼編譯安裝Php
①安裝必要的包,下載php源碼並解壓
yum install libxml2-devel bzip2-devel libmcrypt-devel 有的包需要epel源
tar xvf php-7.1.10.tar.xz
②編譯安裝php,基於fpm獨立服務方式
cd php-7.1.10/
./configure --prefix=/app/php \
--with-mysql=/usr/local/mysql \
--with-openssl \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-mcrypt \
--with-config-file-path=/etc/php \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2
make -j 4 && make install
③將php的命令路徑加入PATH變量,方便使用
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:/app/php/bin/:$PATH
. /etc/profile.d/lamp.sh
④準備php所需的文件
準備php的配置文件:
mkdir /etc/php
cp php-7.1.10/php.ini-production /etc/php/php.ini
複製腳本模板並配置成服務,方便使用:
cp php-7.1.10/sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm
chkconfig --add php-fpm
chmod +x /etc/init.d/php-fpm
準備自己服務的配置文件:
cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf
4、編輯httpd的主配置文件使其支持php
vim /app/httpd24/conf/httpd.conf
在文件尾部加四行
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/http24/htdocs/$1
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
取消兩行註釋
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
修改主頁面順序
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
啓動php服務:
service php-fpm start
如果啓動不起來,報錯如下:
那麼vim /etc/init.d/php-fpm
修改如下三行,都修改爲絕對路徑
php_fpm_BIN=/app/php/sbin/php-fpm
php_fpm_CONF=/app/php/etc/php-fpm.conf
php_fpm_PID=/app/php/var/run/php-fpm.pid
再啓動即可service php-fpm start
可以使用ss -ntl 查看9000端口打開了
5、測試php和mariadb連接
vim /app/httpd24/htdocs/index.php
<html><body><h1> LAMP</h1></body></html>
<?php
$mysqli=new mysqli("mysqlserver","root","123456");
if(mysqli_connect_errno()){
echo "連接數據庫失敗!";
$mysqli=null;
exit;
}
echo "連接數據庫成功!";
$mysqli->close();
phpinfo();
?>
網頁訪問:http://192.168.199.137/,效果如下則測試成功。至此lamp架構就實現了
6、配置wordpress
①下載wordpress並解壓
tar xvf wordpress-4.8.1-zh_CN.tar.gz
②將wordpress下所有文件放到主站點下,並且配置使其連接數據庫
mv wordpress/* /app/httpd24/htdocs
cd /app/httpd24/htdocs/
cp wp-config-sample.php wp-config.php 準備配置文件
vim wp-config.php 編輯配置文件
define('DB_NAME', 'blogdb'); 數據庫名
define('DB_USER', 'wpuser'); 用戶名
define('DB_PASSWORD', '123456'); 密碼
define('DB_HOST', 'localhost'); 數據庫所在服務器地址
7、性能測試: ab -c 20 -n 1000 http://192.168.199.137
windows測試:http://192.168.199.137 出現如下歡迎界面
8、xcache加速
①下載工具並解壓
tar xvf xcache-3.2.0.tar.gz
②編譯安裝xcache
cd xcache-3.2.0
phpize 生成編譯環境
./configure --enable-xcache --with-php-config=/app/php/bin/php-config
make && make install 編譯安裝
③配置xcache
mkdir /etc/php.d
cp xcache-3.2.0/xcache.ini /etc/php.d/ 將xcache複製到php.d下就可以使php和xcache結合在一起
修改庫的路徑(可以使用ls看一下路徑):
vim /etc/php.d/xcache.ini
extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
④重啓php-fpm服務
service php-fpm restart
性能測試:ab -c 20 -n 1000 http://192.168.199.137 比較之前會發現處理速度明顯提升
感謝瀏覽,如有疑問,歡迎留言