开发环境部署
软硬件环境
名称 | 系统环境 | 软件环境 |
---|---|---|
写代码的电脑(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将测试服务器上的代码同步到线上服务器