Laravel入坑指南(1)——Hello World
接触PHP已经挺长一段时间了,一直对这个世界上最好的语言情有独钟。用熟练了之后,发现PHP不仅是天下第一,而且是宇宙第一。但是自从Laravel诞生之后,博主一直对Laravel有莫名的抵触,觉得这个框架就是JAVA SSM的山寨货,一直好感缺缺。最近觉得自己应该静下心做点事情,就把Laravel拿起来看了看,顺手试用了一下,发现“还挺香”。决定记录一下几个关键的入门知识,以表入坑Laravel。
(在这里,博主假设大家已经具备web服务器的配置能力,而且当前的web与php7环境已配置完成。博主用的是centos7+nginx+php7)
一、Hello World
作为一个程序猿的一股泥石流,博主深知入坑一个知识,最急迫的任务就是把它跑起来。
网上很很多教程,主要是用composer的create-project进入laravel项目的建构。但是问题来了,整个建构的过程会从github拉取工程项目,一道名曰GF的大墙会把你堵得喘不过气,速度如龟爬不说,而且有时还爬不动。有人会说了,把composer的源改到phpcomposer或者aliyun上。但是笔者试验后发现,这一波操作太天真了,构建的速度照样是慢。此时博主在create-project过程中加入-vvv参数,仍有一大部分的大文件从墙外拉取,导致速度极慢。
怎么办呢?要么每构建一次项目,等一个小时,去品品茶,喝喝咖啡也是极好的;要么另想它法。博主决定去github的laravel项目下载整个框架源码,但是下载后发现,卧槽,源码真是干净啊,连个vendor都没有。对于一个刚刚入坑的新手,拿到这份源码,真心浪不起来。一计不成,心生二计,博主直接去搜索是否有同步好的完整包。下面将完整的Hello World记录一下。
1) 下载完整的Laravel框架包 (选择一款你喜欢的)
2)下载之后,将包里的文件解压出来,你会看到如下的目录结构
不知道这个结构什么意思?没关系,现在的你还不需要知道。我们只需要将这个文件目录放置在你想要放的位置就行。
3)将public目录设置为站点根目录
然后在站点server配置节中添加上
location / {
try_files $uri $uri/ /index.php?$query_string;
}
如下图:
这时候,你访问http://localhost(或http://127.0.0.1,根据你的环境中实际的地址进行访问),会发现又一个卧槽,报错。不要急,看下一步。
4)最后的操作
首先,我们要了解,Laravel框架要求每个项目,都有一个自己的key,而这个key保存在项目根目录的.env文件(这里划重点)中。这时你会发现,有些版本下载下来的包里,连这个文件的影子都看不到,怎么破?只需要在根目录,新建一个文本文件,将文件名改成.env即可。文件的内容如下:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD= BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120 REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379 MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET= PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
然后,在项目根目录下运行命令:php artisan key:generate,这时候.env文件中的APP_KEY这一项就会被生成一个key值。
5)大功告成:
这时再访问这个站点,就可以看到以下界面,这时Hello World项目就被完美跑起来了:)
到这里Laravel入坑指南第一节就完成了。这坑指南主要是让各位初学者24小时精通Laravel(别用砖头扔我),所以会以实用的角度进行知识点的疏理,对于Laravel学院派的角度大家多多关注官网的手册。
好了,大家下回再见:)
--------------------------- 我是可爱的分割线 ----------------------------
最后博主借地宣传一下,漳州编程小组招新了,这是一个面向漳州青少年信息学/软件设计的学习小组,有意向的同学点击链接,联系我吧。
Laravel入坑指南(1)——Hello World的更多相关文章
- electron入坑指南
electron入坑指南 简介 electron 实际集成chrome浏览器和node环境, 运行你写的网页 app 基本目录结构 index.html 名称可以不是index, 这个文件与普通网页的 ...
- C语言入坑指南-被遗忘的初始化
前言 什么是初始化?为什么要初始化?静态变量和局部变量的初始化又有什么区别?实际应用中应该怎么做?本文将一一回答这些问题. 什么是初始化 初始化指的是对数据对象或者变量赋予初始值.例如: int va ...
- Elasticsearch入坑指南之RESTful API
Elasticsearch入坑指南之RESTful API Tags:Elasticsearch ES为开发者提供了非常丰富的基于Http协议的Rest API,通过简单的Rest请求,就可以实现非常 ...
- ElasticSearch入坑指南之概述及安装
---恢复内容开始--- ElasticSearch入坑指南之概述及安装 了解ElasticSearch ElasticSearch(简称ES)基于Lucene的分布式全文检索引擎.使用ES可以实现近 ...
- eclipse中导入外部包却无法查看对应源码或Javadoc的入坑指南
eclipse中导入外部包却无法查看对应源码或Javadoc的 入坑指南 出现这个错误的原因是,你虽然导入了.jar包,但没有配置对应的Javadoc或源码路径,所以在编辑器中无法查看源 码和对应AP ...
- Rust入坑指南:核心概念
如果说前面的坑我们一直在用小铲子挖的话,那么今天的坑就是用挖掘机挖的. 今天要介绍的是Rust的一个核心概念:Ownership.全文将分为什么是Ownership以及Ownership的传递类型两部 ...
- Rust入坑指南:鳞次栉比
很久没有挖Rust的坑啦,今天来挖一些排列整齐的坑.没错,就是要介绍一些集合类型的数据类型."鳞次栉比"这个标题是不是显得很有文化? 在Rust入坑指南:常规套路一文中我们已经介绍 ...
- Rust入坑指南:亡羊补牢
如果你已经开始学习Rust,相信你已经体会过Rust编译器的强大.它可以帮助你避免程序中的大部分错误,但是编译器也不是万能的,如果程序写的不恰当,还是会发生错误,让程序崩溃.所以今天我们就来聊一聊Ru ...
- Rust入坑指南:朝生暮死
今天想和大家一起把我们之前挖的坑再刨深一些.在Java中,一个对象能存活多久全靠JVM来决定,程序员并不需要去关心对象的生命周期,但是在Rust中就大不相同,一个对象从生到死我们都需要掌握的很清楚. ...
- Rust入坑指南:齐头并进(上)
我们知道,如今CPU的计算能力已经非常强大,其速度比内存要高出许多个数量级.为了充分利用CPU资源,多数编程语言都提供了并发编程的能力,Rust也不例外. 聊到并发,就离不开多进程和多线程这两个概念. ...
随机推荐
- cancal报错 config dir not found
替换classpath中间封号两边的值
- [转帖]tcplife的使用
https://www.rutron.net/posts/2203/bcc-tcplife-usage/ 这篇文档主要演示了 tcplife(Linux eBPF/bcc) 工具的使用. 示例 tcp ...
- [转帖]oracle 11.2.0.4 rac集群等待事件enq: TM - contention
近期,一金融客户oracle 11.2.0.4 rac集群delete不当导致等待事件enq: TM - contention严重引起大范围会话堆积,记录的相关分析工作如下. 1.登录集群任意节点,查 ...
- [转帖]TiDB 配置参数修改与系统变量修改步骤
https://tidb.net/blog/bda86911 注意事项1:tidb-test 为集群名称 注意事项2:参数修改前与修改后备份.tiup目录 注意事项3:通过 tiup cl ...
- [转帖]linux按行读取 (while read line与for-loop)
https://cloud.tencent.com/developer/article/1655435 在linux下一般用while read line与for循环按行读取文件.现有如下test.t ...
- Tidb 使用minio 进行br备份数据库的过程
Tidb 使用minio 进行br备份数据库的过程 背景 br 备份恢复时一般需要共享存储. 前段时间一直使用的是nfs 进行共享文件备份. 这样需要所有的机器在 相同的目录下面挂载相同的nfs. 并 ...
- [转帖]Nginx 使用与异常处理
http://jartto.wang/2017/04/15/nginx-exception-handling/ 以前总是偷懒使用 Http-Server 来启动一个本地服务,后来花时间学习了一下 Ng ...
- Chrome 下载地址
今天同事找到一个网页 感觉非常好用 这里保存并且推荐一下 https://www.chromedownloads.net/chrome64win-stable/
- Concat、Push、Spread syntax性能差异对比
今天在力扣上做了一道数组扁平化的题,按理来说,应该熟能生巧了,但是在使用concat时候超出了时间限制,使用push可以通过,代码如下: /** * @describe 使用concat,超出时间限制 ...
- 我在京东做研发 | 揭秘支撑京东万人规模技术人员协作的行云DevOps平台
随着业务变化的速度越来越快各类IT系统的建设也越来越复杂大规模研发团队的管理问题日益突出如何提升研发效能成为时下各类技术团队面临的重要挑战 京东云DevOps专家将带您深入研发一线揭秘支撑京东集团万人 ...