写好的项目如何上线?

写完的项目如何部署上线呢?

前言:前几天的文章有写到虚拟机的安装那一块,配置了nginx,mysql,和php

(一)域名解析及ssl证书的申请

以腾讯云为例:

  1. 进入控制台,域名管理,解析,会进入到另外一个页面


    image.png
  2. 添加记录
    image.png

    主机记录:abc
    记录类型:A
    线路类型:默认
    记录值:服务器公网ip
    其他不用改,直接解析
    注:(1)如果你在主机记录第一个框中填入了www,代表你解析的是一级域名,一级域名只能绑一个项目,也就是你上线后你的域名需要www.xxxx.com ,
    (2)解析成二级域名,主机记录框随便写,例如abc,那么访问就变成了abc.xxxx.com
  3. 申请ssl证书(可要可不要,没有就是http连接访问,申请后配置可转换为https访问)例如:没有证书:http://abc.xxxxx.com加了证书之后https://abc.xxxx.com
    证书的申请步骤:
    (1) 控制台,云产品点进ssl证书
    image.png

    (2)申请免费证书
    image.png

    (3)等待审核,审核完后才能下载到本地
(二)xshell连接服务器,配置nginx

命令:ssh xxx@xx.xxx.xx.xxx //xxx:线上服务器用户名可修改 xx.xxx.xx.xxx:服务器公网ip 然后会弹出一个框再输入线上服务器的密码
sudo su //管理员权限
cd /返回根目录
cd etc/nginx/sites-available/ //进入nginx下面
ls
cp default php //php是我随意定义的
vi php
laravel项目将nginx做如下配置

image.png

详细代码如下:

server {
        listen 80;
        server_name abc.xxxx.com;
        server_tokens off;
        location / {
          return 301 https://$host$request_uri;
        }
}
server {
        listen       443 ssl;
        ssl on;         //开启证书
        ssl_certificate       /opt/Nginx/abc.crt;    //证书位置
        ssl_certificate_key    /opt/Nginx/abc.key;   //key位置
        root /var/www/abc/public;
        index index.html index.htm index.php index.nginx-debian.html;
        server_name abc.xxxx.com;
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ .php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/run/php/php7.2-fpm.sock;
      }
       
}

注意:thinkphp项目与其不同,路由那里需要重写,默认的是将
上面的这一段

 location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

改写为

#根据框架需求,配置url重写
      location / {
              try_files $uri $uri/ =404;
      }

但是url模式不同需要重写路由,先将将URL_MODEL设置为2,然后改写为:

location / {
if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=$1  last;
   break;
    }
 }

注:第二段location可以改写为:

  location ~ \.php$ {
                try_files $uri /index.php =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

配置完成之后按esc+:键输入wq保存并退出 linux命令vi vim //打开的方式不同 注意一下,q! //强制退出
命令:nginx -t //检查配置有没有错误
service nginx restart //重启nginx服务
命令:cd /
cd var
ls
chmod -R 777 www //给权限

(三)配置线上数据库
  1. 新建mysql连接


    image.png

    然后点击ssh


    image.png
  2. 新建数据库 名字与本地一致,然后导入sql文件,刷新就可以看见表了

(四)上传项目

  1. 将项目打包成zip格式
  2. 打开FileZilla Client软件,这个网上直接下载很方便的
image.png
  1. 将打包的项目拖到线上站点的/var/www/下面
  2. 将下载的ssl证书解压打开有一个Nginx的文件夹,打开将文件的长名字改为短名字,与之前nginx证书位置设置的名字一样,然后压缩Nginx文件夹,并拖到/opt/文件夹下面,发现传输失败
  3. 回到xshell给chmod -R 777 opt权限,然后再传输
  4. linux安装解压缩 命令:apt-get install unzip
  5. cd 命令进入www 解压缩unzip xxx;然后给权限chmod -R 777 xxx
  6. cd命令进入opt,解压缩证书,然后删除压缩包
  7. cd 进入项目文件 命令:vi .env对env文件里面的本地数据改为线上的例如数据库等等其他环境变量;

(五)测试访问ok!!!

(六)线上线下开启自动同步:修改线下的代码让线上与之同步

点击Configuration


image.png

做如下配置


image.png

勾选自动上传
image.png

取消勾选


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。