CentOS下主機分離搭建基於FCGI的LAMP

2021-07-24 07:57:29 字數 4280 閱讀 2265

一、要求

centos 7, lamp (php-fpm);

(1) 三者分離於三颱主機;

(2) 乙個虛擬主機用於提供phpmyadmin;另乙個虛擬主機用於提供wordpress;

(3) xcache

規劃

第一台 192.168.1.112

httpd伺服器

第二台 192.168.1.113

php-fpm-5.4.16-36.el7_1.x86_64

php-fpm伺服器

第三台 192.168.1.114

mariadb-5.5.47-1.el7_2.x86_64

mariadb伺服器

全部關閉selinux,iptables

實踐

基於fcgi模式安裝包組

1.centos 6系列

php-5.3.2及以前版本:預設不支援fpm機制;需要自行打補丁並編譯安裝;

httpd-2.2:預設不支援fcgi協議,需要自行編譯fcgi模組;

解決方案:編譯安裝httpd-2.4, php-5.3.3及以上版本;

2.centos 7系列

3.配置修改

3.1 httpd伺服器

3.1.1開啟瀏覽器192.168.1.112可以看到apache測試頁面

3.1.2配置修改

配置檔案/etc/httpd/conf/httpd.conf    /etc/httpd/conf.d/*.conf

這裡在httpd.conf或在conf.d下新建乙個.conf結尾的配置檔案均可。

directoryindex index.php #主頁為index.php

proxyrequests off #關閉正向解析

proxypassmatch ^/(.*\.php)$  fcgi:  #以.php結尾的都**至php-fpm伺服器下的/var/www/html下

/var/www/html可以自己定義,前提是在php-fpm伺服器上要建立相應的目錄       

3.2 php-fpm伺服器與httpd伺服器連線

3.2.1配置檔案 /etc/php-fpm.d/www.conf

listen = 192.168.1.113:9000 #監聽的本機的位址和埠

listen.allowed_clients = 192.168.1.112 #允許httpd伺服器**過來

此時就將httpd和php-fpm伺服器建立連線了

3.2.2測試一下

在php-fpm伺服器的/var/www/html目錄下新建乙個index.php內容如下 

<?php    

phpinfo();    

?>

此時再進入192.168.1.112即可看到php-fpm的詳細資訊

3.3將mariadb與php-fpm連線

3.3.1配置mariadb伺服器

在mariadb伺服器上為php-fpm伺服器新增乙個可以訪問的使用者

mariadb>grant all on *.* to test@'192.168.%.%' identified by 'test'; 

mariadb> flush privileges;

在 [mysqld]下方新增

skip_name_resolve = on
3.3.2配置php-fpm伺服器

安裝php-mysql驅動

yum install php-mysql -y
測試一下php-fpm伺服器和mariadb伺服器

編輯php-fpm伺服器下的/var/php/index.php

<?php 

$con = mysql_connect('192.168.1.114','test','test');

if ($con)

echo "ok";

else

echo "failed";    

phpinfo();

?>

再次開啟192.168.1.112**可以看到

至此,已經連線完畢。

接下來搭建wordpress、phpmyadmin和xcache

規劃

第一台192.168.1.112

httpd伺服器

第二台192.168.1.113

php-fpm伺服器

第三台192.168.1.114

mariadb伺服器

1、安裝xcache(在epel源中)

[root@localhost html]# yum install -y php-xcache

[root@localhost html]# systemctl reload php-fpm

2、安裝phpmyadmin(在php-fpm伺服器中)

[root@localhost html]# unzip phpmyadmin-4.0.5-all-languages.zip -d pma
為phpmyadmin建立資料庫和資料庫使用者名稱(在資料庫伺服器中執行)

mysql>create database pma;  # 建立乙個名為pma的資料庫,後面的;號不能省略

mysql> grant all on pma.* to 使用者名稱@localhost identified by '密碼';

配置

[root@localhost html]# cd pma

[root@localhost pma]# cp config.sample.inc.php config.inc.php

[root@localhost pma]# vim config.inc.php

$cfg['blowfish_secret'] = 'a8b7c6d';

$cfg['servers'][$i]['host'] = '192.168.1.106'

[root@localhost pma]# yum -y install php-mbstring #若提示mbstring錯誤,安裝即可。

3、安裝wordpress(在php伺服器中)

為wordpress建立資料庫和資料庫使用者名稱(資料庫伺服器操作)

mysql>create database wordpress;  # 建立乙個名為wordpress的資料庫,後面的;號不能省略

mysql> grant all on wordpress.* to 使用者名稱@localhost identified by '密碼';

tar xf /path/to/wordpress.tar.gz /var/www/html/
進入此目錄,將wp-config-sample.php 複製乙份並命名為wp-config.php。(這是wordpress的配置模版)

修改wp-config.php檔案

// ** mysql 設定 - 具體資訊來自您正在使用的主機 ** //

/** wordpress資料庫的名稱 */

define('db_name', 'wordpress');

/** mysql資料庫使用者名稱 */

define('db_user', '使用者名稱');

/** mysql資料庫密碼 */

define('db_password', '密碼');

本文出自 「我的學習筆記」 部落格,請務必保留此出處

基於 CentOS 搭建 Discuz 論壇

lamp 是 linux apache mysql 和 php 的縮寫,是 discuz 論壇系統依賴的基礎執行環境。我們先來準備 lamp 環境 使用yum安裝 mysql yum install mysql server y安裝完成後,啟動 mysql 服務 service mysqld res...

基於Centos搭建 Discuz 論壇

系統要求 centos 6.8 64 位作業系統 lamp 是 linux apache mysql 和 php 的縮寫,是 discuz 論壇系統依賴的基礎執行環境。我們先來準備 lamp 環境 使用yum安裝 mysql yum install mysql server y 安裝完成後,啟動 m...

基於CentOS搭建FTP檔案服務

yum install vsftpd yservice vsftpd start 啟動後,可以看到系統已經監聽了 21埠netstat nltp grep 21顯示如下tcp00 0.0.0.0 21 0.0.0.0 listen 1825 vsftpd此時,訪問 ftp 自己ip 可瀏覽機器上的 ...