您现在的位置是:首页 > 经验记录>日常笔记>laravel上线都要注意什么? 网站首页 日常笔记

laravel上线都要注意什么?

1、应用生产环境

在 .env 文件里设置 APP_ENV=production

 

2、关闭调试模式

在 .env 文件中设置 APP_DEBUG = false

 

3、生成 APP_KEY

使用 Artisan 命令:php artisan key:generate

 

4、优化自动加载

使用 Composer 命令:composer dump-autoload --optimize

 

5、禁止列出上传目录

这里我设置的上传目录在 public/uploads 目录下,在客户端直接敲入 http://域名/uploads 会直接列出所有上传文件。

为了禁止列出 public 下所有文件和文件夹,在 public 目录下的 .htaccess 文件最后加入以下内容:

1
2
3
    Options -Indexes
</Files>


-------------------------------下面是详情--------------------------------------------------------------


操作环境

服务器:阿里云ECS公用镜像 ubuntu14.04 本地:win10


准备

首先用ssh连接到服务器,我用的是Git Bash,阿里云在初始化服务器时可以选择密钥,配置好后启动服务器,在win10下打开Git Bash,命令ssh root@你的公网ip


配置环境前下好language-pack-en-base这个包,解决不同语言之间可能发生的冲突,-y参数的意思是直接安装无需确认。


sudo apt-get update

sudo apt-get install -y language-pack-en-base

1

2

安装完成后运行locale-gen en_US.UTF-8


再在服务器上安装Git sudo apt-get install git


配置环境

安装php7.1

ppa方式安装php7.1:sudo apt-get install software-properties-common 

安装成功后运行sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php添加php7的ppa 

完成后再运行sudo apt-get update更新安装包把刚刚的添加包拉取下来,运行apt-cache search php7.1检验是否安装成功,成功了就能安装php7.1了。 

php7.1安装:sudo apt-get -y install php7.1 

成功后运行php -v查看版本,应显示类似信息


PHP 7.1.0beta2 (cli) ( NTS )

Copyright (c) 1997-2016 The PHP Group

Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies

    with Zend OPcache v7.1.0beta2, Copyright (c) 1999-2016, by Zend Technologies

1

2

3

4

安装php7.1的各个模块

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

sudo apt-get install php7.1-fpm

apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring

1

2

3

安装mysql

sudo apt-get install mysql-server mysql-client过程中输入密码,确定后安装完成。 

mysql -u root -p再输入密码测试,能成功登陆即安装完成。exit退出mysql


因为上线的应用为laravel 5.5版本开发的,为了之后的兼容性问题,ubuntu14.04直接安装的mysql不是较新版本,因此要升级一下mysql:


cd ~

wget https://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.deb

sudo dpkg -i mysql-apt-config_0.8.1-1_all.deb

1

2

3

解压安装包后会弹出框,选择好mysql 5.7版本后选择ok 然后继续


然后,更新包索引:sudo apt-get update


然后,安装MySQL-server:sudo apt-get install mysql-server


然后,升级全部的Mysql数据库:sudo mysql_upgrade -u root -p


最后,重启mysql server:sudo service mysql restart


登陆一下mysql看看是否已经升级完毕,成功了进入下一步


安装Nginx

这里有点迷糊,阿里云的纯净镜像应该是不带Apache2的,但是安装完php7.1后此时检查已经安装了Apache2在服务器上,真是巨坑。。在安装Nginx之前,把Apache卸载掉,不然之后萌新会遇到各种奇怪的错误。


sudo service apache2 stop

update-rc.d -f apache2 remove

sudo apt-get remove apache2

1

2

3

删除完了之后更新一下包列表sudo apt-get update 

然后安装Nginx sudo apt-get install nginx 

安装完成后可以输入公网地址访问,成功的话可以看到Nginx的自带欢迎页面


配置PHP

sudo vim /etc/php/7.1/fpm/php.ini 命令行模式下输入/进入查找模式,搜索fix_pathinfo将cgi.fix_pathinfo=1改为cgi.fix_pathinfo=0


配置Nginx

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


server {

        listen 80 default_server;

        listen [::]:80 default_server ipv6only=on;


        root /var/www/sample/public;

        index index.php index.html index.htm;


        # Make site accessible from http://localhost/

        server_name 你的公网IP(有域名直接填域名);


        location / {

                # First attempt to serve request as file, then

                # as directory, then fall back to displaying a 404.

                try_files $uri $uri/ /index.php?$query_string;

                # Uncomment to enable naxsi on this location

                # include /etc/nginx/naxsi.rules

        }


        location ~ \.php$ {

                try_files $uri /index.php =404;

                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;

                fastcgi_index index.php;

                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

                include fastcgi_params;

        }

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #       deny all;

        #}

}

--------------------- 

root 后填的是laravel项目的public路径,根据项目名称确定这里的信息


安装Composer

cd ~

curl -sS https://getcomposer.org/installer | php

1

2

再使用命令全局可用composer sudo mv composer.phar /usr/local/bin/composer 

因为国内墙的原因,换一下镜像 

composer config -g repo.packagist composer https://packagist.phpcomposer.com


补充:使用composer可能有坑比如 缺少应用造成错误:缺少 zip unzip 包 

Failed to download laravel/laravel from dist: The zip extension and unzip command are both missing, skipping. 

The php.ini used by your command-line PHP is: /etc/php/7.0/cli/php.ini 

解决方案 

sudo apt-get install zip unzip


创建新站点

移步/var/www目录下.使用git clone整个项目,然后/var/www目录下就有你的项目了 

后面以sample项目为例子操作:git clone https://balabala/sample.git

cd sample进入/var/www/sample目录. cp .env.example .env

用vim更改一下配置文件vim .env 

运行mysql,创建一个新的数据库 CREATE DATABASE sample CHARACTER SET =utf8 

APP_NAME=sample

APP_ENV=local

APP_KEY=base64:c656DOWHg7B9THMemhSV67+aRHOeOBypwNZrybaoGzs=

APP_DEBUG=true

APP_LOG_LEVEL=debug

APP_URL=http://localhost


DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=sample

DB_USERNAME=root

DB_PASSWORD=数据库密码


BROADCAST_DRIVER=log

CACHE_DRIVER=file

SESSION_DRIVER=file

SESSION_LIFETIME=120

QUEUE_DRIVER=sync


REDIS_HOST=127.0.0.1

REDIS_PASSWORD=null

REDIS_PORT=6379


MAIL_DRIVER=log 

MAIL_HOST=smtp.mailtrap.io

MAIL_PORT=2525

MAIL_USERNAME=null

MAIL_PASSWORD=null

MAIL_ENCRYPTION=null


PUSHER_APP_ID=

PUSHER_APP_KEY=

PUSHER_APP_SECRET=

PUSHER_APP_CLUSTER=mt1

在/var/www/sample目录下运行命令composer install

完成后运行php artisan key:generate生成密钥

命令php artisan migrate迁移数据库

命令php artisan up上线

最后给予目录权限


sudo chmod -R 775 storage/

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

1

2

重启Nginx服务

如果运气够好,环境一致的话,按照步骤已经部署完成,重启Nginx


sudo service nginx restart

sudo service php7.1-fpm restart

1

2

此时在另一设备上从浏览器输入服务器的公网ip已经可以访问您的Laravel项目了! 

部署完成!! 

新手搞这个部署到处找资源,然后磕磕绊绊终于部署成功,很开心。写这个教程希望可以帮助到更多的希望接触laravel开发的同学们~


致谢

一步步教你部署laravel到服务器 

laravel部署上线的最佳实践 

laravel部署LNMP脚本 

配置过程中这些文章给我很大帮助!脚本部署试了一次但是失败了,以后再做尝试~

--------------------- 


详情form  CSDN博客: 本地laravel项目部署上线


文章评论

未开放
Top