網絡拓撲圖
網絡環境
Web服務器
系統/內核/IP: CentOS release 6.6 (Final) uname -r
2.6.32-504.el6.x86_64eth0: 172.16.6.61 ech1 : 192.168.6.61
Apache版本 : Apache/2.4.10
Php應用服務器
系統/內核/IP: CentOS release 6.6 (Final) uname -r
2.6.32-504.el6.x86_64eth0: 192.168.6.62
Php : php-5.4.40
xcache版本:xcache-3.2.0
數據庫版本:mariadb-5.5.43-linux-x86_64.tar.gz
數據庫服務器
系統/內核/IP: CentOSrelease 6.6 (Final) uname -r
2.6.32-504.el6.x86_64eth1: 192.168.6.63
數據庫版本:mariadb-5.5.43-linux-x86_64.tar.gz
mysql服務器
#添加運行mysql的用戶和用戶組
groupadd -g 306 mysql
useradd -r -u 306 -g 306 -s/sbin/nologin mysql
id mysql
#uid=306(mysql)gid=306(mysql) groups=306(mysql)
安裝mariadb
tar xvfmariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
#創建符號鏈接
ln -smariadb-5.5.43-linux-x86_64 mysql
ls -lh mysql
#lrwxrwxrwx 1 root root 27May 3 19:54 mysql ->mariadb-5.5.43-linux-x86_64
#爲mysql提供服務器控制腳本
cp support-files/mysql.server/etc/init.d/mysqld
chmod u+X /etc/init.d/mysqld
#授權mysql 爲mysql數據目錄的的屬主
chown -R root.mysql/usr/local/mariadb-5.5.43-linux-x86_64/
chown mysql.root /data/mydata
初始化MySQL數據庫
/usr/local/mysql/scripts/mysql_install_db--user=mysql --datadir=/data/mydata/
#爲mysql提供主配置文件
cd mysql/
cpsupport-files/my-large.cnf /etc/my.cnf
#修改my.cnf 添加數據目錄的位置
[root@localhost mysql]# vim/etc/my.cnf
....
[mysqld]
datadir = /data/mydata
...
啓動mysql
/etc/init.d/mysqld start
添加mysqld至服務列表
# chkconfig --add mysqld
# chkconfig mysqld on
php應用服務器
安裝php
php應用服務器需要安裝MySQL 安裝方法如 mysql服務器一樣 #也可以使用yum安裝mysql
安裝開發環境
yum groupinstall"Development tools" "Server Platform Development""Desktop Platform Development" "Debug Tools" -y
PHPrpm包的依賴關係
yum install bzip2-devel -y
yum install -ylibmcrypt-devel
安裝php
tar xvf php-5.4.40.tar.bz2
cd php-5.4.40
./configure --prefix=/usr/local/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 \
--enable-fpm \
--with-mcrypt \
--with-config-file-path=/etc\
--with-config-file-scan-dir=/etc/php.d\
--with-bz2
make && make install
說明:
1、這裏爲了支持apache的worker或event這兩個MPM,編譯時使用了--enable-maintainer-zts選項。
2、如果使用PHP5.3以上版本,爲了鏈接MySQL數據庫,可以指定mysqlnd,這樣在本機就不需要先安裝MySQL或MySQL開發包了。mysqlnd從php5.3開始可用,可以編譯時綁定到它(而不用和具體的MySQL客戶端庫綁定形成依賴),但從PHP 5.4開始它就是默認設置了。
# ./configure--with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
爲php提供配置文件 #cp 解壓的源代碼樹下的php.ini-production
cp php.ini-production/etc/php.ini
爲php-fpm提供配置文件
cd /usr/local/php/etc/
cp -a php-fpm.conf.defaultphp-fpm.conf
修改php-fpm.conf
...
listen = 192.168.6.62:9000 #監聽在外網地址接受前端httpd服務器的請求
...
爲php-fpm提供服務控制腳本,並將其添加至服務列表
cpsapi/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
/etc/init.d/php-fpm start
驗正php進程是否啓動成功
# ps aux | grep php-fpm #用於查看php進程
# netstat -tnlp | grep php-fpm #用於查看php是否監聽在響應的套接字上
httpd服務
#安裝apr
tar xvf apr-1.5.0.tar.bz2
cd apr-1.5.0
./configure--prefix=/usr/local/apr
make && make install
cd ..
安裝apr-util
tar xvfapr-util-1.5.3.tar.bz2
cd apr-util-1.5.3
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
cd ../
安裝httpd-2.4.10
#解決pcre的依賴關係
yum install pcre-devel –y
tar xvf httpd-2.4.10.tar.bz2
cd httpd-2.4.10
./configure--prefix=/usr/local/httpd24 --enable-so --enable-ssl --enable-cgi--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
make && make install
cd ../
加載代理模塊配置修改httpd.conf
LoadModule proxy_modulemodules/mod_proxy.so
LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so
#配置虛擬主機
修改httpd.conf
/usr/local/httpd24/conf/httpd.conf
# Virtual hosts
Includeconf/extra/httpd-vhosts.conf
#配置httpd-vhosts.conf
<Directory"/data/web">
Options none
AllowOverride none
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "/data/web/a.com"
ServerName www.a.com
ServerAlias a.com
ErrorLog "logs/a.com-error_log"
CustomLog "logs/b.com-access_log"common
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$fcgi://192.168.6.62:9000/data/web/a.com/$1
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/data/web/b.com"
ServerName www.b.com
ServerAlias b.com
ErrorLog "logs/b.com-error_log"
CustomLog "logs/b.com-access_log"common
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$fcgi://192.168.6.62:9000/data/web/b.com/$1
</VirtualHost>
#分別在web服務器 和 php應用服務上創建網站根目錄
mkdir /data/web/{a.com,b.com}
#在mysql服務器創建用戶並授權
MariaDB [(none)]> createdatabase pmdb;
Query OK, 1 row affected(0.00 sec)
MariaDB [(none)]> create databasedzdb;
Query OK, 1 row affected(0.00 sec)
MariaDB [(none)]> grantall on pmdb.* to 'pmuser'@'192.168.662'identified by '123456';
Query OK, 0 rows affected(0.00 sec)
MariaDB [(none)]> grantall on dzdb.* to 'dzuser'@'192.168.6.%'identified by '123456';
Query OK, 0 rows affected(0.00 sec)
MariaDB [(none)]> flushprivileges;
Query OK, 0 rows affected(0.00 sec)
在php應用服務器上提供php連接mysql的測試頁
cat >/data/web/a.com/testmysql.php <<EOP
<?php
$link =mysql_connect('192.168.6.63','pmuser','123456');
if ($link)
echo " pmuser Success...";
else
echo "Failure...";
mysql_close();
?>
<<EOP
cat >/data/web/b.com/testmysql.php <<EOP
<?php
$link =mysql_connect('192.168.6.63','dzuser','123456');
if ($link)
echo " dzuser Success...";
else
echo "Failure...";
mysql_close();
?>
<<EOP
訪問
安裝xcache
tar xvf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
/usr/local/php/bin/phpize
./configure --enable-xcache -with-php-config=/usr/local/php/bin/php-config
make && make install
#在編譯安裝最後
###
#Installing sharedextensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
###
提供xcache.ini
mkdir /etc/php.d
cp xcache.ini /etc/php.d/ #在xcache源代碼書目錄下
修改xcache.ini
[[email protected]]# vim /etc/php.d/xcache.ini
修改extension = xcache.so 爲
extension =/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
訪問測試
部署 phpmyadmin到www.a.com
部署 discuz到www.b.com