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.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的信息