操作环境:
192.168.80.181 svn
192.168.80.182 nginx
192.168.80.183 mysql(MariaDB)
192.168.80.185 php
192.168.80.186 nfs
SVN服务搭建 192.168.80.181:
yum install -y subversion
svnserve --version //查看版本信息
使用svnadmin建立版本库
mkdir -p /opt/svn/repo
svnadmin create /opt/svn/repo/
注: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 pidnetstat -anptu | grep svnserve //3690端口监听
为程序员建立账户,配置对repo仓库具有的权限,并将帐号信息及仓库目录信息反馈给程序员。
vi passwd //用来设置用户和密码tom = 123 //格式:用户名 = 用户密码
vi authz //详细权限配置文件 新增
[/] 根目录,也就是/opt/svn/repo
alpha = r[/webphp] //指定目录
tom = rw //程序员对此目录有读写权限
mkdir /opt/svn/repo/webphp //创建要被管理的目录
mkdir /opt/svn/repo/webapp //创建要被管理的目录
注:因为刚改完passwd和authz配置文件,路径要返回上一层 (cd ..) 在/opt/svn/repo/conf/里面操作的话,会导致找不到webapp/webphp
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没有东西,因为程序员没在里面写东西。
到此svn的基本环境已经部署完成。
部署Nginx服务 192.168.80.182:
事先将需要的软件包放到家目录下,进行部署;
yum -y install pcre-devel zlib-devel gcc gcc-c++ makeuseradd -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_modulemake && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx -t
制作管理角本
vi /etc/init.d/nginx---
#!/bin/bash# chkconfig: 35 99 20# description: Nginx Service Control ScriptPROG="/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 1esacexit 0
---
chmod +x /etc/init.d/nginx
chkconfig --add nginxvi /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
到此nginx基本环境部署完成
安装MYSQL服务器 192.168.80.183 :
yum install -y mariadb mariadb-server
systemctl start mariadb
netstat -anpt | grep mysql
mysql_secure_installation // 常规安全设置输入数据库基本环境部署完成
部署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++ makeyum 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-fpmmake && make install
cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.inimysqli.default_socket = /var/lib/mysql/mysql.sock
date.timezone = Asia/Shanghaicd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.confcd /usr/local/php/etc/php-fpm.d/cp www.confvi www.conf
listen = 0.0.0.0:9000cd /usr/local/php/etc/
vi php-fpm.confpid = run/php-fpm.pid
user = nginxgroup = nginx/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
netstat -anpt | grep 9000ln -s /usr/local/php/bin/* /usr/local/bin/
ps aux | grep -c "php-fpm"
到此php基本环境部署完成
在svn服务器上写两个网页文档:
vi /opt/svn/repo/webphp/index.php
<?phpphpinfo();?>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/htmlnginx:svn co svn://192.168.80.181/webapp
php: svn co svn://192.168.80.181/webphp
在浏览器上:
http://192.168.80.182
------
测试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; 在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!!";?>------
部署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 nfsnetstat -anptu | grep rpcbind 显示UDP端口111
showmount -e +IP地址 //查看发布的NFS共享目录
yum install unzip -y
unzip Discuz_x3.4_sc_UTF-8_0101.zip -C /opt
cp -r upload/ /opt/web
在nginx和php中操作:
yum install nfs-utils -y
nginx: cd /var/www/html/webapp
php: cd /var/www/html/webphp
mkdir bbs
mount.nfs 192.168.80.186:/opt/web/ /var/www/html/webapp/bbs/
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/
到浏览器测试: