PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)(1)

avatar
作者
猴君
阅读量:0

2、初始化

$ php artisan ide-helper:generate

  • 如果报错 Method Illuminate\Routing\Route::get does not exist.

image.png

解决办法:找到 /routes/web.php 文件,调整之后再次运行初始化命令

// 方式一:注销该行代码

// use Illuminate\Routing\Route;

// 方式二:导入正确的地址

use Illuminate\Support\Facades\Route;

Route::get(‘/’, function () {

return view(‘welcome’);

});

  • 运行命令后,会输出 A new helper file was written to _ide_helper.php,表示成功!

3、初始化前后比较

  • 初始化前:

  • 初始化后:

  • 后续有必备插件在持续添加…

五、Laravel 项目运行(本地apachenginx
  • 方式一:命令行启动,运行窗口不能关闭

$ php artisan serve

// 或指定端口来运行

$ php artisan serve --port=8000

  • 方式二:apache 启动,注意文件夹的访问权限。

  • 找到 httpd-vhosts.conf 新增一个虚拟机

<VirtualHost *:80>

域名

ServerName www.dzm.com

错误日志

ErrorLog “/Users/dengzemiao/Sites/laravel-test/logs/error.log”

成功日志

CustomLog “/Users/dengzemiao/Sites/laravel-test/logs/access.log” combined

域名根目录,注意:需要链接到 laravel 项目的 public 文件夹下

DocumentRoot “/Users/dengzemiao/Sites/laravel-test/public”

域名根目录权限,注意:需要链接到 laravel 项目的 public 文件夹下

<Directory “/Users/dengzemiao/Sites/laravel-test/public”>

运行列出目录(正式服务器需要去掉 Indexes)

Options Indexes FollowSymLinks

运行权限覆盖

AllowOverride All

运行所有人访问

Require all granted

  • 重启 apache,运行 $ sudo apachectl -k restart,打开 http://www.dzm.com/(由于我是本地电脑安装的 apache 测试,非真服务器环境,本地需要修改 hosts 文件,添加上 127.0.0.1 www.dzm.com)。

  • 打开链接如果报错 failed to open stream: Permission denied,说明文件有权限问题,解决办法:直接给整个项目加上访问权限:

// 进入到项目存放目录(这个看自己的存放位置)

$ cd /usr/local/var

// 直接给整个项目添加权限

$ chmod -R 777 laravel-test

// 如果报错 chmod: Unable to change file mode on laravel-test/storage/framework/views/eef325e700d1864421506922200f7548a0f32fd8.php: Operation not permitted

// 我这里是直接删除了这种文件,一看估计就是个缓存文件,然后重新添加权限

  • 然后就访问成功!

server {

监听端口

listen 8081;

主机名称

server_name www.dzm.com;

域名根目录,注意:需要链接到 laravel 项目的 public 文件夹下

root /usr/local/var/laravel-test/public;

add_header X-Frame-Options “SAMEORIGIN”;

add_header X-XSS-Protection “1; mode=block”;

add_header X-Content-Type-Options “nosniff”;

index index.html index.htm index.php;

charset utf-8;

location / {

try_files $uri u r i / / i n d e x . p h p ? uri/ /index.php? uri//index.php?query_string;

}

location = /favicon.ico { access_log off; log_not_found off; }

location = /robots.txt { access_log off; log_not_found off; }

error_page 404 /index.php;

官方配置

location ~ .php$ {

# 本地 php 服务端口 $ sudo php-fpm

# 设置监听端口

fastcgi_pass 127.0.0.1:9000;

# 设置 nginx 的默认首页文件

fastcgi_index index.php;

# 参数

fastcgi_param SCRIPT_FILENAME r e a l p a t h r o o t realpath_root realpathrootfastcgi_script_name;

# 引入配置文件

include fastcgi_params;

}

本地配置(Mac)

location ~ .php$ {

设置监听端口

fastcgi_pass 127.0.0.1:9000;

设置 nginx 的默认首页文件

fastcgi_index index.php;

引入 fastcgi 的配置文件

include fastcgi.conf;

}

location ~ /.(?!well-known).* {

deny all;

}

错误日志

error_log /usr/local/var/laravel-test/logs/error.log;

成功日志

access_log /usr/local/var/laravel-test/logs/access.log;

}

  • 刷新 nginx 配置文件,运行 $ nginx -s reload,打开 http://www.dzm.com/ 或者 http://www.dzm.com:8081/(由于我是本地电脑安装的 nginx 测试,非真服务器环境,本地需要修改 hosts 文件,添加上 127.0.0.1 www.dzm.com)。

  • 打开链接如果报错 failed to open stream: Permission denied,可以看 方式二:apache 启动 尾部的解决方法。

  • 然后就访问成功!访问结果跟 方式二:apache 启动 一样。

  • 到这里 Laravel 创建项目到服务器 (nginx、apache) 运行就 OK 了!!


六、目录结构
  • 【重要目录】app 目录:项目的核心目录,主要用于存放核心代码,所编写的代码绝大多数也会放到这里,如控制器、模型等。

  • 控制器 存放 app/Http/Controllers

  • 模型存放 存放 app/Models,系统默认是根目录,文件夹需新建

  • bootstrap 目录Laravel 启动目录,目录包含了框架启动和自动加载设置的文件,autoload.php 文件用于自动载入需要的类文件,该文件夹只用来看一般不用改动,上线此目录要有可写的权限 $ chmod -R 777 目录名

  • 【重要目录】config 目录:项目的配置日录,主要存放配置文件,比如数据库的配置。

  • app.php: 项目主要配置文件

  • database.php: 针对数据库的配置

  • 文件名都可以见名思意 …

  • database 目录:目录包含了数据迁移及填充文件,就是使用文件的方式,来管理数据库,创建一个 PHP 文件,在文件中设计表结构,运行该文件,完成表的创建。

  • public 目录Laravel 项目的 web虚拟主机 指定的目录 (也就是网址根目录),项目的入口文件和系统的静态资源目录(css, img, js, uploads) 后期使用的外部静态文件 (js、 css.图片等) 都需要放到 Public 目录下。

  • 【重要目录】resources 目录:存放视图文件,还有就是语言包文件的目录。(注意:Laravel 中的模板引擎为 blade 模板引擎,后缀为 .php,也可以称为双后缀文件 例: welcome.blade.php)

  • 【重要目录】routes 目录:定义路由的目录,Laravel 中所有的访问请求,都必须事先定义好路由, web.php 定义网页路由,api.php 定义接口路由。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
,同时减轻大家的负担。**

[外链图片转存中…(img-rB3af27w-1715579722887)]

[外链图片转存中…(img-sCZ7dznT-1715579722887)]

[外链图片转存中…(img-dnupxtl2-1715579722887)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!