当前位置:   article > 正文

.net core 项目怎么把文件放到域名根目录_使用lnmp一键安装搭建laravel线上项目bug集结...

将下载的文件上传至填写域名根目录下

485bf994190be2e31a0941264acad039.png
这篇文章是小编在 laravel实战项目中,项目上线过程的记录,包扣一些问题以及一些bug记录。以备不时之需。

先说下项目的配置:

Laravel版本5.7 --确定了php7.0以上;
CentOS 7.0或以上。
lnmp 1.5版

项目上线过程

首先需要开启php错误显示便于调试

  1. vim /usr/local/php/etc/php.ini
  2. 修改
  3. display_errors = Off
  4. 改为
  5. display_errors = On
  6. 改完php.ini要重启一下
  7. lnmp php-fpm restart

1、服务器安装lnmp1.5:

lnmp安装包是懒人最方便布署网站服务器的工具了。比较介意的也可以自己一手编译安装。安装过程在官网写得很清楚,考虑用无人自动化安装方式:https://lnmp.org/faq/v1-5-auto-install.html。安装前最好先使用screen,防ssh在安装过程中自动断开。我是安装了lnmp,使用nginx,不使用apache。

2、添加虚拟主机:

怎么添加,官网有介绍: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,不需要。

3、搬项目文件到网站目录:

可以使用sftp方式,也可以通过lnmp安装ftp服务器通过ftp上传。上传完后自己通过 http://服务器ip/phpmyadmin来进行建立数据库和用户账号。完事后再修改项目下的.env文件下的数据库配置。
.env文件线上数据库配置

  1. DB_CONNECTION=mysql
  2. DB_HOST=127.0.0.1 (IP,要知道此时我们的host是在本机上,所以不能填的服务器ip。其实当你的代码进入到服务器里的时候,mysql和代码是相当于在同一个ip下,所以要用127.0.0.1,而不是服务器ip)
  3. DB_PORT=3306 (端口)
  4. DB_DATABASE=project5 (数据库名称)
  5. DB_USERNAME=root
  6. DB_PASSWORD= password (你的服务器root用户密码)

4、修改vhost文件

Laravel项目的网站目录应该是项目下的public目录,所以要修改vhost文件:/usr/local/nginx/conf/vhost/域名.conf
修改完后执行 lnmp restart 重新启动一下服务

  1. server
  2. {
  3. listen 80;
  4. #listen [::]:80;
  5. server_name lvshop.cooooooder.com ; #域名
  6. index index.html index.htm index.php default.html default.htm default.php;
  7. #(1)将root 指向的目录指向为项目下的public目录。
  8. root /home/wwwroot/laravelProject5/public;
  9. #error_page 404 /404.html;
  10. # Deny access to PHP files in specific directory
  11. #location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ { deny all; }
  12. include enable-php.conf;
  13. #(2)新增 支持laravel 优雅链接,在laravel 文档里有说明
  14. location / {
  15. try_files $uri $uri/ /index.php?$query_string;
  16. }
  17. #下面的默认不做修改
  18. location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
  19. {
  20. expires 30d;
  21. }
  22. location ~ .*.(js|css)?$
  23. {
  24. expires 12h;
  25. }
  26. location ~ /.well-known {
  27. allow all;
  28. }
  29. location ~ /.
  30. {
  31. deny all;
  32. }
  33. access_log /home/wwwlogs/lvshop.cooooooder.com.log;
  34. }

5、项目目录权限(如果没有权限,访问时会报500错误)

(1)、Laravel 项目需要对目录 storage/, bootstrap/cache, public / 赋予读写权限

  1. //赋予三个目录读写权限
  2. chmod -R 777 bootstrap/
  3. chmod -R 777 storage/
  4. chmod -R 777 public/

(2)、 用 lnmp vhost add 命令 添加的虚拟域名会在根目录生成 .user.ini, 这个.user.ini 不删除会一直报 500 错误

  1. //在虚拟主机指定的目录里执行
  2. chattr -i .user.ini //去掉文件保护
  3. rm .user.ini //删除文件

6、laravel项目在git上clone下来会缺少一下核心库,开启php错误显示会看到类似以下的问题

  1. 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
  2. Warning: require(/home/wwwroot/***/bootstrap/autoload.php): failed to open stream: Operation not permitted in /home/wwwroot/***/public/index.php on line 22
  3. 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
更新过程中,可能会报错,需要自行查阅

7、laravel项目从github上拉取下来后,app_key是没有的,但是每一个laravel项目都需要有一个唯一的app_key,要不然laravel项目无法运行,需要修改config/app.php

  1. //生成key,在项目根目录下执行命令来获取laravel项目app_key
  2. php artisan key:generate
  3. //之后你可以在app.php中直接修改
  4. 'key' => env('APP_KEY', 'base64:akjIOLlieujKw0yEUbwjJdP5lPWHkk3uw39CnAhfdasfsaddfggghssda+'),
  5. //或者可以修改配置文件.env中的APP_KEY参数
  6. APP_KEY=base64:akjIOLlieujKw0yEUbwjJdP5lPWHkk3uw39CnAhfdasfsaddfggghssda+

7、来到这一步,刷新项目可能还会报The Mix manifest does not exist.错误,这是laravel Mix前端任务管理工具报错了

  1. //解决方法就是把 package.json 里的 cross-env 都去掉
  2. {
  3. "private": true,
  4. "scripts": {
  5. "dev": "npm run development",
  6. "development": "NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
  7. "watch": "NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
  8. "watch-poll": "npm run watch -- --watch-poll",
  9. "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",
  10. "prod": "npm run production",
  11. "production": "NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  12. },
  13. "devDependencies": {
  14. "axios": "^0.17",
  15. "bootstrap-sass": "^3.3.7",
  16. "jquery": "^3.2",
  17. "laravel-mix": "^1.0",
  18. "lodash": "^4.17.4",
  19. "vue": "^2.5.7"
  20. },
  21. "dependencies": {
  22. "china-area-data": "^4.0.0",
  23. "sweetalert": "^2.1.2"
  24. }
  25. }

8、安装redis:使用lnmp就可以安装了,官网有说明,这里略过不写。

9、清空缓存:php artisan cache:clear

10、最后需要把php错误显示给关闭

  1. vim /usr/local/php/etc/php.ini
  2. 修改
  3. display_errors = On
  4. 改为
  5. display_errors = Off
  6. 改完php.ini后重启一些lnmp
  7. lnmp restart
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/69628
推荐阅读
相关标签
  

闽ICP备14008679号