您现在的位置是:首页 > 经验记录>日常笔记>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项目部署上线
随机推荐
- 系统学习——JavaScript
- uniapp安卓打包使用及获取签名方法,自生成证书
- 阿里云 Failed to download metadata for repo ‘AppStream‘(centos8放弃维护)
- ubuntu 下搭建redis和php的redis的拓展
- linux(ubuntu18.04)虚拟机目录挂载映射到windows目录
- PHP redis扩展,可解决thinkphp报错不支持reids问题
- Laravel 项目上线的一些注意事项
- go-colly 使用文档【翻译】
- 如何在ubuntu上安装多个版本的php?并顺畅切换使用[其它系统类似原理]
- 自己的服务器(本地物理或者云服务器),可以搭建哪些方便自己使用、有意思的服务呢?