赞
踩
这篇文章是小编在 laravel实战项目中,项目上线过程的记录,包扣一些问题以及一些bug记录。以备不时之需。
Laravel版本5.7 --确定了php7.0以上;
CentOS 7.0或以上。
lnmp 1.5版
首先需要开启php错误显示便于调试
- vim /usr/local/php/etc/php.ini
- 修改
- display_errors = Off
- 改为
- display_errors = On
-
- 改完php.ini要重启一下
- lnmp php-fpm restart
lnmp安装包是懒人最方便布署网站服务器的工具了。比较介意的也可以自己一手编译安装。安装过程在官网写得很清楚,考虑用无人自动化安装方式:https://lnmp.org/faq/v1-5-auto-install.html。安装前最好先使用screen,防ssh在安装过程中自动断开。我是安装了lnmp,使用nginx,不使用apache。
怎么添加,官网有介绍:https://lnmp.org/faq/lnmp-vhost-add-howto.html
添加时写的参数:
(1)域名:指向的域名(或自定义一个假域名)
(2)网站目录:不输入直接回车,那么默认就是/home/wwwroot/域名名称
(3)rewrite规则:y,需要。然后输入laravel回车。
(4)开启访问日志:y, 回车
(5)访问日志名称:直接回车,默认;
(6)数据库建立:n, 否,自己建。
(7)SSL功能:n,不需要。
可以使用sftp方式,也可以通过lnmp安装ftp服务器通过ftp上传。上传完后自己通过 http://服务器ip/phpmyadmin来进行建立数据库和用户账号。完事后再修改项目下的.env文件下的数据库配置。
.env文件线上数据库配置
- DB_CONNECTION=mysql
- DB_HOST=127.0.0.1 (IP,要知道此时我们的host是在本机上,所以不能填的服务器ip。其实当你的代码进入到服务器里的时候,mysql和代码是相当于在同一个ip下,所以要用127.0.0.1,而不是服务器ip)
- DB_PORT=3306 (端口)
- DB_DATABASE=project5 (数据库名称)
- DB_USERNAME=root
- DB_PASSWORD= password (你的服务器root用户密码)
Laravel项目的网站目录应该是项目下的public目录,所以要修改vhost文件:/usr/local/nginx/conf/vhost/域名.conf
修改完后执行 lnmp restart 重新启动一下服务
- server
- {
- listen 80;
- #listen [::]:80;
- server_name lvshop.cooooooder.com ; #域名
- index index.html index.htm index.php default.html default.htm default.php;
- #(1)将root 指向的目录指向为项目下的public目录。
- root /home/wwwroot/laravelProject5/public;
-
- #error_page 404 /404.html;
-
- # Deny access to PHP files in specific directory
- #location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ { deny all; }
-
- include enable-php.conf;
-
- #(2)新增 支持laravel 优雅链接,在laravel 文档里有说明
- location / {
- try_files $uri $uri/ /index.php?$query_string;
- }
-
- #下面的默认不做修改
- location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
- {
- expires 30d;
- }
-
- location ~ .*.(js|css)?$
- {
- expires 12h;
- }
-
- location ~ /.well-known {
- allow all;
- }
-
- location ~ /.
- {
- deny all;
- }
-
- access_log /home/wwwlogs/lvshop.cooooooder.com.log;
- }
(1)、Laravel 项目需要对目录 storage/, bootstrap/cache, public / 赋予读写权限
- //赋予三个目录读写权限
- chmod -R 777 bootstrap/
- chmod -R 777 storage/
- chmod -R 777 public/
(2)、 用 lnmp vhost add 命令 添加的虚拟域名会在根目录生成 .user.ini, 这个.user.ini 不删除会一直报 500 错误
- //在虚拟主机指定的目录里执行
- chattr -i .user.ini //去掉文件保护
- rm .user.ini //删除文件
- Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/***/bootstrap/autoload.php) is not within the allowed path(s): (/home/wwwroot/***/public/:/tmp/:/proc/) in /home/wwwroot/***/public/index.php on line 22
-
- Warning: require(/home/wwwroot/***/bootstrap/autoload.php): failed to open stream: Operation not permitted in /home/wwwroot/***/public/index.php on line 22
-
- Fatal error: require(): Failed opening required '/home/wwwroot/***/public/../bootstrap/autoload.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/***/public/index.php on line 22
此时你需要composer 更新第三方 vendor 组件
在项目目录下执行composer update
更新过程中,可能会报错,需要自行查阅
- //生成key,在项目根目录下执行命令来获取laravel项目app_key
- php artisan key:generate
-
- //之后你可以在app.php中直接修改
- 'key' => env('APP_KEY', 'base64:akjIOLlieujKw0yEUbwjJdP5lPWHkk3uw39CnAhfdasfsaddfggghssda+'),
-
- //或者可以修改配置文件.env中的APP_KEY参数
- APP_KEY=base64:akjIOLlieujKw0yEUbwjJdP5lPWHkk3uw39CnAhfdasfsaddfggghssda+
- //解决方法就是把 package.json 里的 cross-env 都去掉
- {
- "private": true,
- "scripts": {
- "dev": "npm run development",
- "development": "NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
- "watch": "NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
- "watch-poll": "npm run watch -- --watch-poll",
- "hot": "NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
- "prod": "npm run production",
- "production": "NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
- },
- "devDependencies": {
- "axios": "^0.17",
- "bootstrap-sass": "^3.3.7",
- "jquery": "^3.2",
- "laravel-mix": "^1.0",
- "lodash": "^4.17.4",
- "vue": "^2.5.7"
- },
- "dependencies": {
- "china-area-data": "^4.0.0",
- "sweetalert": "^2.1.2"
- }
- }
php artisan cache:clear
- vim /usr/local/php/etc/php.ini
- 修改
- display_errors = On
- 改为
- display_errors = Off
-
- 改完php.ini后重启一些lnmp
- lnmp restart
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。