Centos 7&6分布式lamp平臺

Centos 7&6分布式lamp平臺


一、環境介紹

lamp的實現方式

  • module方式 :將php編譯成為httpd的模塊來使用

  • php-fpm方式:將php安裝成為一個可以監聽在一個端口的服務,即php-fpm方式

  • 編譯安裝:以上兩種介紹的都為rpm包方式安裝,此處可以編譯安裝,編譯安裝時可以選擇不同MPM,默認為prfork


本文安裝方式

方式 主機 測試環境
module 2 提供兩個虛擬主機,分別提供phpMyAdmin和wordpres進行測試,且phpMyAdmin為https方式
php-fpm(rpm包) 3 提供兩個虛擬主機,分別提供phpMyAdmin和wordpres進行測試
編譯安裝(php-fpm) 3 提供兩個虛擬主機,分別提供phpMyAdmin和wordpres進行測試,并且mpm為非prefork機制(此處測試event模型)

二、Centos 7 分布式lamp平臺,module方式

環境規劃

IP software 平臺
172.18.4.70 httpd+php CentOS 7
172.18.4.71 mariadb CentOS 7

主機2配置mariadb

安裝
# yum install mariadb-server mariadb -y

授權wordpress

MariaDB [(none)]> CREATE DATABASE wpdb;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON wpdb.* to wpuser@'172.18.%.%' IDENTIFIED BY 'wpuser';
Query OK, 0 rows affected (0.12 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.05 sec)

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+

| information_schema |
| mysql              |
| performance_
schema |
| wpdb               |
+--------------------+

4 rows in set (0.00 sec)

MariaDB [(none)]> SELECT user,host,password FROM mysql.user WHERE user='wpuser';
+--------+------------+-------------------------------------------+
| user   | host       | password                                  |
+--------+------------+-------------------------------------------+

| wpuser | 172.18.%.% | *85709C35E2A466A9716D0135ABA9A700002C2DE9 |
+--------+------------+-------------------------------------------+

1 row in set (0.02 sec)

授權phpMyAdmin可訪問的數據庫用戶

MariaDB [(none)]> CREATE USER pma@'172.18.%.%' IDENTIFIED BY 'pmapasswd';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON *.* TO pma@'172.18.%.%' IDENTIFIED BY 'pmapasswd';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> SHOW GRANTS FOR pma@'172.18.%.%';
+----------------------------------------------------------------------------------------------------------------------+
| Grants for pma@172.18.%.%                                                                                            |
+----------------------------------------------------------------------------------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'pma'@'172.18.%.%' IDENTIFIED BY PASSWORD '*7E19D0AC9C8C65817A71AC0D9D625CBBB3F3FD9D' |
+----------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

主機1配置httpd&php

安裝httpd和php

安裝httpd和php:此處把php當做httpd的模塊

# yum install httpd php php-mysql -y

啟動httpd并測試php與mysql

# systemctl start httpd
# ss -tnl|grep 80
LISTEN     0      128                      :::80                      :::*

添加mariadb測試用戶

MariaDB [(none)]> GRANT ALL ON *.* TO testuser@'172.18.%.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

添加測試頁面
# vim /var/www/html/index.php
mysql:
<?php
       $conn = mysql_connect('172.18.4.71','testuser','123456');
       if ($conn)
               echo "OK";
       else
               echo "Failure";
?>
<?php
       phpinfo();
?>

通過瀏覽器訪問測試

testphpandmysql.png

xcache

xcache可以選擇編譯安裝,但epel源中也有提供,本地使用編譯安裝,在下面會使用yum安裝
 1、yum安裝的lamp平臺且php作為模塊時的安裝方式

  # yum install php-devel -y
 # tar xf xcache-3.0.3.tar.gz
 # cd xcache-3.0.3
 # phpize
 # ./configure --enable-xcache
 # make && make install

 安裝結束時,會出現類似如下行:
 Installing shared extensions:     /usr/lib64/php/modules/

2、編輯php.ini,整合php和xcache:

  首先將xcache提供的樣例配置導入php.ini
 # mkdir /etc/php.d
 # cp xcache-3.2.0/xcache.ini /etc/php.d

 說明:xcache.ini文件在xcache的源碼目錄中。

 接下來編輯/etc/php.d/php.ini
 [xcache]
 zend_extension = /usr/lib64/php/modules/xcache.so

3、查看瀏覽器并測試

xcache.png

phpMyAdmin

1、安裝配置phpMyAdmin
下載方式:https://www.phpmyadmin.net/downloads/

安裝mbstring支持中文
# yum install php-mbstring -y
# 解壓程序包,創建軟連接(此處也可以直接移動改名)
# ll
total 9836
-rw-r--r--  1 root root      148 Apr 19 19:56 index.php
drwxr-xr-x 10 root root     4096 Sep  8  2015 phpMyAdmin-4.4.14.1-all-languages
-rw-r--r--  1 root root 10057503 Sep 18  2015 phpMyAdmin-4.4.14.1-all-languages.zip
# unzip phpMyAdmin-4.4.14.1-all-languages.zip
# ln -sv phpMyAdmin-4.4.14.1-all-languages pma
‘pma’ -> ‘phpMyAdmin-4.4.14.1-all-languages’
# ll
total 9836
-rw-r--r--  1 root root      148 Apr 19 19:56 index.php
drwxr-xr-x 10 root root     4096 Sep  8  2015 phpMyAdmin-4.4.14.1-all-languages
-rw-r--r--  1 root root 10057503 Sep 18  2015 phpMyAdmin-4.4.14.1-all-languages.zip
lrwxrwxrwx  1 root root       33 Apr 19 21:28 pma -> phpMyAdmin-4.4.14.1-all-languages

生成配置文件,修改配置文件

# cd /var/www/html/pma/
# cp config.sample.inc.php config.inc.php
# vim config.inc.php
# openssl rand -base64 20  #通過openssl生成一串隨機數
PRme5hzVVWLMcmr3U2mPtklqcUU=
# vim config.inc.php
$cfg['blowfish_secret'] = 'PRme5hzVVWLMcmr3U2mPtklqcUU';
$cfg['Servers'][$i]['host'] = '172.18.4.71';
# 注意:此處的host是mariadb服務器地址

2、配置虛擬主機

# vim /etc/httpd/conf.d/phpmyadmin.conf
<VirtualHost 172.18.4.70:80>
       DocumentRoot "/var/www/html/pma/"
       ServerName www.magedu.com
       <Directory "/var/www/html/pma">
            Options FollowSymLinks
            AllowOverride None
            Require all granted
       </Directory>
</VirtualHost>
重啟httpd服務
# systemctl restart httpd.service

3、訪問測試是否可以連接數據庫
在第一臺mariadb主機上已經創建,并且授權
測試用戶:pma
測試密碼:pmapasswd

phpmyadmin登錄界面.png

phpmyadmin登陸后界面.png

wordpress

1、安裝配置wordpress
下載地址:https://wordpress.org/download/
安裝程序:

cd /var/www/html
# unzip wordpress-4.3.1-zh_CN.zip
# cd wordpress/
# cp wp-config-sample.php wp-config.php
# vim wp-config.php

修改配置:

wordpress配置文件.png 
2、添加虛擬主機

# vim /etc/httpd/conf.d/wordpress.conf
<VirtualHost 172.18.4.70:8080>
       DocumentRoot "/var/www/html/wordpress/"
       ServerName www.zhaoxin.com
       <Directory "/var/www/html/wordpress">
            Options FollowSymLinks
            AllowOverride None
            Require all granted
       </Directory>
</VirtualHost>
重啟httpd服務
# systemctl restart httpd.service

3、測試

wordpress后臺 php-fpm.png

https的phpMyAdmin

A、構建私有CA服務器

  • 生成私鑰

# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
Generating RSA private key, 4096 bit long modulus
...........................................................................++
.....................................................................................................................................................................................++
e is 65537 (0x10001)
  • 生成自簽證書

# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

具體方式如下圖:

自簽證書.gif

  • 提供所需目錄及文件

# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}
# touch  /etc/pki/CA/{serial,index.txt}
# echo  01 > /etc/pki/CA/serial

2、httpd服務器申請證書

  • 生成私鑰

#mkdir /etc/httpd/ssl
# cd  /etc/httpd/ssl
# (umask  077; openssl  genrsa -out  /etc/httpd/ssl/httpd.key  2048)
Generating RSA private key, 2048 bit long modulus
................................+++
.............+++
e is 65537 (0x10001)
  • 生成證書簽署請求

# openssl  req  -new  -key  /etc/httpd/ssl/httpd.key  -out /etc/httpd/ssl/httpd.csr  -days  365

具體方式如下圖:

httpd生成證書請求.gif

  • 將證書復制到CA服務器
    注意:本文用scp命令復制,在生產環境中不應在網絡中傳輸。建議使用U盤傳輸。

# scp /etc/httpd/ssl/httpd.csr 172.18.4.71:/opt/ssl/
root@172.18.4.71's password:
httpd.csr                                                           100% 1090     1.1KB/s   00:00  

3、CA服務器簽署請求

  • 簽署請求

# openssl ca  -in  /opt/ssl/httpd.csr  -out  /etc/pki/CA/certs/httpd.crt  -days  365

頒發證書.gif

  • 復制證書到httpd服務器

# scp /etc/pki/CA/certs/httpd.crt 172.18.4.70:/etc/httpd/ssl/
root@172.18.4.70's password:
httpd.crt                                                           100% 5852     5.7KB/s   00:00

B、配置httpd服務器
1、安裝mod_ssl以支持https

# yum install mod_ssl -y

2、修改虛擬主機,支持ssl

配置文件:/etc/httpd/conf.d/phpmyadmin.conf

DirectoryIndex index.php
<VirtualHost 172.18.4.70:443>
       DocumentRoot "/var/www/html/pma/"
       ServerName www.zhaoxin.com
       SSLEngine on
       SSLCertificateFile /etc/httpd/ssl/httpd.crt
       SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
       <Directory "/var/www/html/pma">
                Options FollowSymLinks
                AllowOverride None
                Require all granted
       </Directory>
</VirtualHost>
# 重啟服務,并查看443端口
# systemctl reload httpd
# netstat -tnlp|grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      3362/httpd          
tcp6       0      0 :::443                  :::*                    LISTEN      3362/httpd    

3、客戶端瀏覽器導入證書
注意:證書為CA服務器的自簽證書 

瀏覽器導入證書2.png

4、測試https訪問
注意:因為證書頒發時寫的是域名,所以訪問時必須是域名。

https 測試頁面.png

三、Centos 7 分布式lamp平臺,php-fpm(rpm包)方式

注意事項

將php作為一臺獨立主機時,需要注意以下幾點:

  • 應用程序安裝:應用程序必須在web所在的服務器和php所在的服務器同時存在,且所處的路徑必須完全相同。

  • php-fpm pool的配置

    • listen = 172.18.4.72:9000
      表示監聽地址,應為本機ip中可以與web服務器和mariadb通信其中的一個

    • listen.allowed_clients = 172.18.4.70,172.18.4.71
      設置允許連接到 FastCGI 的服務器 IPV4 地址。等同于 PHP FastCGI (5.2.2+) 中的 FCGI_WEB_SERVER_ADDRS 環境變量。僅對 TCP 監聽起作用。每個地址是用逗號分隔,如果沒有設置或者為空,則允許任何服務器請求連接。默認值:any。

  • web服務器配置

    • 主配置文件:/etc/httpd/conf/httpd.conf
      AddType application/x-httpd-php .php

    • 虛擬主機及其他配置文件

ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$  fcgi://172.18.4.72:9000/var/www/html/wordpress/$1

環境規劃

IP software 平臺
172.18.4.70 httpd CentOS 7
172.18.4.71 mariadb CentOS 7
172.18.4.72 php-fpm CentOS 7

主機3配置mariadb

# 安裝mariadb
# yum install mariadb-server mariadb -y

# 創建wordpress數據庫,及授權用戶
MariaDB [(none)]> CREATE DATABASE wpdb2;
Query OK, 1 row affected (0.07 sec)

MariaDB [(none)]> GRANT ALL ON wpdb2.* TO wpuser2@'172.18.%.%' IDENTIFIED BY 'wpuser2';
Query OK, 0 rows affected (0.10 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.09 sec)

#創建phpmyadmin測試用戶

MariaDB [(none)]> GRANT ALL ON *.* TO pmatest@'172.18.%.%' IDENTIFIED BY 'pmatest';
Query OK, 0 rows affected (0.00 sec)

#創建測試用戶,用于測試php是否能連接mariadb

MariaDB [(none)]> GRANT SELECT ON *.* TO testphpuser@'172.18.%.%' IDENTIFIED BY 'testphpuser';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SELECT user,host,password FROM mysql.user;
+-------------+-----------------------+-------------------------------------------+
| user        | host                  | password                                  |
+-------------+-----------------------+-------------------------------------------+
| wpuser2     | 172.18.%.%            | *3537DDA14FC1BECB01AE33B985D168A8FF03EAD5 |
| pmatest     | 172.18.%.%            | *A94DDD6EAFEF229762011FBE87CB765C6BF3A28F |
| testphpuser | 172.18.%.%            | *BF4562DD1A67EE803547146247D8BDD0C1D0933F |
+-------------+-----------------------+-------------------------------------------+

主機2配置php-fpm

安裝配置php-fpm

# yum install php-fpm php-mysql -y

修改pool配置文件:/etc/php-fpm.d/www.conf

php-fpm的pool文件.png

重新載入php-fpm服務

# systemctl reload php-fpm
# ss -tnl
State      Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port
LISTEN     0      128                        172.18.4.72:9000                                *:*    
LISTEN     0      128                                  *:22                                  *:*    
LISTEN     0      100                          127.0.0.1:25                                  *:*    
LISTEN     0      128                          127.0.0.1:6010                                *:*    
LISTEN     0      128                          127.0.0.1:6011                                *:*    
LISTEN     0      128                                 :::22                                 :::*    
LISTEN     0      100                                ::1:25                                 :::*    
LISTEN     0      128                                ::1:6010                               :::*    
LISTEN     0      128                                ::1:6011                               :::*    

主機1配置httpd

安裝和配置httpd

# yum install httpd -y

修改主配置文件,添加一行

vim /etc/httpd/conf/httpd.conf
   AddType application/x-httpd-php .php

配置轉發動態頁面到php-fpm服務器

# vim /etc/httpd/conf.d/vhosts.conf
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://172.18.4.72:9000/var/www/html/$1
# systemctl start httpd

在php-fpm的主機上創建與web主機相同的DocumentRoot及添加測試頁面。

# mkdir -pv /var/www/html
# vim /var/www/html/index.php
mysql:
<?php
       $conn = mysql_connect('172.18.4.71','testphpuser','testphpuser');
       if ($conn)
               echo "OK";
       else
               echo "Failure";
?>

<?php
       phpinfo();
?>

注意:上面的index.php需要放在php-fpm所在的主機上面

測試

xcache

在php-fpm的服務器上:

# yum install php-xcache -y
# systemctl reload php-fpm

重新訪問php測試頁面

xcachephp-fpm方式.png

phpMyAdmin

下載方式:https://www.phpmyadmin.net/downloads/

安裝mbstring支持中文
# yum install php-mbstring -y
# 解壓程序包,創建軟連接(此處也可以直接移動改名)
# cd /var/www/html
# ll
total 9836
-rw-r--r--  1 root root      148 Apr 19 19:56 index.php
drwxr-xr-x 10 root root     4096 Sep  8  2015 phpMyAdmin-4.4.14.1-all-languages
-rw-r--r--  1 root root 10057503 Sep 18  2015 phpMyAdmin-4.4.14.1-all-languages.zip
# unzip phpMyAdmin-4.4.14.1-all-languages.zip
# ln -sv phpMyAdmin-4.4.14.1-all-languages pma
‘pma’ -> ‘phpMyAdmin-4.4.14.1-all-languages’
# ll
total 9836
-rw-r--r--  1 root root      148 Apr 19 19:56 index.php
drwxr-xr-x 10 root root     4096 Sep  8  2015 phpMyAdmin-4.4.14.1-all-languages
-rw-r--r--  1 root root 10057503 Sep 18  2015 phpMyAdmin-4.4.14.1-all-languages.zip
lrwxrwxrwx  1 root root       33 Apr 19 21:28 pma -> phpMyAdmin-4.4.14.1-all-languages

生成配置文件,修改配置文件

# cd /var/www/html/pma/
# cp config.sample.inc.php config.inc.php
# vim config.inc.php
# openssl rand -base64 20  #通過openssl生成一串隨機數
cYYZhYcj3eGTnyP8F+9kcJBEUO4=
# vim config.inc.php
$cfg['blowfish_secret'] = 'cYYZhYcj3eGTnyP8F+9kcJBEUO4';
$cfg['Servers'][$i]['host'] = '172.18.4.71';
# 注意:此處的host是mariadb服務器地址

注意:以上操作需要在php-fpm服務中同樣操作
此處我用scp命令拷貝:

# scp -r phpMyAdmin-4.4.14.1-all-languages 172.18.4.72:/var/www/html/pma
# ifconfig |grep -e 'inet[[:space:]].*255$'
       inet 172.18.4.72  netmask 255.255.0.0  broadcast 172.18.255.255
       # ll /var/www/html/
total 12
-rw-r--r--  1 root root  156 Apr 20 09:41 index.php
drwxr-xr-x 10 root root 4096 Apr 20 10:54 pma

配置虛擬主機:
/etc/httpd/conf.d/pma.conf 配置文件路徑

DirectoryIndex index.php
<VirtualHost *:80>
       ServerName www.pma.com
       DocumentRoot /var/www/html
       ProxyRequests Off
       ProxyPassMath ^/(.*\.php)$ fcgi://172.18.4.72:9000/var/www/html/$1
       <Directory "/var/www/html">
               Options FollowSymLinks
               AllowOverride None
               Require all granted
       </Directory>
</VirtualHost>

創建session目錄:

  • 注意:此處如果不創建可能會報錯。

# mkdir  /var/lib/php/session
# chown apache.apache /var/lib/php/session  

測試:

wordpress

下載地址:https://wordpress.org/download/
解壓程序包:

# cd /var/www/html/
# unzip wordpress-4.3.1-zh_CN.zip
# cd wordpress
# cp wp-config-sample.php wp-config.php
# vim wp-config-sample

wordpres php-fpm.png

拷貝文件到php服務器:

# scp -r wordpress 172.18.4.72:/var/www/html/wordpress

添加虛擬主機:
配置文件:/etc/httpd/conf.d/wordpress.conf

DirectoryIndex index.php
Listen 8080
<VirtualHost 172.18.4.70:8080>
       ServerName www.wordpress.com
       DocumentRoot /var/www/html/wordpress
       <Directory "/var/www/html/wordpress">
               Options None
               AllowOverride None
               Require all granted
       </Directory>
       ProxyRequests Off
       ProxyPassMatch ^/(.*\.php)$ fcgi://172.18.4.72:9000/var/www/html/wordpress/$1
</VirtualHost>
重啟httpd服務
# systemctl reload httpd
# ss -tnl
State      Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port
LISTEN     0      128                                  *:22                                  *:*    
LISTEN     0      100                          127.0.0.1:25                                  *:*    
LISTEN     0      128                          127.0.0.1:6011                                *:*    
LISTEN     0      128                                 :::8080                               :::*    
LISTEN     0      128                                 :::80                                 :::*    
LISTEN     0      128                                 :::22                                 :::*    
LISTEN     0      100                                ::1:25                                 :::*    
LISTEN     0      128                                ::1:6011                               :::*    

測試:

wordpress php-fpm.png

wordpress后臺 php-fpm.png

四、Centos 7 分布式lamp平臺,編譯安裝方式

環境規劃

IP software 平臺
172.18.4.60 httpd-event CentOS 6
172.18.4.61 php-fpm CentOS 6
172.18.4.62 mariadb CentOS 6

主機1配置httpd

編譯安裝httpd:
注意:httpd-2.4需要apr-1.4以上, apr-util-1.4以上版本的支持,而CentOS 6默認為apr-1.3.9,apr-util-1.3.9,所以像在CentOS 6上面使用httpd-2.4需要編譯安裝apr和apr-util.

  • 環境配置:安裝開發工具

# yum groupinstall "Server Platform Development" "Development tools" -y
# yum install pcre-devel openssl-devel -y

apr和apr-util的所有版本都可以在這里下載:https://archive.apache.org/dist/apr/
httpd所有版本:https://archive.apache.org/dist/httpd/

  • 編譯安裝apr

# wget http://pkgs.fedoraproject.org/repo/pkgs/apr/apr-1.5.0.tar.bz2/md5/cc93bd2c12d0d037f68e21cc6385dc31/apr-1.5.0.tar.bz2
# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
apr-1.5.0]# ./configure --prefix=/usr/local/apr
apr-1.5.0]# make && make install
  • 編譯安裝apr-util

# wget https://archive.apache.org/dist/apr/apr-util-1.5.2.tar.bz2
# tar xf apr-util-1.5.2.tar.bz2
# cd apr-util-1.5.2
apr-util-1.5.2]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
apr-util-1.5.2]# make&&make install
  • 編譯安裝httpd

# wget https://archive.apache.org/dist/httpd/httpd-2.4.10.tar.bz2
# tar xf httpd-2.4.10.tar.bz2
# cd httpd-2.4.10
httpd-2.4.10]# ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
httpd-2.4.10]# make -j 4 && make install
# vim /etc/profile.d/httpd
export PATH=/usr/local/apache24/bin:$PATH
# source /etc/profile.d/httpd
# cp apachectl /etc/init.d/httpd
# vim /etc/init.d/httpd
添加
   # chkconfig: 35 66 99
   # description: APACHE24
加入系統服務:
# chkconfig --add httpd
# chkconfig httpd on
# service httpd start
# ss -tnl|grep 80
LISTEN     0      128                      :::80                      :::*    
  • 查看驗證是否為event模型

event模塊.png

# httpd -M|grep mpm
mpm_event_module (shared)
  • 切換MPM模型

切換MPM模型.png

  • 測試httpd服務

編譯httpd測試.png

# service httpd restart
# httpd -M|grep mpm
mpm_prefork_module (shared)

主機2配置php-fpm

php源碼包下載地址:http://mirrors.sohu.com/php/

  • 環境配置:安裝開發工具

# yum groupinstall "Server Platform Development" "Development tools" -y
# yum install bzip2-devel libmcrypt-devel libxml2-devel mhash mhash-devel libmcrypt-devel libmcrypt -y
-y
  • 1、編譯php

# tar xf  php-5.4.40.tar.bz2

php-5.4.40]# ./configure --prefix=/usr/local/php5 --with-openssl --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --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 --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
php-5.4.40]# make && make install

php編譯安裝完成.png

  • 2、配置php
    為php提供配置文件:

# cp php.ini-production /etc/php.ini
  • 3、配置php-fpm

為php-fpm提供SysV init腳本,并將其添加至服務列表:

# 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 php-fpm on

為php-fpm提供配置文件:

# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf 

編輯php-fpm的配置文件:

# vim /usr/local/php5/etc/php-fpm.conf
配置fpm的相關選項為你所需要的值,并啟用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php5/var/run/php-fpm.pid

啟動php-fpm

# service php-fpm start

驗正

# ss -tnlp|grep 9000
LISTEN     0      128               127.0.0.1:9000                     *:*      users:(("php-fpm",37291,7),("php-fpm",37292,0),("php-fpm",37293,0),("php-fpm",37294,0),("php-fpm",37295,0),("php-fpm",37296,0))
#tar xf xcache-3.2.0.tar.bz2
# cd xcache-3.2.0
xcache-3.2.0]# /usr/local/php5/bin/phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
# make && make install

安裝后出現類似行:
Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/

  • 5、整合php和xcache:
    首先將xcache提供的樣例配置導入php.ini

# mkdir /etc/php.d
# cp xcache-3.2.0/xcache.ini /etc/php.d
編輯php.ini整合php和xcache
vim /etc/php.d/xcache.ini
extension = /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/xcache.so

說明:xcache.ini文件在xcache的源碼目錄中。

  • 6、測試xcache

A、httpd服務器端配置

開啟模塊和開啟加載虛擬主機配置文件

# vim /etc/httpd24/httpd.conf
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_module modules/mod_proxy.so
Include /etc/httpd24/extra/httpd-vhosts.conf

增加虛擬主機并重載配置

# vim /etc/httpd24/extra/httpd-vhosts.conf
DirectoryIndex index.php
<VirtualHost 172.18.4.60:80>
       ServerName www.test.com
       DocumentRoot "/usr/local/apache24/htdocs/"
       ProxyRequests Off
       ProxyPassMatch ^/(.*\.php)$  fcgi://172.18.4.61:9000/var/www/html/$1
</VirtualHost>
service httpd reload

B、php服務器端配置
修改php-fpm配置文件

修改其監聽IP地址為本機,允許訪問客戶端ip為webserver
vim /usr/local/php5/etc/php-fpm.conf
listen = 172.18.4.61:9000
listen.allowed_clients = 172.18.4.60
service php-fpm reload

在/var/www/html/下添加測試頁面文件

# vim /var/ww/html/index.php
<?php
       phpinfo();
?>

C、訪問測試

xcache 編譯測試.png

xcache編譯安裝測試.png

主機3配置mariadb

# useradd -r mysql
# chown -R mysql:mysql /mydata/data
  • 安裝并初始化數據庫

# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local//
# cd /usr/local/
# ln -sv mariadb-5.5.46-linux-x86_64/ mysqll
# cd mysql
# chown -R root.mysql ./*
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
  • 配置文件及服務腳本

# mkdir /etc/mysql/
# cp  support-files/my-large.cnf  /etc/mysql/my.cnf
# cp  support-files/mysql.server   /etc/init.d/mysqld
# chkconfig   --add  mysqld
修改配置文件,在[mysqld]選項下添加
# vim /etc/mysql/my.cnf
datadir = /mydata/data
innodb_file_per_table = ON
skip_name_resolve = ON
啟動服務
service mysqld start

配置應用

phpMyAdmin

  • mariadb服務器端配置
    授權phpmyadmin可訪問用戶

mysql> GRANT ALL ON *.* TO pmauser@'172.18.%.%' IDENTIFIED BY 'pmauser';
Query OK, 0 rows affected (0.06 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT user,host,password FROM mysql.user WHERE user='pmauser';
+---------+------------+-------------------------------------------+

| user    | host       | password                                  |
+---------+------------+-------------------------------------------+

| pmauser | 172.18.%.% | *6EA40CEE11598F7A411447B959594D78211DF9BB |
+---------+------------+-------------------------------------------+

1 row in set (0.00 sec)
安裝mbstring支持中文
# yum install php-mbstring -y
# 解壓程序包,創建軟連接(此處也可以直接移動改名)
# cd /usr/local/apache24/htdocs/
# unzip phpMyAdmin-4.4.14.1-all-languages.zip
# ln -sv phpMyAdmin-4.4.14.1-all-languages pma
‘pma’ -> ‘phpMyAdmin-4.4.14.1-all-languages’
# ll
total 12
-rw-r--r--  1 root root   45 Jun 12  2007 index.html
-rw-r--r--  1 root root   21 Apr 21 02:13 index.php
drwxr-xr-x 10 root root 4096 Sep  8  2015 phpMyAdmin-4.4.14.1-all-languages
lrwxrwxrwx  1 root root   34 Apr 21 04:07 pma -> phpMyAdmin-4.4.14.1-all-languages/

生成配置文件,修改配置文件

# cd /usr/local/apache24/htdocs/pma/
# cp config.sample.inc.php config.inc.php
# vim config.inc.php
# openssl rand -base64 20  #通過openssl生成一串隨機數
c1g/q0xtSyk6FKwlnME1ao4bg54=
# vim config.inc.php
$cfg['blowfish_secret'] = 'c1g/q0xtSyk6FKwlnME1ao4bg54';
$cfg['Servers'][$i]['host'] = '172.18.4.62';
# 注意:此處的host是mariadb服務器地址

2、配置虛擬主機

因為本地沒有dns服務器,所以做的基于端口的虛擬主機,不過不影響
# vim /etc/httpd24/extra/httpd-vhosts.conf
Listen 81
<VirtualHost 172.18.4.60:81>
       ServerName www.pma.com
       DocumentRoot "/usr/local/apache24/htdocs/pma"
       ProxyRequests Off
       ProxyPassMatch ^/(.*\.php)$  fcgi://172.18.4.61:9000/var/www/html/pma/$1
</VirtualHost>

重載httpd服務
# service httpd reload

  • php服務器端配置
    注意:此處的內容需與httpd服務器保持一直,其配置方法與httpd服務器方法相同,只是路徑不相同。

安裝mbstring支持中文

# yum install php-mbstring -y

# 解壓程序包,創建軟連接(此處也可以直接移動改名)
# cd /var/www/html/
# unzip phpMyAdmin-4.4.14.1-all-languages.zip
# ln -sv phpMyAdmin-4.4.14.1-all-languages pma
‘pma’ -> ‘phpMyAdmin-4.4.14.1-all-languages’

生成配置文件,修改配置文件
配置文件中的隨機數也應與httpd服務器中的隨機數相同
# cd /var/www/html/pma
# cp config.sample.inc.php config.inc.php
# vim config.inc.php
# openssl rand -base64 20  #通過openssl生成一串隨機數
c1g/q0xtSyk6FKwlnME1ao4bg54=
# vim config.inc.php
$cfg['blowfish_secret'] = 'c1g/q0xtSyk6FKwlnME1ao4bg54';
$cfg['Servers'][$i]['host'] = '172.18.4.62';
# 注意:此處的host是mariadb服務器地址
  • 訪問測試
    在第一臺mariadb主機上已經創建,并且授權
    測試用戶:pmauser
    測試密碼:pmauser

phpmyadmin最后.png

對于lamp就寫到這里了,感覺寫的不錯可以給點個贊。 
 作者:Ace QQ1257465991 Linux運維攻城獅一只 
 Q/A:如有問題請慷慨提出

原創文章,作者:Ace,如若轉載,請注明出處:http://www.www58058.com/15217

(0)
AceAce
上一篇 2016-04-25
下一篇 2016-04-25

相關推薦

  • SSH服務器實現telnet請求轉發

    本次實驗做的工作如下圖: 中間一臺CentOS6通過SSH轉發兩邊兩臺CentOS7的telnet通信。 首先,在右側CentOS7上安裝telnet服務 [root@Shining ~]# yum install -y telnet telnet-server 啟動telnet服務 [root@Shining ~]# systemctl start tel…

    Linux干貨 2016-12-04
  • 用戶組和權限管理相關作業

    1創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser     [root@ali ~]# useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/test…

    Linux干貨 2016-08-02
  • N22-南京-修 第一周作業

    一、計算機的組成     計算機由硬件系統和軟件系統組成;         硬件系統:運算器、控制器、存儲器、輸入設備、輸出設備; (運算器、控制器):統稱為CPU,它是一個具有特定功能的芯片,通過其內部含有的微指令集對從內存中讀取來的數據…

    Linux干貨 2016-08-15
  • Linux基礎之正則表達式,用戶、組管理

    Linux基礎—正則表達式 正則表達式簡單來說就是一種行字符串處理的方式,通過一些特殊符號的輔助,可達到搜索、刪除、替換等某些特定字符串的處理方式 通配符(Globbing) 通配符與元字符類似,通配符主要用于文件名的匹配,而元字符則主要用在字符串的匹配上; 下面介紹幾種常用的通配符: * 表示匹配任意位數的任意字符 ? 表示…

    Linux干貨 2016-10-03
  • 馬哥教育網絡班19期第二周課程練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cd:切換目錄命令實例  cd [dirctory] 切換目錄  cd .. 返回上一級目錄  cd –  來回切換  cd ~  切換到家目…

    Linux干貨 2016-06-19
  • 計算機組成及Linux初識

    拼一載春秋,搏一生無悔 1. 計算機簡介 2. Linux發行版簡介 3. Linux哲學思想簡介 4. Linux系統上獲取命令幫助 5. Linux「12」個基礎命令簡介 6. Linux發行版基礎目錄及功能簡介 1.計算機簡介 電子計算機(英語:computer),亦稱電腦,是一種利用「電子學…

    Linux干貨 2016-10-27
欧美性久久久久