要做两个事情, 一个是把一个个人网站的东西, 迁移到公司的服务器上面. 另一个事情是, 公司要在服务器上面配置一个域名.

先说迁移

基本情况
  1. php网站
  2. 使用了thinkphp
  3. 本来用的啥服务器不是特别清楚, 反正本地mamp完全可以跑起来. 建表语句在的.
  4. 本来没有git控制, 我弄上了, 并且上了github私有项目.

#####迁移步骤

  1. ssh登录阿里云盘, 类似

    ssh root@121.121.121.121
    
  2. 按照服务器规则上传文件夹, 比如: /data/www

  3. git相关操作, 这个是2b操作, 文艺操作(自动部署)看后面.

    • 在文件夹内git clone. 这个地方要想一下, 如何自动下拉git.
      • 而且必须清掉runtime.
    • 顺手设置了一下gitignore参考我的blog: [[git忽略ignore]]
    • 由于是公司的server, 因此ssh和keychain都是好的, 不需要我设置了:) 挺好. 后面改为私有, 就不好了.
    • git一个远程的分支? 参考我的[[2016-06-19-git使用]]

#####配置nginx

  1. 一般位置: /usr/local/nginx/conf/nginx.conf 可以find/whereis, 这个文件无需修改.

  2. 赋值一个conf, 在/usr/local/nginx/conf/site-enables目录下.

    server_name  gwx.xxx.com; #只需要改这两项. 这个是访问网址.
    root /data/www/xxx/ooo; #这个是根目录.
    
  3. 然后浏览器访问gwx.xxx.com, 出现nginx欢迎页, 因为没有重启nginx服务.

    /usr/local/nginx/sbin/nginx -s reload
    
  4. 然后浏览器访问gwx.xxx.com, 如愿以偿出现报错页面, 因为没有设置db.

    • 配置服务器, 我就不讲了. 反正就是加用户,
    • 加库,
    • 然后再导入数据.

#####尾声

  1. 然后 git转为私有时出错了. 这个de解决也是2b操作, 文艺操作在后面.

    • 解决方式很扯淡, 换成了ssh. 唉.
  2. 然后就是要改权限, 这是thinkphp特殊的

cd Runtime/
rm * -rf #这个是危险操作, rm之前要ls一下, 以防出错.
chmod 777 Runtime/  #这个必须777, 666都不行, 这货可能不危险么? 这个权限不合理. 要看看nginx的运行权限.
  1. sftp连接, filezilla或者cyberduck都很好用.
    • 如果是filezilla记得指定端口22.

      然后这个世界竟然就清净了, 就好了. 当然后面git又搞了一会儿.

git文艺操作, 3步

  1. 服务器建立一个裸体库.

    git init --bare mse.git #mse.git是随便起的名字, 你的裸体库的名字, 自己可以随便起名
    
  2. 本地添加这个裸体库作为远程源.

               ```sh 
                 git remote add hujingauto root@121.121.121.121:/data/www/gitm/bareserver/mse.git 
                 #hujingauto是一个新的远程源.
                 #root是server的用户名, 不该用root.
                 #这个ip是server地址.
                 #后面这一串地址是之前建立git裸体库时, git提示的.
                 git push hujingauto weixin
                 #推送到hujingauto, 用weixin分支到远程的微信分支, 这是分支提交的方法.
               ```
    
  3. 服务器设置钩子, 自动更新工作目录.

               ```sh
                #进入刚刚建立的mse.git/hooks目录, 然后编辑post-receive
                cd /data/www/gitm/bareserver/mse.git/hooks
                cp post-receive.sample post-receive #把sample改为配置.
                vi  post-receive#添加最后一行: 
                GIT_WORK_TREE=/data/www/gitm/workd/ git checkout weixin -f
               ```
    
  4. 为了安全可以考虑单独建用户. 对的这是第四步, 不过我没做. 汗……

    • 这个有点复杂, 有空再研究.

文艺git之后

会正常吗? 太低估thinkphp了, 一定不正常啊. 提示runtime错误. 哈哈, 又看到这个错误了, 老夫懂的.

mkdir /data/www/gitm/workd/gshock/Application/Runtime
chmod 777 /data/www/gitm/workd/gshock/Application/Runtime
#这个地方必须777, 760, 770,700都不行.
#下一个错误就是显示的内容不正确, 因为要配置.
cd /data/www/gitm/taobao/Application/Common/Conf #在这个目录下面.
cp config_sample.php  config.php #需要一个真正的配置文件.

nginx安全配置

  • 所谓的中文手册文档太垃圾, 有空下载个新的. 很奇怪nginx.cn在搞啥?
  • 另外, 找了一份文档就很好.[ https://segmentfault.com/a/1190000002797601]
  • 文件的拥有者和拥有组, 如何调整. 需要调整runtime目录的权限.
  • ./nginx -v 查看user组. 这个是胡说八道, -v是version, 查看版本号的.
  • 烂泥有解释: [http://www.ilanni.com/?p=7438] 但是挺复杂的, 不搞了.