CentOS7編譯安裝LAMP—php-fpm

inux的環境是:

[root@localhost ~]# lsb_release -a

LSB Version:     :core-4.1-amd64:core-4.1-noarch

Distributor ID: CentOS

Description:     CentOS Linux release 7.2.1511 (Core)

Release:  7.2.1511

Codename:      Core

安裝了Deveolpment Tools

 

各軟件版本:

apr-1.5.0

apr-util-1.5.3

httpd-2.4.10

mariadb-5.5.46-linux-x86_64

php-5.6.4

xcache-3.2.0

wordpress-4.3.1-zh_CN

 

 

 

編譯安裝apr

tar xf apr-1.5.0.tar.bz2

cd apr-1.5.0

./configure –prefix=/apps/apr

make -j 4 && make install

 

 

編譯apr-util

tar xf apr-util-1.5.3.tar.bz2

cd apr-util-1.5.3

./configure –prefix=/apps/apr-util –with-apr=/apps/apr/

make -j 4 && make install

 

編譯httpd

yum install -y pcre-devel

yum install -y openssl-devel

tar xf httpd-2.4.10.tar.bz2

cd httpd-2.4.10

 

./configure –prefix=/apps/http –with-apr=/apps/apr –with-apr-util=/apps/apr-util –enable-so –enable-ssl –enable-rewrite –with-zlib –with-pcre –enable-modules=most –enable-mpms-shared=all –with-mpm=prefork

make -j 4 && make install

注意:此處httpd編譯的是prefork

配置:/apps/http/conf/httpd.conf

    # probably should define those extensions to indicate media types:

    #

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    AddType application/x-httpd-php .php

  

    <IfModule dir_module>

    DirectoryIndex index.php index.html

</IfModule>

建立文件:

cat /etc/profile.d/http.conf

PATH=/apps/http/bin:$PATH

 

添加man配置

[root@localhost ~]# vim /etc/man_db.conf

MANDATORY_MANPATH                       /apps/http/man

 

添加頭文件

[root@localhost ~]# ll /usr/include/http.h

lrwxrwxrwx. 1 root root 19 10 12 04:33 /usr/include/http.h -> /apps/http/include/

 

使用httpd –k start命令啟動httpd 查看80端口

 

 

安裝mariadb

此處的mariadb是通用二進制包安裝:

tar xf mariadb-5.5.46-linux-x86_64.tar.gz –C /apps/

cd /apps

ln –sv mariadb-5.5.46-linux-x86_64 mysql

useradd -r -M -s /sbin/nologin mysql

mkdir -p /mysql/mydata

chown -R mysql.mysql /mysql/mydata/

cd /apps/mysql

chown -R root.mysql ./*

mkdir -p /etc/mysql/

cp support-files/my-large.cnf /etc/mysql/my.cnf

 

 

vim /etc/mysql/my.cnf

[mysqld]字段編輯如下語句:

datadir = /mysql/mydata

skip_name_resolve = ON

innodb_file_per_table = ON

 

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig –add mysqld

chkconfig –list mysqld

mv /etc/my.cnf /etc/my.cnf.bak

service mysqld  start

查看端口3306是否啟動

vim /etc/profile.d/mysql.conf如下:

PATH=/apps/mysql/bin:$PATH

. /etc/profile.d/mysql.conf

 

編譯php

tar xf php-5.6.4.tar.xz

cd php-5.6.4

yum install libxml2-devel

yum install bzip2-devel

yum install libmcrypt

yum install libmcrypt-devel   注意:該軟件是epel源里的,需要epelyum

 

./configure –prefix=/apps/php –with-mysql=/apps/mysql –with-openssl –with-mysqli=/apps/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=/apps/http/bin/apxs –with-mcrypt  –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2 –enable-fpm

make -j 4 && make install

 

注意:此處編譯了php-fpm的屬性,并且由于httpd編譯的是prefork的,若果httpd編譯為work或者event,則這里需要加以屬性:–enable-maintainer-zts;

編輯vim /apps/http/conf/httpd.conf:去掉下面模塊的注釋符號#,

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

LoadModule dir_module modules/mod_dir.so

注釋掉下面的模塊:

#LoadModule php5_module        modules/libphp5.so

DocumentRoot下面添加一下語句:

DocumentRoot "/apps/http/htdocs"

ProxyRequests off

ProxyPassMatch  ^/(.*\.php)$  fcgi://127.0.0.1:9000/apps/http/htdocs/$1

確保下面的沒有被注釋掉:

 

<IfModule proxy_html_module>

Include conf/extra/proxy-html.conf

</IfModule>

 

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

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chkconfig –add php-fpm

chkconfig –list php-fpm

chmod +x /etc/init.d/php-fpm

mv  /apps/php/etc/php-fpm.conf.default /apps/php/etc/php-fpm.conf

service php-fpm start

httpd -k restart

 

vim /apps/http/htdocs/index.php如下:

<?php

phpinfo();

?>

在瀏覽器中輸入網址,是否是fastcgi模式:

blob.png

 

 

/apps/http/htdocs目錄中:

unzip  /root/wordpress-4.3.1-zh_CN.zip -d .

 

mysql

MariaDB [(none)]> create database wpdb;

MariaDB [(none)]> grant all privileges on wpdb.* to walker@'%' identified by "walker";

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> quit

 

[root@localhost ~]# vim /apps/http/htdocs/index.php

<?php

$conn = mysql_connect('172.16.251.187','walker','walker');

if($conn)

echo "OK";

else

echo "Failure";

phpinfo();

?>

訪問網頁,看是否連接成功:

blob.png

如此可以使用wordpress。使用剛才創建的用戶和數據可以初始化wordpress,在使用之前,需要更改wordpress目錄的權限。否則無法寫入數據:

chmod a+w wordpress

 

 

 

使用ab測試網站并發,ab工具是httpd-tools軟件包里面的,如沒有安裝httpd-tools。在另外一臺電腦使用命令:ab -c 20 -n 500 http://172.16.251.187/wordpress/wp-admin/ 

其中-c 20是并發量,-n 500是總的請求數。3次測試后,最后的數據是:

Requests per second:    11.43 [#/sec] (mean)

Time per request:       1749.168 [ms] (mean)

Time per request:       87.458 [ms] (mean, across all concurrent requests)

Transfer rate:          4.85 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0   17  29.4      1     231

Processing:   196 1695 241.8   1697    2421

Waiting:      193 1695 241.2   1696    2353

Total:        199 1713 243.3   1719    2422

 

Percentage of the requests served within a certain time (ms)

  50%   1719

  66%   1799

  75%   1847

  80%   1875

  90%   1941

  95%   2006

  98%   2176

  99%   2236

 100%   2422 (longest request)  最大的網頁打開時間是2.422

 

 

編譯安裝xcashe提升并發:

 

 

tar xf xcache-3.2.0.tar.bz2

cd xcache-3.2.0

vim INSTALL

/apps/php/bin/phpize

./configure –enable-xcache –with-php-config=/apps/php/bin/php-config

make -j 4 && make install

mkdir /etc/php.d

mv /etc/xcache.ini /etc/php.d/

service php-fpm restart

httpd -k restart

index.php網頁里面查看是否有:

blob.png

 

現在在用ab測試:

Requests per second:    31.13 [#/sec] (mean)    每秒處理請求,打開提升了3

Time per request:       642.426 [ms] (mean)

Time per request:       32.121 [ms] (mean, across all concurrent requests)

Transfer rate:          13.19 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0   17  33.1      2     342

Processing:   101  610 114.4    605    1055

Waiting:      100  609 114.3    605    1055

Total:        102  627 113.8    622    1056

 

Percentage of the requests served within a certain time (ms)

  50%    622

  66%    653

  75%    677

  80%    690

  90%    758

  95%    811

  98%    908

  99%    985

 100%   1056 (longest request)   打開網頁的最長時間,提示你2倍多

原創文章,作者:王更生,如若轉載,請注明出處:http://www.www58058.com/64415

(0)
王更生王更生
上一篇 2016-12-21 17:06
下一篇 2016-12-21 17:15

相關推薦

  • bash編程初體驗(一)

    bash編程初體驗(一) 認識bash編程 變量與賦值 算術與邏輯運算 條件測試與退出狀態 認識bash編程 Bash(GNU Bourne-Again Shell)是許多Linux發行版的默認Shell,我們要認識的bash中,就是在bash的環境下的一種編程。 眾所周知,程序=指令+數據,由此也決定了兩種不同的編程風格,過程過與對象式; 過程式:以指令為…

    Linux干貨 2016-08-15
  • MHA安裝包及其依賴包下載

    MySQL MHA是一款在業界廣泛部署的MySQL高可用軟件。但是在安裝時,需要安裝較多依賴包,并且有些依賴包在操作系統中默認的yum源是不存在的,因此需要到多個地方去尋找相應的包,費時費力。特別是在某些公司的網絡政策,只允許少數機器連接外網,因此部署MHA更是苦不堪言。     為了方便大家也是方便以后我自己的使用,…

    Linux干貨 2016-12-05
  • 多實例

    多實例

    Linux干貨 2018-01-29
  • mysql基礎篇(一些基本概念的總結)

    一、安裝以及初始化     軟件包來源         1. vendor, rpm           2. 官網,source code 編譯 &…

    Linux干貨 2015-12-03
  • 一起學WINS系列(二)安裝、配置

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/159128  此系列第二節:安裝服務端、配置客戶端。          完整的WINS系統…

    Linux干貨 2015-03-25
  • 題外:自制小linux

    自制小linux 系統 制作環境的概述 首先你的有VMware的虛擬機軟件,其次安裝了centos6/centos7的linux系統 而且你需要寫一個復制相關命令以及依賴庫文件的的腳本(主要是為了省時間,腳本寫法會在后面備注)準備好以上環境,便可以制作一個小linux系統了,具體步驟如下 1)  在虛擬機設置中,在原有基礎上在掛載一個20G大小的硬…

    2017-04-04
欧美性久久久久