lmp+heartbeat+drbd

############源碼安裝mysq######php

[root@server25 ~]# tar zxf mysql-boost-5.7.11.tar.gzhtml

[root@server25 ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpmnode

[root@server25 ~]# yum install gcc-c++ ncurses-devel bison -ymysql

 

[root@server25 ~]# cd mysql-5.7.11/nginx

[root@server25 mysql-5.7.11]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/c++

 

vim ~/.bash_profilesql

PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin數據庫

source ~/.bash_profilevim

cp /etc/my.cnf /etc/my.cnf .bakapi

cd /usr/local/lnmp/mysql/support-files/

cp my-default.cnf /etc/my.cnf

cp mysql.server /etc/init.d/mysqld

cd /usr/local/lnmp/mysql/

chown mysql.mysql . -R

 

mysqld --initialize --user=mysql --basedir=/usr/local/lnmp/mysql/ --datadir=/usr/local/lnmp/mysql/data

chown  root.root . -R

chown mysql.mysql ./data/  -R

etc/init.d/mysqld start

mysql -p

Alter user root@localhost identified by ‘Westos007’

 

############源碼安裝nginx######

tar zxf nginx-1.10.1.tar.gz

cd nginx-1.10.1

yum  gcc install prce-devel zlib-devel openssh-devel -y

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module

vim /root/nginx-1.10.1/auto/cc/gcc

178 # debug

179 #CFLAGS="$CFLAGS -g"

 

vim /root/nginx-1.10.1/src/core/nginx.h

 12 #define nginx_version      1010001

 13 #define NGINX_VERSION      "1.10.1"

 14 #define NGINX_VER          "nginx/"   ##隱藏版本信息

cd /root/nginx-1.10.1

 make && make install

useradd -u 900 nginx -s /sbin/nologin 建立一個用戶適合於該用戶

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

vim /usr/local/nginx/conf/nginx.conf

  1 user  nginx nginx;

  2 worker_processes  auto;

  3 worker_cpu_affinity 1;

#####進程個數通常跟cpu個數相同若是是兩個則爲worker_processes 01 10;三個001 010 100(cpu個數信息用lscpu查看)

nginx -t   檢查語法錯誤

Nginx  啓動服務

在真機上輸入安裝nginx主機的ip地址

 

 

 

wKioL1jX1KTiREAiAADO4BJvWVI891.png-wh_50 

 

 

 

 

############源碼安裝php#####

tar jxf php-5.6.20.tar.bz2

cd php-5.6.20

yum install -y gcc gcc-c++ net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel openldap-devel

 

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc

--with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir -without-pear --with-gettext --with-gmp--enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-ftp-group=nginx --with-mcrypt --with-mhash --with-mysql --with-mysqli --with-pdo-mysql --enable-mysqlnd

 

make && make install

 

[root@server25 php-5.6.20]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini

[root@server25 php-5.6.20]# cd /usr/local/lnmp/php/etc/

[root@server25 etc]# cp php-fpm.conf.default php-fpm.conf

[root@server25 etc]# cd /root/php-5.6.20/sapi/fpm/

[root@server25 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm

[root@server25 fpm]# chmod +x /etc/init.d/php-fpm

[root@server25 fpm]# cd /usr/local/lnmp/php/etc/

[root@server25 etc]# vim php-fpm.conf

取消25行的註釋  pid = run/php-fpm.pid

[root@server25 etc]# vim php.ini

修改時區   date.timezone = '/Asisa/Shanghai'

/etc/init.d/php-fpm start

cd /usr/local/nginx/sbin/

 Ls

vim ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin

source ~/.bash_profile

 

vim /usr/local/nginx/conf/nginx.conf

 49         location / {

 50             root   html;

 51             index   index.php index.html index.htm;

 52    } ###調整優先級先看index.php

 

71         location ~ \.php$ {

 72             root           html;

 73             fastcgi_pass   127.0.0.1:9000;

 74             fastcgi_index  index.php;

 75             fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

 76             include        fastcgi.conf;

 

nginx -t

 vim /usr/local/nginx/html/index.php

 

<?php

phpinfo()

?>

 

vim /usr/local/lnmp/php/etc/php.ini

mysql.default_socket = /var/lib/mysql/mysql.sock    ##三行socket都改

從新加載php

測試

wKioL1jX1MKx9n1mAAGLrKGGzyw187.png-wh_50 

 

 

##############3Heartbeat+drbd+mysql

三個部分分別提供了高可用數據庫、以及存儲服務器。將以後的論壇整合成一個完整的體系

 

1.數據庫 兩臺都作

yum install mysql-server -y

mysql_secure_installation  初始化密碼。

########################heartbeat軟件包安裝與配置:#########################

Server1server2上同時作

Yum install *.rpm -y

rpm -q heartbeat -d

cp /usr/share/doc/heartbeat-3.0.4/ha.cf /etc/ha.d/ -p

  cp /usr/share/doc/heartbeat-3.0.4/authkeys /etc/ha.d/ -p

  cp /usr/share/doc/heartbeat-3.0.4/haresources /etc/ha.d/ -p

server1上執行

3.修改配置文件

 cd /etc/ha.d/

主配置文件(/etc/ha.d/ha.cf)://打開或添加如下項

 logfile /var/log/ha-log//系統運行日誌文件,取默認值

 logfacility     local0//日誌等級,取默認值

 keepalive 2//心跳頻率,本身設定。1:表示 1 ;200ms:表示 200 毫秒

 deadtime 30//節點死亡時間閥值,就是從節點在過了 30 後尚未收到心跳就認爲主節點死亡,本身設定

 warntime 10//發出警告時間,本身設定

 initdead 60守護進程首次啓動後應該等待60秒後再啓動主服務器上的資源

 udpport 694//心跳信息傳遞的 udp 端口,使用端口 694 進行 bcast ucast 通訊,取默認值

 bcast   eth0            # Linux//採用 udp 廣播播來通知心跳

 auto_failback on//當主節點恢復後,是否自動切回

 node server1.example.com//主節點名稱,uname –n 保持一致。排在第一的默認爲主節點,因此不要搞措順序

 node server2.example.com//副節點名稱,uname –n 保持一致

 ping 172.25.45.250

 respawn hacluster /usr/lib64/heartbeat/ipfail

 apiauth ipfail gid=haclient uid=hacluster

//默認 heartbeat 並不檢測除自己以外的其餘任何服務,也不檢測網絡情況。

因此當網絡中斷時,並不會進行 Load Balancer Backup 之間的切換。

能夠經過 ipfail 插件,設置'ping nodes'來解決這一問題,但不能使用一個集羣節點做爲

ping 的節點。

2) 資源文件(/etc/ha.d/haresources)//添加如下項

server1.example.com IPaddr::172.25.45.100/24/eth0 drbddisk::example Filesystem::/dev/drbd1::/var/lib/mysql::ext4 mysqld

 

3)認證文件(/etc/ha.d/authkeys),文件的權限必須是 600:

auth 1

1 crc

#2 sha1 HI!

#3 md5 Hello!

 

4)chmod 600 authkeys

 

scp authkeys ha.cf haresources root@172.25.45.2:/etc/ha.d/

注意server2上的authkeys文件的權限也要是600

5./etc/init.d/heartbeat start(server1server2都執行

 

#################drbd

主機:demo 172.25.45.1server1.example.com /dev/vdb (附加磁盤)

 remote 172.25.45.2server2.example.com/dev/vdb (附加磁盤)  4G

所需軟件包

drbd-8.4.2.tar.gz

Server1上執行

1) yum install gcc flex rpm-build kernel-devel -y//解決軟件依賴性

  rpmbuild ~ //在家目錄生成 rpmbuild 編譯所需路徑

  cp drbd-8.4.0.tar.gz rpmbuild/SOURCES/

  tar zxf drbd-8.4.0.tar.gz

  cd drbd-8.4.0

./configure --enable-spec --with-km

rpmbuild -bb drbd.spec//編譯生成 drbd rpm

rpmbuild -bb drbd-km.spec //編譯 drbd 內核模塊

  cd ~/rpmbuild/RPMS/x86_64

  rpm -ivh *

2) 拷貝生成的 rpm 包到另外一主機,並安裝軟件包:

scp * root@172.25.38.2:/root/

ssh root@172.25.38.2 'rpm -ivh /root/drbd-*.rpm'

 

2.配置drbd

Server1上執行

編輯配置文件

vim /etc/drbd.d/example.res

wKiom1jX1NGxSZyeAACkVy--cfo584.png-wh_50

 

2) scp example.res 172.25.45.2:/etc/drbd.d/

 

啓動服務

server1server2上同時執行

drbdadm create-md example

/etc/init.d/drbd start

 

demo 設置爲 primary 節點,並同步數據:

demo 主機server1執行如下命令

drbdadm primary  example --force

 

在兩臺主機上查看同步狀態:

server1server2上同時執行

watch cat /proc/drbd

等待同步完成

 

 

Server1:

Mount  /dev/drbd1  /mnt/

cd /mnt/

rm -fr *

umount /mnt/

mount /dev/drbd1 /var/lib/mysql/

chown mysql.mysql /var/lib/mysql/ -R

umount /var/lib/mysql/

vim /etc/ha.d/haresources

wKioL1jX1NvBxoSjAACR03UdJSA742.png-wh_50 

scp /etc/ha.d/haresources root@172.25.45.2:/etc/ha.d/

 

/etc/init.d/heartbeat start

 

Server2:

 

/etc/init.d/heartbeat start

 

Server1:

wKioL1jX1OOxDhrGAADwgEGuiRk938.png-wh_50 

 

drbdadm secondary example

etc/init.d/heartbeat start

 

Server2

drbdadm primary example

wKioL1jX1OyTThHFAAED2TuXvg4022.png-wh_50 

 

搭建論壇

unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/nginx/html/

cd /usr/local/nginx/html/upload

chmod 777 config/

chmod 777 data  -R

chmod 777 uc_* -R

cd /usr/local/lnmp/mysql/

chmod 755 data/

Server1上設置root用戶能夠遠程登錄的權限

Grant all privileges on *.* to 「root」@」%」 identified by 「redhat」;

測試方法

在裝php的那臺主機測試遠程登錄172.25.45.100這個ip的數據庫而且這個庫中有解的權限便可

 

瀏覽器上輸入172.25.45.1/upload  

按照步驟便可完成安裝

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息