「 衣调 」阿里云部署记录

今天完成了「 衣调 」 公众号的项目部署,记录了一些操作,和大家分享。

  • 服务器: 阿里云ESC
  • 环境: Ubuntu + Apache/2.4.7 + PHP/5.5.9 + Mysql
  • 项目: 前端 Vue1.0 + 后端 Laravel

STEP

  • 登录阿里云服务器: ssh root@server_ip -p 22
  • 进入到webserver文件夹后clone 阿里云code仓库中的代码

    我在执行git clone时,报错提示没有权限,这是因为缺少ssh密钥的原因,应将自己生成的密钥添加到远程git仓库密钥管理中去,具体步骤如下:

    SSH key 可以让你在你的电脑和Code服务器之间建立安全的加密连接。 先执行以下语句来判断是否已经存在本地公钥:

      cat ~/.ssh/id_rsa.pub
    

    如果你看到一长串以 ssh-rsa或 ssh-dsa开头的字符串, 你可以跳过 ssh-keygen的步骤。 提示: 最好的情况是一个密码对应一个ssh key,但是那不是必须的。你完全可以跳过创建密码这个步骤。请记住设置的密码并不能被修改或获取。 你可以按如下命令来生成ssh key:

      ssh-keygen -t rsa -C "账户"
    

    这个指令会要求你提供一个位置和文件名去存放键值对和密码,你可以点击Enter键去使用默认值。 用以下命令获取你生成的公钥:

      cat ~/.ssh/id_rsa.pub
    

    复制这个公钥放到你的个人设置中的SSH/My SSH Keys下,请完整拷贝从ssh-开始直到你的用户名和主机名为止的内容。 如果打算拷贝你的公钥到你的粘贴板下,请参考你的操作系统使用以下的命令:

    Windows:

      clip < ~/.ssh/id_rsa.pub
    

    Mac:

      pbcopy < ~/.ssh/id_rsa.pub
    

    GNU/Linux (requires xclip):

      xclip -sel clip < ~/.ssh/id_rsa.pub
    

    把ssh keys 添加后就可以clone下远程仓库的代码 (默认拉取master分支)

  • 根据项目需求配置虚拟主机

    当开始去操作时才发现服务器上的apache目录结构和我本地apache的目录结构并不一样,以至于浪费了比较多的时间,一直在想为什么没有httpd.conf,后来在一篇博文中找到了答案 @博文链接

    1. vi /etc/apache2/sites-available/newhosts.conf

       <VirtualHost *:80>
       ServerName www.name.com
       DocumentRoot "/var/www/html/xxx/public/"
       <Directory "/var/www/html/xxx/public/">
       Options Indexes FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
       DirectoryIndex index.html
       RewriteEngine on
       RewriteBase /
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*) index.html
       </Directory>
       </VirtualHost>
      
    2. 将sites_available链接到sites_enabled文件夹中

       sudo ln -s /etc/apache2/sites-available/newhosts.conf  /etc/apache2/sites-enabled/hosts.conf
      
    3. 重新启动apache

       sudo /etc/init.d/apache2 restart
      
  • 相应文件夹权限赋值

    1. storage文件夹需写入权限
    2. bootstrap/cache文件夹需写入权限
  • 导入数据库