應用系統分佈式構建運維php
1+x初級,項目四html
準備兩臺主機mysql
# hostnamectl set-hostname mysql1nginx
# hostnamectl set-hostname mysql2c++
# setenforce 0sql
# systemctl stop firewalld數據庫
# vi /etc/hostsapi
加入如下內容運維
192.168.37.16 mysql1
192.168.37.17 mysql2curl
# yum install -y mariadb mariadb-server
啓動數據庫服務並設置開機自啓
# systemctl start mariadb
# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
修改mysql1節點的數據庫配置文件
# vi /etc/my.cnf
[mysqld]
log_bin=mysql-bin ##記錄操做日誌
binlog_ignore_db=mysql ##不一樣步mysql系統數據庫
server_id=16 ##數據庫集羣中的每一個節點id都要不一樣
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
重啓數據庫服務
# systemctl restart mariadb
進入數據庫
# mysql -uroot -p123456
受權在任何客戶端機器上能夠以root用戶登陸到數據庫
> grant all privileges on *.* to root@'%' identified by "123456";
在主節點上建立一個用戶鏈接節點mysql2,並賦予從節點同步主節點數據庫的權限
> grant replication slave on *.* to 'user'@'mysql2' identified by '123456';
修改mysql2節點的數據庫配置文件
# vi /etc/my.cnf
[mysqld]
log_bin=mysql-bin ##記錄操做日誌
binlog_ignore_db=mysql ##不一樣步mysql系統數據庫
server_id=17 ##數據庫集羣中的每一個節點id都要不一樣
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
重啓數據庫服務
# systemctl restart mariadb
進入數據庫
# mysql -uroot -p123456
配置從節點鏈接主節點的鏈接信息
> change master to master_host='mysql1',master_user='user',master_password='123456';
開啓從節點服務
> start slave;
查看從節點服務狀態
> show slave status\G
配置數據庫主從集羣成功
在主節點中建立庫
> create database test;
> use test;
在庫中建立表
> create table company(id int not null primary key,name varchar(50),addr varchar(255));
插入表數據
> insert into company values(1,"alibaba","china");
查看錶數據
> select * from company;
查看數據庫列表
> show databases;
> use test;
查詢表
> show tables;
查詢內容,驗證複製功能
> select * from company;
驗證從數據庫的複製功能成功
# hostnamectl set-hostname nginx
# setenforce 0
# systemctl stop firewalld
編譯安裝基礎環境
# yum install -y gcc gcc-c++ openssl-devel zlib-devel zlib pcre-devel
建立指定用戶
# groupadd -g 1001 nginx
# useradd -u 900 nginx -g nginx -s /sbin/nologin
# tail -1 /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin
將提供的nginx-1.12.2.tar.gz壓縮包上傳至/usr/local/src/目錄下,並解壓到當前目錄
# cd /usr/local/src
# tar -zxvf nginx-1.12.2.tar.gz
編譯並安裝
# cd nginx-1.12.2
# ./configure --prefix=/usr/local/nginx --with-http_dav_module \
> --with-http_stub_status_module --with-http_addition_module \
> --with-http_sub_module --with-http_flv_module --with-http_mp4_module \
> --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx
沒有報錯,進行安裝
# make && make install
建立軟連接
# ln -s /usr/local/nginx/sbin/nginx /usr/local/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
# nginx
# netstat -ntpl
80端口啓動,表示nginx服務啓動成功
# hostnamectl set-hostname php
# setenforce 0
# systemctl stop firewalld
編譯安裝基礎環境
# yum install -y gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel
將提供的libmcrypt-2.5.8.tar.gz壓縮包上傳至/usr/local/src目錄下,並解壓到當前目錄
# cd /usr/local/src
# tar -zxvf libmcrypt-2.5.8.tar.gz
編譯安裝服務
# cd libmcrypt-2.5.8
# ./configure --prefix=/usr/local/libmcrypt && make && make install
將提供的php-5.6.27.tar.gz壓縮包上傳至/usr/local/src目錄下,並解壓到當前目錄
# cd /usr/local/src/
# tar -zxvf php-5.6.27.tar.gz
編譯安裝服務
# cd php-5.6.27
# ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm \
--enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash \
--with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
沒有報錯,進行安裝
# make && make install
這個nginx的id號要和nginx主機上的保持一致
# groupadd -g 1001 nginx
# useradd -u 900 nginx -g nginx -s /sbin/nologin
# tail -1 /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin
PHP壓縮包中提供了PHP環境須要用到的模板文件,須要對文件進行更名後才能使用
複製文件並更名
# cp php.ini-production /etc/php.ini
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
賦予文件執行權限
# chmod +x /etc/init.d/php-fpm
添加PHP服務到啓動列表,並設置開機自啓
# chkconfig --add php-fpm
# chkconfig php-fpm on
修改PHP的主配置文件
# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
# grep -n '^'[a-Z] /usr/local/php5.6/etc/php-fpm.conf
149:user = nginx
150:group = nginx
164:listen = 192.168.37.13:9000
224:pm = dynamic
235:pm.max_children = 50
240:pm.start_servers = 5
245:pm.min_spare_servers = 5
250:pm.max_spare_servers = 35
啓動PHP服務
# service php-fpm start
Starting php-fpm done
查看啓動狀態
# netstat -ntpl
9000端口啓動,表示PHP環境安裝完畢
已經完成了主從數據庫的安裝配置、Nginx服務的安裝、PHP環境的安裝的四臺機器進行部署
修改配置文件
# vi /usr/local/nginx/conf/nginx.conf
location / {
root /www; ##更改網頁目錄
index index.php index.html index.htm;
}
location ~ \.php$ { ##去掉這部分前面的註釋符
root /www; ##更改目錄
fastcgi_pass 192.168.37.13:9000; ##添加PHP主機IP地址
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
添加配置
# vi /usr/local/nginx/conf/fastcgi_params
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ##添加這行
fastcgi_param REQUEST_URI $request_uri;
在nginx和php節點,建立/www目錄,並修改用戶和用戶組
# mkdir /www
# chown nginx:nginx /www/
將提供的wordpress-4.7.3-zh_CN.zip壓縮包上傳至nginx節點和php節點的/root目錄下並解壓
# yum install -y unzip
# unzip wordpress-4.7.3-zh_CN.zip
將解壓後的文件複製到/www目錄下
# mv wordpress/* /www/
修改wordpress的配置文件(nginx節點)
將模板文件複製並修改
# cp /www/wp-config-sample.php /www/wp-config.php
# vi /www/wp-config.php
登陸數據庫
# mysql -uroot -p123456
建立數據庫
> create database wordpress;
重啓nginx服務
# nginx -s reload
使用網頁訪問192.168.37.12(nginx節點ip)
填寫信息以後點擊左下角安裝
進入後臺界面
點擊左上角圖標
分佈式部署完成