搭建LNMP環境,和Tomcat+Java環境,默認80端口給Nginx,Tomcat使用8080端口。javascript
先在一臺機器上部署好所有環境,而後經過rsync同步整個環境。php
使用expect腳本以前安裝一些通用工具,yum -y install expect vim-enhanced epel-release libmcrypt-devel libmcryptcss
[root@localhost ~]# vim mvPasswd.expect #!/usr/bin/expect set host [lindex $argv 0] set passwd "原密碼" set password [lindex $argv 1] spawn ssh root@$host expect { "yes/no" { send "yes\r"} "password:" { send "$passwd\r" } } expect "]*" send "passwd\r" expect ":" send "$password\r" expect ":" send "$password\r" expect "]*" send "exit\r" interact [root@localhost ~]# chmod a+x mvPasswd.expect
[root@localhost ~]# vim mvPasswd.sh #!/bin/bash for ip in `cat $1` do ./mvPasswd.expect $ip $2 done # 第一個參數存儲ip列表的文件,第二個參數是須要修改的密碼 [root@localhost ~]# sh mvPasswd.sh /root/ip.txt "u7wtiYT22g"
[root@localhost ~]# vim cmd.expect #!/usr/bin/expect set user [lindex $argv 0] # 系統用戶 set host [lindex $argv 1] # 服務器地址 set passwd [lindex $argv 2] # 密碼 set cm [lindex $argv 3] # 須要執行的命令 spawn ssh $user@$host set timeout -1 expect { "yes/no" { send "yes\r"} "password:" { send "$passwd\r" } } expect "]#" send "$cm\r" expect "]#" send "exit\r" interact [root@localhost ~]# chmod a+x cmd.expect [root@localhost ~]# vim cmd.sh
#!/bin/bash user=$2 password=$3 cm=$4 for ip in `cat $1` do ./cmd.expect "$user" "$ip" "$password" "$cm" done ## 參數1是存儲ip列表的文件路徑 ## 參數2是用戶名 ## 參數3是密碼 ## 參數4須要執行的命令
[root@localhost ~]# sh cmd.sh "/root/ip.txt" "root" "u7wtiYT22g" "init 0"
yum -y install epel-release wget gcc gcc-c++ libmcrypt-devel libmcrypt libcurl-devel libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel; cd /usr/local/src/; wget http://nginx.org/download/nginx-1.8.0.tar.gz; tar -zxvf nginx-1.8.0.tar.gz; cd nginx-1.8.0; ./configure --prefix=/usr/local/nginx --with-http_ssl_module; echo $? > /root/downloadNginx.log; make && make install; echo $? >> /root/downloadNginx.log
vim /etc/init.d/nginx 而後將這網址裏的文件內容複製進去: https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx
chkconfig --add nginx chkconfig nginx on
進入nginx的conf目錄:cd /usr/local/nginx/confhtml
備份一下原配置文件 :mv nginx.conf nginx.conf.bakjava
從新編輯vim nginx.conf 寫入如下網址內容。mysql
https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf
檢查配置文件:/usr/local/nginx/sbin/nginx -tlinux
啓動服務 :service nginx startnginx
檢查進程: ps aux |grep nginxc++
檢查80端口監聽:netstat -lntp |grep 80git
curl localhost有網頁內容輸出說明成功。
安裝mysql,這是由於php須要用到mysql的驅動庫,因此只須要安裝便可,不須要進行配置:
cd /usr/local/src/; yum install -y epel-release wget perl-Module-Install.noarch libaio*; wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz; tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz; mv mysql-5.6.39-linux-glibc2.12-x86_64 ../mysql; cd /usr/local/mysql; mkdir /data/; useradd mysql; ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql; echo $? > /root/downloadMySQL.log
cd /usr/local/src/; yum -y install epel-release wget gcc gcc-c++ libmcrypt-devel libmcrypt libcurl-devel libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel; wget http://cn2.php.net/distributions/php-5.6.32.tar.gz; tar -zxvf php-5.6.32.tar.gz; cd php-5.6.32/; ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --with-fpm-user=nginx --with-fpm-group=nginx --with-mysql --with-pdo-mysql --with-mysqli --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir --enable-xml --with-mcrypt --enable-gd-native-ttf --enable-exif --with-pear --with-iconv-dir --enable-ftp --enable-soap --with-bz2 --with-curl --with-mhash --with-openssl --with-gd --enable-mysqlnd; echo $? > /root/downloadPHP.log; make && make install; echo $? >> /root/downloadPHP.log
cp php.ini-production /usr/local/php-fpm/etc/php.ini
[global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log [www] listen = /tmp/php-fcgi.sock listen.mode = 666 user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024
cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod 755 /etc/init.d/php-fpm chkconfig --add php-fpm chkconfig php-fpm on
useradd -s /sbin/nologin php-fpm
/usr/local/php-fpm/sbin/php-fpm -t [06-Aug-2018 21:57:51] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@xiangmu1 php-5.6.32]# service php-fpm start Starting php-fpm done [root@xiangmu1 php-5.6.32]# ps aux |grep php-fpm
vim /usr/local/nginx/html/1.php
<?php echo "This Test Page!" ?>
curl localhost/1.php This Test Page!
vim /usr/local/nginx/conf/nginx.conf
*下面的要刪除掉* server { listen 80; server_name localhost; index index.html index.htm index.php; root /usr/local/nginx/html; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; } }
gzip_http_version 1.1; gzip_types text/plain application/x-javascript text/css text/htm application/xml; *須要增長* include vhost/*.conf; }
[root@aminglinux-01 conf]# cd /usr/local/nginx/conf/vhost [root@aminglinux-01 vhost]# vim default.conf
server { listen 80 default_server; server_name aaa.com; index index.html index.htm index.php; root /data/wwwroot/default; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name; } }
[root@aminglinux-01 vhost]# mkdir -p /data/wwwroot/default [root@aminglinux-01 vhost]# cd /data/wwwroot/default/
vim index.html 寫入 This is the default site.
[root@aminglinux-01 default]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@aminglinux-01 conf]# curl localhost This is the default site.
jdk的下載地址要臨時去官網獲取,官網下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下載到/usr/local/src目錄下: http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
cd /usr/local/src/ ;wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz ; tar -zxvf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_181/ /usr/local/jdk1.8
JAVA_HOME=/usr/local/jdk1.8/ JAVA_BIN=/usr/local/jdk1.8/bin JRE_HOME=/usr/local/jdk1.8/jre PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
執行生效 source /etc/profile
執行java -version 顯示以下內容說明配置正確
[root@xiangmu1 src]# java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
cd /usr/local/src ; wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz ; tar -zxvf apache-tomcat-8.5.32.tar.gz ; mv apache-tomcat-8.5.32 /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh # 啓動服務 /usr/local/tomcat/bin/shutdown.sh # 關閉服務
netstat -lntp ps aux |grep java
echo "/usr/local/tomcat/bin/startup.sh" >> /etc/rc.d/rc.local chmod a+x /etc/rc.d/rc.local //默認該文件沒有x權限,因此須要加一下
#!/usr/bin/expect set host [lindex $argv 0] set passwd [lindex $argv 1] spawn rsync -av / root@$host:/ expect { "yes/no" { send "yes\r"} "password:" { send "$passwd\r" } } interact ## 調用腳本 #!/bin/bash passwd=$2 for ip in `cat $1` do ./syncAll.expect $ip $passwd done
cd /usr/local/src/; yum install -y epel-release wget perl-Module-Install.noarch libaio*; wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz; tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz; mv mysql-5.6.39-linux-glibc2.12-x86_64 ../mysql; cd /usr/local/mysql; mkdir /data/; useradd mysql; ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql; echo $? > /root/downloadMySQL.log
# 拷貝配置文件 [root@localhost ~]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf [root@localhost ~]# vim /etc/my.cnf [mysqld] datadir=/data/mysql socket=/tmp/mysql.sock # 拷貝啓動腳本 [root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 而後定義basedir和datadir的路徑 [root@localhost ~]# vim /etc/init.d/mysqld basedir=/usr/local/mysql datadir=/data/mysql # 將mysql加入服務列表裏面去,並設置爲開機啓動: [root@localhost ~]# chkconfig --add mysqld [root@localhost ~]# chkconfig mysqld on
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile //將/usr/local/mysql/bin 加入環境變量 執行:source /etc/profile
登錄 mysql -uroot -p
錯誤解決:
若是出現密碼明明是正確的可是卻沒法登錄報錯的狀況:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
這是由於MySQL中默認存在一個用戶名爲空的帳戶,只要在本地,能夠不用輸入帳號密碼便可登陸到MySQL中。mysql在驗證用戶登錄的時候,首先是驗證host列,若是host列在驗證user列,再password列,而如今按照我以前的鏈接語句:按照host列找到爲空的那列(空匹配全部用戶名),因此匹配到了這條記錄,而後發現這條記錄的密碼爲空,而個人語句裏面有密碼,那麼就會報錯。
解決辦法:刪除匿名用戶:
首先修改my.cnf,vim /etc/my.cnf增長如下語句跳過密碼驗證:
skip-grant-tables
mysql> use mysql; mysql> delete from user where user=''; Query OK, 2 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
[root@localhost ~]$ mysql -uroot -p Enter password: 123456 Welcome to the MySQL monitor. Commands end with ; or \g.
所有機器都安裝好mysql後開始配置主從
修改my.cnf配置文件:
[root@localhost ~]$ vim /etc/my.cnf [mysqld] server-id=146 log_bin=master-bin [root@localhost ~]$ service mysqld restart # 修改完配置文件後,重啓mysqld服務 [root@localhost ~]$ ls /data/mysql # 看看是否多瞭如下兩個文件 master-bin.000001 master-bin.index
grant replication slave on *.* to 'repl'@'192.168.159.40' identified by '123456'; grant replication slave on *.* to 'repl'@'192.168.159.50' identified by '123456';
mysql -urepl -h"192.168.159.30" -p'123456'
flush tables with read lock;
mysql> show master status; +-------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +-------------------+----------+--------------+------------------+-------------------+ | master-bin.000001 | 120 | | | | +-------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
[root@localhost ~]$ vim /etc/my.cnf [mysqld] server-id=147 [root@localhost ~]$ service mysqld restart
[root@localhost ~]$ mysql -uroot -p'123456' mysql> stop slave; mysql> change master to master_host='192.168.159.30', master_user='repl', master_password='123456', master_log_file='master-bin.000001', master_log_pos=120; mysql> start slave;
mysql> show slave status\G
Slave_IO_Running: Yes Slave_SQL_Running: Yes
# master mysql> unlock tables; mysql> create database blog; # 建立一個數據庫 mysql> use blog; mysql> create table users( uid int primary key, uname varchar(100), sex varchar(5)); mysql> insert into users(uid,uname,sex) values(1,'Jon','man');
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | blog | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec) mysql> use blog; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select * from users; +-----+-------+------+ | uid | uname | sex | +-----+-------+------+ | 1 | Jon | man | +-----+-------+------+ 1 row in set (0.00 sec) mysql>
cd /usr/local/src/ ;wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz ; tar -zxvf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_181/ /usr/local/jdk1.8
JAVA_HOME=/usr/local/jdk1.8/ JAVA_BIN=/usr/local/jdk1.8/bin JRE_HOME=/usr/local/jdk1.8/jre PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
執行生效 source /etc/profile
執行java -version 顯示以下內容說明配置正確
[root@xiangmu1 src]# java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
下載並解壓到/usr/local目錄下
cd /usr/local/src/ wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz mv mycat/ /usr/local/ ls /usr/local/mycat/ bin catlet conf lib logs version.txt
vim /usr/local/mycat/conf/server.xml
# root用戶對邏輯數據庫ultrax,DedeCMS,zrlog具備增刪改查的權限 <user name="root"> <property name="password">123456</property> <property name="schemas">ultrax,DedeCMS,zrlog</property> </user> # discuz用戶對邏輯數據庫ultrax具備增刪改查的權限 <user name="discuz"> <property name="password">123456</property> <property name="schemas">ultrax</property> </user> # dedecms用戶對邏輯數據庫DedeCMS具備增刪改查的權限 <user name="dedecms"> <property name="password">123456</property> <property name="schemas">DedeCMS</property> </user> # zrlog用戶對邏輯數據庫zrlog具備增刪改查的權限 <user name="zrlog"> <property name="password">123456</property> <property name="schemas">zrlog</property> </user> # 該用戶對邏輯數據庫ultrax,DedeCMS,zrlog僅有隻讀的權限 <user name="user"> <property name="password">123456</property> <property name="schemas">ultrax,DedeCMS,zrlog</property> <property name="readOnly">true</property> </user>
把自帶的配置文件重命名,做爲備份
mv /usr/local/mycat/conf/schema.xml /usr/local/mycat/conf/schema.xml_bak
新建配置文件
vim /usr/local/mycat/conf/schema.xml
配置內容以下
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="ultrax" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn1" /> <schema name="DedeCMS" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn2" /> <schema name="zrlog" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn3" /> <dataNode name="dn1" dataHost="localhost1" database="ultrax" /> <dataNode name="dn2" dataHost="localhost1" database="DedeCMS" /> <dataNode name="dn3" dataHost="localhost1" database="zrlog" /> <dataHost name="localhost1" maxCon="2000" minCon="1" balance="3" writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="192.168.159.30:3306" user="root" password="123456"> <!-- can have multi read hosts --> <readHost host="hostS1" url="192.168.159.40:3306" user="root" password="123456" /> #<readHost host="hostS2" url="192.168.159.50:3306" user="root" password="123456" /> </writeHost> </dataHost> </mycat:schema>
<?xml version="1.0"?> xml文件格式; <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> 文件標籤屬性; <mycat:schema xmlns:mycat="http://io.mycat/"> Mycat起始標籤 配置邏輯庫,與server.xml指定庫名保持一致,綁定數據節點dn1; <schema name="testdb" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn1"></schema> 添加數據節點dn1,設置數據節點host名稱,同時設置數據節點真實database爲discuz; <dataNode name="dn1" dataHost="localhost1" database="discuz" /> 數據節點主機,綁定數據節點,設置鏈接數及均衡方式、切換方法、驅動程序、鏈接方法; <dataHost name="localhost1" maxCon="2000" minCon="1" balance="3" writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> Balance均衡策略設置: 1) balance=0 不開啓讀寫分離機制,全部讀操做都發送到當前可用writehost; 2) balance=1 所有的readHost與stand by writeHost參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,而且M1與 M2互爲主備),正常狀況下,M2,S1,S2都參與select語句的負載均衡 3) balance=2 全部讀操做都隨機的在readhost和writehost上分發; 4) balance=3 全部讀請求隨機的分發到wiriterHost對應的readhost執行,writerHost不負擔讀壓力。 writeType 寫入策略設置 1) writeType=0, 全部寫操做發送到配置的第一個writeHost; 2) writeType=1,全部寫操做都隨機的發送到配置的writeHost; 3) writeType=2,不執行寫操做。 switchType 策略設置 1) switchType=-1,表示不自動切換; 2) switchType=1,默認值,自動切換; 3) switchType=2,基於MySQL 主從同步的狀態決定是否切換; 4) switchType=3,基於MySQL galary cluster的切換機制(適合集羣)(1.4.1),心跳語句爲 show status like 'wsrep%'。 檢測後端MYSQL實例,SQL語句; <heartbeat>select user()</heartbeat> 指定讀寫請求,同時轉發至後端MYSQL真實服務器,配置鏈接後端MYSQL用戶名和密碼(該用戶名和密碼爲MYSQL數據庫用戶名和密碼); <writeHost host="hostM1" url="192.168.200.146:3306" user="root" password="123456"> <readHost host="hostS1" url="192.168.200.147:3306" user="root" password="123456" /> <readHost host="hostS2" url="192.168.200.148:3306" user="root" password="123456" /> </writeHost> </dataHost> 數據主機標籤; </mycat:schema> mycat結束標籤;
[root@localhost ~]$ /usr/local/mycat/bin/mycat start [root@localhost ~]$ netstat -lntp tcp6 0 0 :::9066 :::* LISTEN 6746/java tcp6 0 0 :::8066 :::* LISTEN 6746/java # 注意:若是沒有這兩個端口沒有啓動,查看java環境是否生效。 # 8066是用於web鏈接mycat. # 9066是用於SA|DBA管理端口.
[root@localhost ~]$ mysql -h'192.168.159.100' -udiscuz -p'123456' -P'8066' mysql> show databases; +----------+ | DATABASE | +----------+ | ultrax | +----------+ 1 row in set (0.01 sec) mysql>
能夠正常登錄,也能查看到數據庫。
使用root用戶登陸看看是否能查看到全部的數據庫
mysql -h'192.168.159.100' -uroot -p'123456' -P'8066'
mysql> show databases; +----------+ | DATABASE | +----------+ | DedeCMS | | ultrax | | zrlog | +----------+ 3 rows in set (0.00 sec) mysql>
mysql> show @@datasource; +----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+ | DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD | +----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+ | dn1 | hostM1 | mysql | 192.168.159.30 | 3306 | W | 0 | 0 | 2000 | 0 | 0 | 0 | | dn1 | hostS1 | mysql | 192.168.159.40 | 3306 | R | 0 | 0 | 2000 | 0 | 0 | 0 | | dn3 | hostM1 | mysql | 192.168.159.30 | 3306 | W | 0 | 0 | 2000 | 0 | 0 | 0 | | dn3 | hostS1 | mysql | 192.168.159.40 | 3306 | R | 0 | 0 | 2000 | 0 | 0 | 0 | | dn2 | hostM1 | mysql | 192.168.159.30 | 3306 | W | 0 | 0 | 2000 | 0 | 0 | 0 | | dn2 | hostS1 | mysql | 192.168.159.40 | 3306 | R | 0 | 0 | 2000 | 0 | 0 | 0 | +----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+ 6 rows in set (0.00 sec)
[root@localhost ~]$ mysql -uroot -p'123456' mysql> create database ultrax default character set utf8; mysql> create database DedeCMS default character set utf8; mysql> create database zrlog default character set utf8; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | DedeCMS | | mysql | | performance_schema | | test | | ultrax | | zrlog | +--------------------+ 7 rows in set (0.00 sec) mysql>
完成以上操做後主從複製和讀寫分離就弄好了,接下來就是搭建web服務器,而後進行對接便可。
而後回到web服務器上修改discuz的配置文件。將dbhost,dbuser,dbpw,dbname中的參數改成和mycat一一對應。實現讀寫分離:
[root@localhost /data/wwwroot/discuz.com]$ vim /data/wwwroot/discuz.com/config/config_global.php // ---------------------------- CONFIG DB ----------------------------- // $_config['db']['1']['dbhost'] = '192.168.159.100:8066'; $_config['db']['1']['dbuser'] = 'discuz'; $_config['db']['1']['dbpw'] = '123456'; $_config['db']['1']['dbcharset'] = 'utf8'; $_config['db']['1']['pconnect'] = '0'; $_config['db']['1']['dbname'] = 'ultrax'; $_config['db']['1']['tablepre'] = 'pre_'; $_config['db']['slave'] = ''; $_config['db']['common']['slave_except_table'] = ''; ## 修改完成後重啓nginx [root@localhost /data/wwwroot/discuz.com]$ service nginx restart Restarting nginx (via systemctl): [ 肯定 ]
這一步也是和搭建環境同樣,先在一臺機器上搭建好,而後再同步到其餘機器上。
cd /usr/local/nginx/conf/vhost vim discuz.com.conf
server { listen 80; server_name www.discuz.com; index index.html index.htm index.php; root /data/wwwroot/discuz.com; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/discuz.com$fastcgi_script_name; } }
mkdir -p /data/wwwroot/discuz.com/
cd /data/wwwroot/discuz.com/ vim index.php
<?php echo "This Test Page!" ?>
文件內容和測試方式都是配置以上配置默認虛擬主機的過程同樣
每配置一個虛擬主機站點都要重啓nginx服務
Discuz的壓縮包能夠在官網下載本身須要的版本 http://www.discuz.net/forum.php
[root@xiangmu1 ~]# cd /usr/local/src/ [root@xiangmu1 src]# wget http://download.comsenz.com/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip
[root@localhost /usr/local/src]# unzip Discuz_X3.3_SC_UTF8.zip
[root@localhost /usr/local/src]# ls Discuz_X3.3_SC_UTF8.zip readme upload utility
[root@xiangmu1 src]# rm -f /data/wwwroot/discuz.com/index.php [root@xiangmu1 src]# ls /data/wwwroot/discuz.com/ [root@xiangmu1 src]# cp -r upload/* /data/wwwroot/discuz.com/ [root@xiangmu1 src]# ls !$ ls /data/wwwroot/discuz.com/ admin.php archiver cp.php favicon.ico home.php member.php portal.php source uc_client api config crossdomain.xml forum.php index.php misc.php robots.txt static uc_server api.php connect.php data group.php install plugin.php search.php template userapp.php [root@xiangmu1 src]#
192.168.200.152 www.discuz.com
把路徑都放在一個文本文件中
[root@localhost ~]# cd /data/wwwroot/discuz.com/ [root@localhost /data/wwwroot/discuz.com]# vim fileList.txt # 先把路徑都放在一個文本文件中 ./config ./data ./data/cache ./data/avatar ./data/plugindata ./data/download ./data/addonmd5 ./data/template ./data/threadcache ./data/attachment ./data/attachment/album ./data/attachment/forum ./data/attachment/group ./data/log ./uc_client/data/cache ./uc_server/data/ ./uc_server/data/cache ./uc_server/data/avatar ./uc_server/data/backup ./uc_server/data/logs ./uc_server/data/tmp uc_server/data/view
寫個腳本調用上面的文件
[root@localhost /data/wwwroot/discuz.com]# vim filePermission.sh #!bin/bash # 寫個簡單的循環腳本就搞定了 for file in `cat ./fileList.txt` do chmod 777 $file done [root@localhost /data/wwwroot/discuz.com]# sh ./filePermission.sh
/data/wwwroot/DedeCMS/uploads/include/helpers