开发环境部署
软硬件环境
名称 | 系统环境 | 软件环境 |
---|---|---|
写代码的电脑(W1) | windows 7 | Sublime Text |
开发虚拟机(V1) | CentOS-6.8 -x64 | lnmp,git(>1.8.0) |
测试服务器(T1) | CentOd-6.5-x64 | lnmp,git(>1.8.0) |
GIT托管平台
www.coding.net
或www.github.com
- 注册账号,创建项目(test)
W1配置
- 创建一个文件夹(最好与项目同名),然后共享之
V1配置
安装samba-client和cifs-utils
yum install -y samba-client cifs-utils
将W1共享的文件夹挂载到特定目录
查看共享目录:smbclient -L //10.36.137.230 挂载目录:mount.cifs -o username="Everyone",password="" //10.36.136.230/test /var/www/html
配置秘钥,完成无密码的push
ssh-keygen #连续点击回车即可完成密钥对的生成 #会在~/ssh下生成 id_rsa、id_rsa.pub两个文件 #将id_rsa.pub中的内容粘贴到项目的公钥部署处
安装GIT,yum安装版本过低(yum remove git),需要手动编译安装
下载:wget -c https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz 解压:tar -zxvf git-2.9.4.tar.gz 进入:cd git-2.9.4 配置:./configure --prefix=/usr/local/git 编译:make #可能会报错,缺少perl5,安装即可:yum install -y perl-devel 安装:make install 将git可执行程序路径添加到环境变量$PAH中 在/etc/profile文件最后添加如下内容 export PATH=$PATH:/usr/local/git/bin 立即生效:source /etc/profile 查看版本: git --version 配置: git config --global user.name xxxxx #配置用户名 git config --global user.email xxxxxx@126.com #配置邮箱 查看配置: git config -l
项目初始化
cd /var/www/html #进入项目目录 git init #初始化项目 touch index.php #新建一个文件,添加测试代码 <?php echo 'ok'; git add . #添加所有文件 git commit -m 'init' #首次提交 git remote add origin git@git.coding.net:CodingJerry/test.git #添加远程仓库地址,使用ssh协议 git push origin master #将本地主分支推送远程master分支
在项目目录创建虚拟主机
在/usr/local/nginx/conf/vhost/目录下创建www.test.com.conf文件,添加内容如下: server { listen 80; server_name www.test.com test.com; index index.html index.htm index.php; root /var/www/html; location ~ \.php$ { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 重启nginx服务:service nginx restart 说明:在W1上修改host文件,添加如下内容 10.36.137.231 www.test.com 10.36.137.231 test.com
T1配置
配置秘钥对,完成对项目的无密码push
修改www用户的shell为:/bin/bash 切换到www用户:su - www 秘钥对配置:ssh-keygen 将公钥部署到项目中,一遍无密码的pull su - #切换到root用户
安装git,版本大于1.8.0即可
将项目克隆下来,并在项目目录创建虚拟主机
chown www:www /home/wwwroot #设置权限,否则无法克隆项目 su - www #切换到www用户 cd /home/wwwroot #切换到网站目录 git clone git@git.coding.net:CodingJerry/test.git #克隆项目 su - #切换到root用户 chown root:root /home/wwwroot #重新改为root权限 lnmp vhost add #创建虚拟主机,指定项目目录,然后域名解析一下
在已存在虚拟主机(jerry.mxspider.com)下创建一个文件(index.php),作为钩子文件
cd /home/wwwroot/jerry.mxspider.com touch index.php #新建文件,添加测试代码 file_put_contents('./test.txt','hello'); 将http://jerry.mxspider.com/index.php添加到test项目的webhook下 测试是否成功(一旦项目push时就会访问该url) 测试成功后,将内容改为:exec('./webhook.sh');
创建脚本webhook.sh
#!/bin/bash cd /home/wwwroot/test /usr/local/git/bin/git pull origin master --allow-unrelated-histories chmod +x webhook.sh #添加可执行权限
修改/usr/local/php/etc/php.ini
搜索disabled_functions,将禁用函数exec去掉 重启php:service php-fpm restart
项目测试完毕,使用rsync将测试服务器上的代码同步到线上服务器