在centos6上實現編譯安裝lamp和wordpress,並編譯xcache

author:JevonWei
版權聲明:原創做品php


軟件環境:

centos6.9
httpd-2.4.27.tar.bz2 
apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2   
mariadb-5.5.57-linux-x86_64.tar.gz
php-5.6.31.tar.bz2   
wordpress-4.8-zh_CN.tar.gz
xcache-3.2.0.tar.bz2

編譯安裝httpd-2.4.27html

yum groupinstall "Development Tools" -y
yum install pcre-devel  openssl-devel

下載相關文件到/root/src目錄下
tar xvf apr-1.5.2.tar.bz2
tar xvf apr-util-1.5.4.tar.bz2
tar xvf httpd-2.4.27.tar.bz2 
mv apr-1.5.2/        httpd-2.4.27/srclib/apr
mv apr-util-1.5.4/   httpd-2.4.27/srclib/apr-util
cd httpd-2.4.27
./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 && make install


或者下面方法
tar xvf apr-1.5.2.tar.bz2
cd apr-1.5.2
./configure --prefix=/app/apr
make && make install

tar xvf apr-util-1.5.4.tar.bz2
cd apr-util-1.5.4
./configure --prefix=/app/apr-util --with-apr=/app/apr
make && make install 

tar xvf httpd-2.4.27.tar.bz2 
cd httpd-2.4.27

./configure --prefix=/app/httpd24  --sysconfdir=/etc/httpd24  --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/app/apr --with-apr-util=/app/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
make  && make install


配置環境變量
vim /etc/profile.d/app.sh
export PATH=/app/httpd24/bin:$PATH
. /etc/profile.d/app.sh

參考httpd-2.2建立服務腳本
cd /etc/rc.d/init.d/
cp httpd httpd24
vim 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
ss -ntl
httpd -M 查看
mpm_prefork module(share)或者mpm_event_module(shared)

二進制安裝mariadb-5.5.57mysql

rpm –qa 「mysql*」
yum remove mysql*

下載mariadb-5.5.57-linux-x86_64
tar xvf mariadb-5.5.57-linux-x86_64  -C /usr/local  
注意:建議使用/usr/local,編譯安裝時的默認路徑,不然後續不少配置要指定新路徑 

id mysql
若是不存在mysql用戶
    useradd –r  -m –s /sbin/nlogin –d /app/mysqldb  mysql

若是存在 Mysql用戶
    mkdir /app/mysqldb 
    chown mysql.mysql /app/mysqldb 

cd /usr/local
ln -s mariadb-5.5.57-linux-x86_64/ mysql
cd mysql
scripts/mysql_install_db --datadir=/app/mysqldb --user=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
    
    即
    [mysqld]
    datadir = /app/mysqldb
    innodb_file_per_table = on
    skip_name_resolve = on

生成mysqld服務腳本
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start

touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log

vim /etc/profile.d/app.sh                     
    export PATH=/usr/local/mysql/bin/:/app/httpd24/bin:$PATH
    . /etc/profile.d/app.sh     
mysql \\用mysql命令測試, 登陸成功

mysql_secure_installation  \\實現安全,設置root口令

建立wordpress使用的數據庫和用戶及權限
mysql -uroot -pdanran -e "create database blogdb; grant all on blogdb.* to blog@'localhost' identified by 'blog';"

測試驗證登陸成功
mysql -blog  -pblog

編譯安裝phplinux

下載 php-5.6.31.tar.bz2
tar xvf php-5.6.31.tar.bz2 
cd php-5.6.31 
yum -y install bzip2-devel  libxml2-devel libmcrypt-devel(epel源)  

./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 --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d  --with-bz2

    說明:
    ./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  支持文檔xml
    --enable-xml
    --enable-sockets  socket通訊
    --with-apxs2=/app/httpd24/bin/apxs  將Php編譯成apache的模塊
    --with-mcrypt 
    --with-config-file-path=/etc  php配置文件路徑
    --with-config-file-scan-dir=/etc/php.d 
    --with-bz2  

    --enable-maintainer-zts  用於支持worker和event模塊,若是prefork不須要

make -j 4 && make install

cp php.ini-production /etc/php.ini

配置httpd2.4支持phpweb

vim /app/httpd24/conf/httpd.conf
    加二行
    AddType application/x-httpd-php .php
    Addtype application/x-httpd-php-source .phps

    修改
    DirectoryIndex index.html
    爲下面行
    DirectoryIndex index.php index.html

apachectl stop
apachectl start

測試訪問sql

vim /app/httpd24/htdocs/index.php
    <?php
    $conn=mysql_connect('127.0.0.1','blog','blog');
    if($conn)
    echo "OK";
    else
    echo "Not OK";
    mysql_close();
    phpinfo();
?>

安裝wordpress數據庫

tar xvf  wordpress-4.8-zh_CN.tar.gz
mv wordpress /app/httpd24/htdocs/blog/
cd /app/httpd24/htdocs/blog/
cp wp-config-sample.php  wp-config.php
vim wp-config.php
    define('DB_NAME', 'blogdb');
    define('DB_USER', 'wpuser');
    define('DB_PASSWORD', 'magedu');
    define('DB_HOST', 'localhost');

http://172.16.253.166/blog 登陸成功

測試性能apache

觀察下面命令的結果:
ab -c 10 -n 100 http://websrv/blog/

編譯安裝xcachevim

下載xcache-3.2.0.tar.bz2
tar xf xcache-3.2.0.tar.bz2
cd  xcache-3.2.0

/app/php/bin/phpize  生成編譯環境.configure腳本
./configure --enable-xcache  --with-php-config=/app/php/bin/php-config
make && make install
注意最後結果的一行目錄
ls  /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

mkdir /etc/php.d/
cp  xcache.ini  /etc/php.d/
vim /etc/php.d/xcache.ini
    [xcache-common]
    修改
    extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

service httpd24 restart

測試性能centos

http://localhost/ 在後面能夠看到xcache的信息
觀察下面命令的結果:性能有提升
ab -c 10 -n 100 http://172.16.253.166/pma/index.php

實驗:在centos6上配置以fpm方式的php

在上一個實驗基礎上實現本實驗

軟件環境:

centos6.9
httpd-2.4.27.tar.bz2 
apr-1.5.2.tar.bz2   
apr-util-1.5.4.tar.bz2  
mariadb-5.5.57-linux-x86_64.tar.gz
php-5.6.31.tar.bz2
wordpress-4.8-zh_CN.tar.gz
xcache-3.2.0.tar.bz2

先在centos6上編譯安裝httpd2.4和mariadb二進制方式

先刪除前面實驗的php信息     
rm  -rf /root/src/php*    
和前面實驗的步驟同樣,先httpd24 mysql,再作下面步驟:

編譯安裝php

yum -y install bzip2-devel  libxml2-devel libmcrypt-devel(epel源)  
tar xvf php-5.6.31.tar.bz2
cd php-5.6.31/

爲防止和上面實驗衝突,修改下面的相關路徑
./configure --prefix=/app/php5 --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/php5 --with-config-file-scan-dir=/etc/php5.d --with-bz2  

make -j 4 && make install

實現php的配置文件和服務腳本

mkdir /etc/php5  /etc/php5.d/
cp php.ini-production /etc/php5/php.ini

cp sapi/fpm/init.d.php-fpm   /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm 
chkconfig --add php-fpm
chkconfig --list php-fpm

cd /app/php5/etc
cp php-fpm.conf.default   php-fpm.conf

編輯php配置文件,可不作修改
vim  /app/php5/etc/php-fpm.conf
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 2
    pm.max_spare_servers = 5 和pm.start_servers一致
    pid = /app/php5/var/run/php-fpm.pid

service php-fpm start 
ps aux|grep fpm
netstat -ntl

修改httpd24的配置文件

service httpd24 stop

cp /app/httpd24/conf/httpd.conf  /app/httpd24/conf/httpd.conf.bak \\備份配置文件 
vim /app/httpd24/conf/httpd.conf

    去掉下面兩行註釋
        LoadModule proxy_module modules/mod_proxy.so
        LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
        \\ 說明:啓用httpd的相關模塊
            在Apache httpd 2.4之後已經專門有一個模塊針對FastCGI的實現,此模塊爲mod_proxy_fcgi.so,它實際上是做爲mod_proxy.so模塊的擴充,所以,這兩個模塊都要加載

    添加以下二行
        AddType application/x-httpd-php  .php
        AddType application/x-httpd-php-source  .phps

    定位至DirectoryIndex index.html 
    修改成:
        DirectoryIndex  index.php  index.html

    <IfModule dir_module>
    DirectoryIndex index.php index.html
    </IfModule>

    加下面兩行,全局任意位置,如最後
        ProxyRequests Off    關閉正向代理
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1 \\ProxyPassMatch:把以.php結尾的文件請求發送到php-fpm進程,php-fpm至少須要知道運行的目錄和URI,因此這裏直接在fcgi://127.0.0.1:9000後指明瞭這兩個參數,其它的參數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不須要手動指定。

httpd -t
httpd –M
service httpd24 restart

生成測試頁

vim /app/apache24/htdocs/index.php
    以下:
    <?php
        $link = mysql_connect('127.0.0.1','blog','blog');
        if ($link)
            echo "Success...";
        else
            echo "Failure...";
        mysql_close();
        phpinfo();
    ?>

http://websrv/index.php 成功 ,但沒有xcache信息

觀察下面命令的結果:Requests per second:沒有xcache加速
ab -c 100 -n 1000 http://websrv/index.php

編譯安裝xcache實現加速

tar xf xcache-3.2.0.tar.bz2
cd  xcache-3.2.0/
/app/php5/bin/phpize  生成編譯環境.configure腳本
./configure --enable-xcache  --with-php-config=/app/php5/bin/php-config
make && make install

注意最後結果的一行目錄
ls /app/php5/lib/php/extensions/no-debug-non-zts-20131226

cp  xcache.ini  /etc/php5.d/
vim /etc/php5.d/xcache.ini
    [xcache-common]
    修改
    extension =  /app/php5/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

    service php-fpm restart  
    \\ 注意:不須要重啓httpd服務
    ps aux |grep php 查看php進程 
    http://localhost/ 在後面能夠看到xcache的信息
相關文章
相關標籤/搜索