您好,登錄后才能下訂單哦!
1、基于源碼編譯安裝的LNP+MYSQL主從實戰
準備3臺服務器,其中一臺作為Nginx WEB服務器+PHP-FPM(FastCGI),另外兩臺作為MYSQL主從服務器,服務器IP信息:
? 10.10.10.4-Linux+Nginx+PHP
? 10.10.10.5-MYSQL Master;
? 10.10.10.6-MYSQL Slave;
? 1) Nginx安裝配置
? #安裝PCRE庫和基礎庫支持
? yum install pcre-devel pcre gcc-c++ openssl openssl-devel zlib-devel -y
? cd /usr/src
? #下載Nginx源碼包
? wget -c http://nginx.org/download/nginx-1.12.0.tar.gz
? tar -xzf nginx-1.12.0.tar.gz
? cd nginx-1.12.0
? #進入解壓目錄,然后sed修改Nginx版本信息為JWS
? sed -i -e 's/1.12.0//g' -e 's/nginx\//JWS/g' -e 's/"NGINX"/"JWS"/g' src/core/nginx.h
? #預編譯Nginx
? useradd www ;./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
? #編譯成功后,執行make命令進行編譯
? make
? #make 執行成功后,執行make install正式安裝
? make install
? #檢查nginx配置文件是否正確,返回OK即正確。
? /usr/local/nginx/sbin/nginx -t
? #回車即可。查看進程是否已啟動:
? 然后啟動nginx,/usr/local/nginx/sbin/nginx
? 2) php安裝配置
? wget http://museum.php.net/php5/php-5.6.9.tar.gz
? yum -y install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql-devel
? tar -xzf php-5.6.9.tar.gz
? cd php-5.6.9
? ./configure --prefix=/usr/local/php5 --enable-fpm --enable-debug --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --with-curl --with-mysql=mysqlnd
? --with-mysqli=mysqlnd
? --with-pdo-mysql=mysqlnd
? --disable-fileinfo
mysqli擴展有一系列的優勢,相對于mysql擴展的提升主要有:面向對象接口、 prepared語句支持、多語句執行支持、事務支持、增強的調試能力、嵌入式服務支持。
make
make install
\cp php.ini-development /usr/local/php5/lib/php.ini
\cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
\cp /usr/src/php-5.6.9/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
php解析器:用來解析PHP頁面
php-fpm管理器:用來管理和調用和開啟PHP解析器。
php-fpm.conf是php服務程序重要的配置文件之一,我們需要啟用該配置文件中第25行左右的pid文件保存目錄,然后分別將第148和149行的user與group參數分別修改為www賬戶和用戶組名稱:
1 ;;;;;;;;;;;;;;;;;;;;;
2 ; FPM Configuration ;
3 ;;;;;;;;;;;;;;;;;;;;;
23 ; Note: the default prefix is /usr/local/php/var
24 ; Default Value: none
25 pid = run/php-fpm.pid
………………省略部分輸出信息………………
145 ; Unix user/group of processes
146 ; Note: The user is mandatory. If the group is not set, the default user's g roup
147 ; will be used.
148 user = www
149 group = www
………………省略部分輸出信息………………
(4) Nginx配置文件配置
cat /usr/local/nginx/conf/nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
root /usr/local/nginx/html;
index index.html index.php;
}
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;#
fastcgi_paramSCRIPT_FILENAME
s/usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
。
cat >/usr/local/nginx/html/index.php<<EOF
<?php
phpinfo();
?>
EOF
service php-fpm restart #重啟php服務
/usr/local/nginx/sbin/nginx –t 檢測Nginx服務參數
/usr/local/nginx/sbin/nginx 啟動nginx服務參數
測試LNMP架構測試,創建index.php測試頁面,如下圖所示:
建立虛擬主機dz.jf.com && wp.jf.com
-
server {
listen 80;
server_name dz.jf.com;
location / {
root /usr/local/nginx/html/dz;
index index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root /usr/local/nginx/html/dz;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/dz$fastcgi_script_name;
include fastcgi_params;
}
} #兩個文件內容中就是域名和路徑不一樣,其余都一樣
2-1)Discuz PHP論壇安裝
LAMP源碼整合完畢之后,Dicuz官網下載Discuz開源PHP軟件包,將軟件包解壓并發布在Nginx Htdocs發布目錄,代碼如下:
cd /usr/src ;
wget http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip
unzip Discuz_X3.1_SC_UTF8.zip -d /usr/local/nginx/html/dz
cd /usr/local/nginx/html/dz
mv upload/ /usr/local/nginx/html/dz
chmod 757 -R data/ uc_server/ config/ uc_client/
重新啟動nginx
另外那個一樣的操作,不同的路徑
2-2)wordpress PHP論壇安裝
cd /usr/src ;
tar –zxf wordpress-4.9.4-zh_CN.tar.gz –C /usr/local/nginx/html/wp
cd /usr/local/nginx/html/wp
mv wordpress / .
如下圖找到路徑添加ip 與域名 ,這樣用主機就可以測試和訪問這兩個網站
MYSQL數據庫命令行中創建PHP連接MYSQL的用戶及密碼,命令如下:
create database discuz charset=utf8;
grant all on discuz. to root@'10.0.0.4' identified by "123456";
flush privileges;
create database wordpress charset=utf8;
grant all on wordpress. to root@'10.0.0.4' identified by "123456";
flush privileges;
訪問IP地址 進行論壇的訪問,配置discuz論壇設置數據庫。
? 3)MySQL安裝配置
1).安裝相關工具和軟件包
yum install cmake ncurses-devel ncurses libaio bison git gcc-c++ -y
cd /usr/src
wget /mysql-5.5.20.tar.gz
tar -xzf mysql-5.5.20.tar.gz
cd mysql-5-5.20
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0 \
-DENABLE_DTRACE=0
make -j4 && make install
cd /usr/local/mysql55/
\cp -f support-files/my-large.cnf /etc/my.cnf
\cp -f support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
mkdir -p /data/mysql
useradd mysql
/usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/
ln -s /usr/local/mysql55/bin/* /usr/bin/
service mysqld start
建立主從復制
2).
Master and slave 一樣 在/etc/my.conf 里面分別設置級別1,2;
設置日志名稱及id :
server-id = 1
log-bin=mysql-bin
master 上面創建slave 鏈接master的復制賬號和授權命令
Master數據庫服務器命令行中 創建tongbu用戶及密碼并設置權限,執行如下命令,查看bin-log文件及position點,
grant replication slave on . to 'tongbu'@'10.0.0.4' identified by'123456';
show master status;
flush tables with read lock; #主庫配置鎖表
3)
.slave 鏈接 master,請求bin-log 文件(mysql-bin)。
change master to
master_host='10.0.0.5',master_user='tongbu',master_password='123456',masterlog
file='mysql-bin.000003',master_log_pos=477;
slave start;
MariaDB [(none)]> slave start;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show slave status\G
1. row
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.0.6
Master_User: tongbu
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 477
Relay_Log_File: mariadb-relay-bin.000002
Relay_Log_Pos: 529
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 477
Relay_Log_Space: 825
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
4).
在主庫上面創建 數據庫和表 ,主庫和從庫之間就會形成主從同步關系。
master 測試:
unlock tables;
create database jf1;
查看從庫
5).
主主同步就是用slave 的master去同步 mastar 的slave,叫做主從互備,一臺宕機后,只需在/etc/hosts 文件中改變ip地址就可以將其切換(前提是主主mysql數據庫主機名可以ping通和一致)
6).
模擬主宕機切換ip
10.0.0.5的ip
創建jf001和jf002用戶:
Kill “mysql’s id”
切換另一個主庫(在安裝論壇和網站時一定要用域名,不然主宕機后無法切換)
2、基于yum安裝的LNP+MYSQL主從實戰
配置LNP,Nginx WEB服務器+PHP-FPM(FastCGI),配置方法如下:
安裝LNP服務;
yum install nginx php php-devel php-mysql php-fpm -y
Nginx默認發布目錄:/usr/share/nginx/html/;
Nginx配置文件目錄:/etc/nginx/
/usr/share/nginx/html/,發布目錄創建index.php測試頁面;
啟動Nginx、PHP-FPM服務命令;
service php-fpm restart
service nginx restart
(配置內容和編譯安裝相似,唯一不同的是路徑和啟動命令)
2) 配置MYSQL 主主同步
yum install mariadb mariadb-devel -y
接下來的配置基本同編譯安裝mysql-5.5.20相似
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。