在云服务器上部署项目

  • 以腾讯云为例

远程登录云服务器

在腾讯云中添加SSH密匙(会提示保存一个文件),并绑定到所购买的云服务器上,在本地打开终端输入:

先赋予仅本人可读权限

chmod 400 <下载的与云服务器关联的私钥的绝对路径>

输入以下指令即可远程登录

ssh -i “<下载的与云服务器关联的私钥的绝对路径>” &#60;username&#62;@&#60;hostname or ip address&#62;

  • username根据购买服务器种类而定,ubuntu的为ubuntu,其他的为root
  • hostname为域名,也可以填写ip地址

搭建环境

更新列表

sudo apt-get update

安装语言包

sudo apt-get install language-pack-zh-han*
locale-gen zh_CN.UTF-8

安装常用软件

sudo apt-get install -y vim git zip unzip

安装配置PHP

sudo apt-get install -y software-properties-common

sudo LC_ALL=zh_CN.UTF-8 add-apt-repository ppa:ondrej/php

sudo apt-get update

apt-cache search php7.2

sudo apt-get install -y php7.2

sudo apt-get install -y php7.2-mysql

sudo apt-get install -y php7.2-fpm

//另外根据laravel项目要求安装相应拓展 

//配置php

sudo vim /etc/php/7.2/fpm/pool.d/www.conf
//36行修改为:listen = /run/php/php7.2-fpm.sock

sudo vim /etc/php/7.2/fpm/php.ini
//776行修改为:cgi.fix_pathinfo =1

安装MySQL

sudo apt-get install -y mysql-server

安装Nginx

//安装之前需确认是否安装了apache2,如果已经安装了apache2,需要先停止/卸载 apache2
//停止
sudo service apache2 stop

//卸载
sudo apt-get --purge remove apache2
sudo apt-get --purge remove apache2.2-common
sudo apt-get autoremove

//安装 nginx
sudo apt-get install -y nginx

配置:

sudo vim /etc/nginx/sites-available/default

server{
    root /var/www/laravel-project/public;//自定义项目根目录,laravel-project为自定义项目名称
    index index.php index.html index.htm

    server_name localhost;//如果有域名改为域名

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

    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;

        //配置跨域访问
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'POST,GET,OPTIONS,DELETE';
        add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Authorization';
    }

    location ~ /\.ht {
        deny all;
    }
}

本地将项目放到github上,服务器通过git拉去

将本地项目放到github上,先在github上创建新项目

cd /var/www/laravel-project

git init
git add -A
git commit -m "更改描述"

git remote add origin https://github.com/UserName/laravel-project.git  //UserName为github用户名
git push -u origin master

在服务器上拉去代码

git pull  //更新github上的代码
git clone https://github.com/UserName/laravel-project.git

配置laravel环境

通过composer官网获取最新四行代码

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

mv composer.phar /usr/local/bin/composer

cd /var/www/laravel-project

composer install --no-dev

创建并修改.env文件

cd /var/www/laravel-project

sudo cp .env.example .env

sudo vim .env

APP_ENV = production
APP_DEBUG = false

DB_DATABASE = 数据库名
DB_USERNAME = 数据库用户名
DB_PASSWORD = 数据库用户密码

生成laravel key执行迁移

php artisan key:generate
php artisan migrate

修改权限并重启

sudo chown -R www-data:www-data /var/www

sudo chmod -R 777 /var/www/laravel-project/storage

service nginx restart

service php7.2-fpm restart
  • 更新项目时,只需要在本地git push origin master,之后在项目目录git pull更新即可