############源碼安裝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地址
############源碼安裝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
測試
##############3Heartbeat+drbd+mysql
三個部分分別提供了高可用‘數據庫、以及存儲服務器。將以後的論壇整合成一個完整的體系
1.數據庫 兩臺都作
yum install mysql-server -y
mysql_secure_installation 初始化密碼。
########################heartbeat軟件包安裝與配置:#########################
Server1和server2上同時作
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(server1和server2都執行
#################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
2) scp example.res 172.25.45.2:/etc/drbd.d/
啓動服務
在server1和server2上同時執行
drbdadm create-md example
/etc/init.d/drbd start
將 demo 設置爲 primary 節點,並同步數據:
在 demo 主機server1執行如下命令
drbdadm primary example --force
在兩臺主機上查看同步狀態:
在server1和server2上同時執行
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
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:
drbdadm secondary example
etc/init.d/heartbeat start
Server2
drbdadm primary example
搭建論壇
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
按照步驟便可完成安裝