svn+nginx+mysql+php+nfs部署社交網站

操做環境:php

192.168.80.181  svnhtml

192.168.80.182  nginxmysql

192.168.80.183 mysql(MariaDB)nginx

192.168.80.185 phpc++

192.168.80.186 nfs程序員


SVN服務搭建 192.168.80.181:web

yum install -y subversionsql

svnserve --version    //查看版本信息數據庫

image.png


使用svnadmin創建版本庫
瀏覽器

mkdir -p /opt/svn/repo

svnadmin create /opt/svn/repo/

image.png



注:
conf ——用戶認證和權限、配置文件
db ——版本控制信息產生的數據
format ——當前代碼庫帳號數據

hooks:存放版本庫子目錄,好比咱們要實現同步更新的操做,在這裏實現
locks:存放庫鎖目錄,用來跟蹤庫的訪問者




調整SVN參數
cd /opt/svn/repo/conf/

vi svnserve.conf      //整體配置


去掉註釋,修改如下內容:

anon-access = none      //匿名用戶沒有任何權限
auth-access = write      //認證用戶具備寫權限
password-db = /opt/svn/repo/conf/passwd    //用戶的密碼文件
authz-db = /opt/svn/repo/conf/authz    //用戶信息文件
realm =    #指定版本庫的認證域,即在登陸時提示的認證域名稱


注:配置文件分爲兩部分:
一部分[general]全局配置
一部分[sasl]用於標識是否進行SASL加密處理;
變量min-encryption和max-encryption控制服務器所須要的加密強度



啓動SVN服務
svnserve -d -r /opt/svn/repo/     //以守護模式啓動SVN服務,關閉用kill pid
netstat -anptu | grep svnserve  //3690端口監聽

image.png


爲程序員創建帳戶,配置對repo倉庫具備的權限,並將賬號信息及倉庫目錄信息反饋給程序員。
vi passwd   //用來設置用戶和密碼

tom = 123      //格式:用戶名 = 用戶密碼

image.png

vi authz   //詳細權限配置文件     新增

[/]     根目錄,也就是/opt/svn/repo  
alpha = r

[/webphp]     //指定目錄
tom = rw     //程序員對此目錄有讀寫權限

image.png



mkdir /opt/svn/repo/webphp    //建立要被管理的目錄

mkdir /opt/svn/repo/webapp    //建立要被管理的目錄


注:由於剛改完passwd和authz配置文件,路徑要返回上一層 (cd ..)  在/opt/svn/repo/conf/裏面操做的話,會致使找不到webapp/webphp

image.png



svn import webphp file:///opt/svn/repo/webphp/ -m "init web"   //初始化目錄,導入webphp

svn import webapp file:///opt/svn/repo/webapp/ -m "init web"   //初始化目錄,導入webapp

初始化後,會自動獲得一個版本爲1 ,再看webphp沒有東西,由於程序員沒在裏面寫東西。

image.png

到此svn的基本環境已經部署完成。


部署Nginx服務 192.168.80.182:


事先將須要的軟件包放到家目錄下,進行部署;
yum -y install pcre-devel zlib-devel gcc gcc-c++ make

useradd -M -s /sbin/nologin nginx

tar xf nginx-1.13.9.tar.gz -C /opt/

cd /opt/nginx-1.13.9/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module


make && make install


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

nginx -t

image.png

製做管理角本
vi /etc/init.d/nginx

---

#!/bin/bash
# chkconfig: 35 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
  start)
    $PROG
    ;;
  stop)
    kill -s QUIT $(cat $PIDF)
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  reload)
    kill -s HUP $(cat $PIDF)
    ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac
exit 0


---

chmod +x /etc/init.d/nginx
chkconfig --add nginx


vi /usr/local/nginx/conf/nginx.conf

---

user  nginx nginx;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root  /var/www/html/webapp;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                        expires 30d;
                         root  /var/www/html/webapp;
                        }

       //如下是讓nginx支持php功能

        location ~ \.php$ {
            root           /var/www/html/webphp;
            fastcgi_pass   192.168.80.185:9000;
            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /var/www/html/webphp$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}


service nginx restart

image.png

到此nginx基本環境部署完成



安裝MYSQL服務器 192.168.80.183 :

yum install -y mariadb mariadb-server

systemctl start mariadb

netstat -anpt | grep mysql

image.png

mysql_secure_installation  // 常規安全設置輸入image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png數據庫基本環境部署完成




部署php服務器192.168.80.185:

yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel


yum  install  -y  gcc  gcc-c++ make

yum install bzip2 -y

tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip  \
--enable-fpm


make && make install

cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini

mysqli.default_socket = /var/lib/mysql/mysql.sock
date.timezone = Asia/Shanghai

cd /usr/local/php/etc/
cp  php-fpm.conf.default        php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default     www.conf

vi   www.conf
listen = 0.0.0.0:9000

cd /usr/local/php/etc/
vi php-fpm.conf

pid = run/php-fpm.pid
user = nginx
group = nginx

/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
netstat -anpt | grep 9000

image.png

ln -s /usr/local/php/bin/* /usr/local/bin/

ps aux | grep -c "php-fpm"

image.png

到此php基本環境部署完成


在svn服務器上寫兩個網頁文檔:

vi /opt/svn/repo/webphp/index.php
<?php
phpinfo();
?>

vi /opt/svn/repo/webapp/index.html
<h1>asdasd</h1>

cd /opt/svn/repo/
svn import webphp file:///opt/svn/repo/webphp/ -m "init web"

svn import webapp file:///opt/svn/repo/webapp/ -m "init web"


在nginx和php服務器上:
cd  /var/www/html

nginx:svn co svn://192.168.80.181/webapp

php:   svn co svn://192.168.80.181/webphp

在瀏覽器上:
http://192.168.80.182/index.php  

image.png

http://192.168.80.182

image.png

------

測試PHP網頁可否訪問Mysql數據庫
在數據庫服務器上:

CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'admin'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'admin'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

image.png


在php服務器:
vi  /var/www/webapp/index.php
<?php
$link=mysqli_connect('192.168.80.183','admin','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

image.png

------

部署nfs服務器192.168.80.186:

yum install nfs-utils -y

mkdir /opt/web

vi /etc/exports    //NFS配置文件(空文件)

/opt/web 192.168.80.0/24(rw,sync,no_root_squash)  //目錄/opt/web共享給192.168.80.0/24網段,容許讀寫,同步寫入

注:
第一列表明共享哪一個目錄
第二列表明容許哪一個客戶端去訪問
第三列共享目錄的一些權限設置
* 全部人
ro 只讀
rw 容許讀寫
sync 同步寫入
no_root_squash      當客戶機以root身份訪問時,賦予root權限(即超級用戶保留權限)
      不然,root用戶全部請求映射成anonymous用戶同樣的權限(默認)


systemctl start rpcbind
systemctl start nfs

netstat -anptu | grep rpcbind    顯示UDP端口111

image.png


showmount -e  +IP地址 //查看發佈的NFS共享目錄

image.png


yum install unzip -y

image.png

unzip Discuz_x3.4_sc_UTF-8_0101.zip  -C /opt

image.png

image.png

cp -r upload/ /opt/web

image.png



在nginx和php中操做:

yum install nfs-utils -y

nginx: cd /var/www/html/webapp

php:  cd /var/www/html/webphp

mkdir bbs

image.png

mount.nfs 192.168.80.186:/opt/web/  /var/www/html/webapp/bbs/

image.png

chmod -R 777 ./config/

chmod -R 777 ./data/

chmod -R 777 ./uc_client/

chmod -R 777 ./uc_server/

image.png

image.png


到瀏覽器測試:


image.png

相關文章
相關標籤/搜索