阿里云ecs部署lnmp和进行laravel项目部署

LNMP环境介绍


LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

安装nginx服务器

注:
我的ecs上选择的是Ubuntu16,64位的操作系统


  1. 更新包列表
sudo apt-get update
  1. 安装nginx
sudo apt-get install nginx
  1. 启动nginx服务
    sudo service nginx start
    在浏览器输入公网ip,可以看到nginx的欢迎界面


    阿里云ecs部署lnmp和进行laravel项目部署_第1张图片

安装mysql


  1. 安装mysql服务和客户端
    sudo apt-get install mysql-server mysql-client
  2. 安装好后运行
    mysql -u root -p
    出现如下界面,成功


    阿里云ecs部署lnmp和进行laravel项目部署_第2张图片

安装PHP


  1. 安装php
 sudo apt install php7.0 php7.0-fpm php7.0-mcrypt
阿里云ecs部署lnmp和进行laravel项目部署_第3张图片
  1. 配置php
    vim /etc/php/7.0/fpm/php.ini
    通过输入/cgi.fix_pathinfo=1来快速查找cgi.fix_pathinfo选项并将它前面的“;”去掉,值改为0


    阿里云ecs部署lnmp和进行laravel项目部署_第4张图片
  2. 启用php7.0-mcrypt
    sudo phpenmod mcrypt
  3. 重启php7.0-fpm
    sudo service php7.0-fpm restart

安装composer


  1. composer介绍
    简单来说,Composer 是一个新的安装包管理工具,服务于 PHP 生态系统。它实际上包含了两个部分:Composer 和 Packagist。
  2. 安装composer
方法一
  • 依次执行以下三条命令
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"     #下载安装脚本 - composer-setup.php - 到当前目录
php composer-setup.php      #执行安装过程
php -r "unlink('composer-setup.php');"      #删除安装脚本
  • 全局安装
    全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。
方法二
  • 去以下网址下载最新版composer.phar ,并上传到服务器
  • 添加执行权限
    chmod a+x composer.phar
  • 全局安装
    sudo mv composer.phar /usr/local/bin/composer
  1. 查看是否安装与设置成功
    composer -version
    阿里云ecs部署lnmp和进行laravel项目部署_第5张图片

    注:
    这里报了一个警告:Do not run Composer as root/super user! See https://getcomposer.org/root for details
    意思是叫你不要用root用户执行composer相关命令。这是出于对安全的考虑。
    解决:
    切换到非root用户执行composer命令。
  2. 配置 composer 使用国内源,提升速度
    composer config -g repo.packagist composer https://packagist.phpcomposer.com

在阿里云ECS上部署Laravel项目


  1. 配置nginx服务器
    首先,对需要修改的nginx配置文件进行备份
    cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
    然后修改nginx的配置文件
    sudo vim /etc/nginx/sites-available/default
    要修改的是server的部分
    server {
    listen 80 default_server;
    listen [::]:80 default_server;

     root /var/www/html;
    
     index index.html index.htm index.nginx-debian.html;
    
     server_name _;
    
     location / {
             try_files $uri $uri/ =404;
     }}
    

修改以下部分:

  • root部分的修改
    root /var/www/blog/public; # 这里的blog是你自己的laravel项目名称
    将nginx服务器的根目录指向blog的public文件夹下,Laravel项目的代码将会放在/var/www/blog目录下

  • index部分的修改
    index index.php index.html index.htm index.nginx-debian.html;
    注意:将index.php排在最前面

  • server_name部分的修改
    server_name server_domain_or_IP;
    其中,server_domain_or_IP是公网的ip

  • location部分的修改

   location / {
           try_files $uri $uri/ /index.php?$query_string;
   }
  • 最后
    我们还需要配置一下Nginx,让其执行PHP文件。同样是在这个文件里,在location下方添加下面的配置:
        location ~ \.php$ {
                try_files $uri /index.php =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
       }
  • 配置完之后重启Nginx,使上面的配置项生效。
    sudo service nginx restart
  1. Laravel项目迁移和创建
    laravel项目创建
  • 在/var/www目录下,创建laravel 5.1项目, 若不指定版本,默认安装最新版
    composer create-project laravel/laravel --prefer-dist blog 5.1
    其中 blog是laravel项目的名称
    命令执行完后,就会在/var/www下执行生成一个blog文件夹。然后可以进行相关开发。

laravel项目迁移

  • 将本地的laravel项目文件一起通过filezill等工具上传到/var/www目录下。这里的项目名称应该和nginx配置文件的root部分的修改一致。
  • 配置云服务器上的mysql数据和本地laravel项目数据一致。重建相关表和数据填写。
    如果执行数据库迁移的时候报以下错误: root@'localhost' 。。。
    多半是root权限的问题
    可以试试以下方法:
    方法一
    mysql中执行如下命令:
    grant all on . to root@'localhost' identified by password '' with grant option;
    方法二
  1. laravel项目的权限更改
sudo chmod -R 777 /var/www/laravel项目名称/storage   #修改storage文件夹权限
sudo chown -R :项目所有者 /var/www/laravel    #修改项目所有者权限,根据需要修改
  1. 完了 就可以在浏览器中输入网址,既可以看到相应页面。

参考:

开启 Laravel 之旅以及环境配置
在阿里云ECS上搭建LEMP环境
nginx+MySQL+Laravel+PHP7+Redis+Node.js
从零开始部署一个 Laravel 站点
Packagist / Composer中国全量镜像

你可能感兴趣的:(阿里云ecs部署lnmp和进行laravel项目部署)