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
下一篇 2016-12-21

相關推薦

  • M20 – 1- 第二周(2):課堂練習與作業

    課堂練習: 1、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件和目錄 [root@centos6 ~]# ls /var/l*[[:digit:]]*[[:lower:]] ls: cannot access /var/l*[[:digit:]]*[[:lower:…

    Linux干貨 2016-08-02
  • N26_第一周作業

    一、描述計算機的組成及其功能。 計算機系統:是由硬件(Hardware)系統和軟件(Software)系統兩大部分構成。 1、硬件系統: 1)控制器(Control):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。2)運算器(Datapath):運算器的功能是…

    2017-02-20
  • 馬哥教育網絡班19期+第九周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;#!/bin/bash#declare -i noNum=0declare -i lNum=0for bashName in `cat /etc/passwd | cut -d: -f7` …

    Linux干貨 2016-06-29
  • 私有IP網子網掩碼劃分原則及計算方法

    私有IP網子網掩碼劃分原則及計算方法 最好記下的二進制轉換十進制 00000000 0 00000001 1 00000010 2 00000100 4 00001000 8 00010000 16 00100000 32 01000000 64 10000000 128 11000000 192 11100000 224 11110000 240 1111…

    Linux干貨 2017-05-02
  • LVS-NAT負載均衡兩個php應用(wordpress,discuzx)( Blog 19)

    結果:需要會話保持,需要共享存儲;

    Linux干貨 2017-12-20
  • linux 的套接字

    套接字是一種通信機制,憑借這種機制,客戶/服務器系統的開發工作既可以在本地單機上進行,也可以跨網絡進行。 套接字的特性有三個屬性確定,它們是:域(domain),類型(type),和協議(protocol)。套接字還用地址作為它的名字。地址的格式隨域(又被稱為協議族,protocol family)的不同而不同。每個協議族又可以使用一個或多個地址族定義地址格…

    Linux干貨 2016-08-18
欧美性久久久久