向Laravel进军1

Laravel学习记录

写在前面

因为laravel是一个非常牛逼的php框架,但是中文学习资源实在是有点呵呵。只能说这是个门槛很高,需要集合很多知识才能摸清楚的框架,和thinkphp对比,大概就像是Linux和Windows的区别。所以打算写这个blog记录自己从萌新入门Laravel的过程。目前已经学习过了php的基础语法和一些内置函数,高级特性也有所了解。前端的html,css,js都是快速过了一遍,计算机网络的知识基本等于零,能看懂http请求头。做一个类似sina blog的东西来正式进入laravel的世界吧。

Laravel简介

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

版本选择

新手不多说,刚好最新的LTS发了,laravel5.5是最佳选择

常用链接

Laravel官网
Laravel中文社区
Laravel 5.5 LTS中文文档
PHP手册

有不懂的翻laravel手册,PHP手册。简洁一点,实战开始。


编辑器

流行编辑器很多,我已经用过sublime和PHPStorm.这个实战是参考教程来做的,所以选和教程一样的编辑器吧。一样是很流行的Atom。Atom官网直接download贼坑,不按常理出牌直接默认安装到C盘。百度云链接Atom。这样你想解压到哪就解压到哪。
安装完毕后,将Atom添加到PATH的系统变量里,这样可以在命令行运行Atom命令。具体配置方法:
打开桌面,右击计算机->属性->高级系统设置->环境变量->找到系统变量->Path->编辑->新建 然后把你解压的Atom根目录放进去。点击确认就完成了PATH环境变量的配置

命令行工具

好吧虚拟机管理,Git,部署到线上都是需要会命令行的。作为一个程序员也得学这些了吧,完全OK。成为一名优秀的程序员的第一步开始了,选一个好的命令行工具。Windows环境下,配备GitHub出品的Git for Windows.


配置环境

Homestead

我只能说搭开发环境是个操蛋的事情,而且有人用的mac,有人用的win,有人用linux,所以说搭起来就得折腾个半天之后用起来还老出各种bug让人想放弃,门槛太高了。Laravel用了一个封装好的Vagrant,解决了这一问题。Vagrant是基于VituralBox的一款用于创建和部署虚拟开发环境的工具,虚拟机大家应该不陌生。Homestead是一个基于Ubuntu的虚拟机,包含了所有Laravel开发时需要用到的东西,同时还会装上很多开发工具来辅助Laravel进行项目开发,包括PHP7,Nigix,Redis,Memcached,MySQL,Git,Node.js,NPM等等。这些词听过一些,不虚,实战一波应该就稳多了。而且Homestead确实是实际生产中必备的环境,必须掌握的技术栈。

步骤

  1. 安装 VirtualBox
  2. 安装 Vagrant
  3. 导入Homestead Box 虚拟盒子
  4. 安装Git
  5. 安装Homestead管理脚本
  6. 配置Homestead.yaml文件
  7. 启动Homestead虚拟机
    请做好准备,这个环境配置有点复杂的

安装VirtualBox

VirtualBox是一款虚拟机软件,支持大部分主流系统。win10务必安装最新版本的virtualbox

安装Vagrant

Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant让你通过编写一个Vagrantfile文件控制虚拟机的启动、虚拟网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。——laravel入门教程

win10请务必安装最新版本的vagrant

Homestead组成

Homestead包含两部分:

  • Homestead管理脚本
    由Ruby和Shell脚本编写而成,通过傻瓜配置完成复杂的任务。常用的任务有:IP配置,端口映射,Nginx Site创建,数据库创建,主机文件夹挂载到虚拟机等。所有Homestead的版本历史:Homestead
  • Homestead Box虚拟机盒子
    homestead.box 虚拟机盒子是提前打包好的 Vagrant Box 虚拟机盒子,里面预装了 Nginx Web 服务器、PHP 7.0、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时所需要用到的各种软件。

安装和使用Homestead

步骤如下:

  1. 下载和导入 Homestead Box 虚拟机盒子;
  2. 安装 Git ,为下载 Homestead 管理脚本做准备;
  3. 使用 Git 下载 Homestead 管理脚本;

下载导入Homestead Box

本次实战特配Homestead虚拟机盒子,建议使用迅雷离线下载的方法下载此盒子。Homestead虚拟机盒子。如果是胖科的同学可以开了5.2G频段或者接网线用网络通的9号出口去下载,速度大概在10M/s.

特质版的特点:

  • Composer加速,配置了Composer中国全量镜像
  • 默认集成Heroku工具
  • 默认继承Yarn,并为Yarn加了淘宝的镜像加速
  • 使用CNPM对NPM加速

下载成功后,对其进行zip解压操作,解压成功后看到目录
lt-homestead-3-0-0-2017082400,此目录下包含两个文件:

  • homestead-virtualbox-3.0.0.box(教程定制化过的 Homestead 盒子)
  • metadata.json(盒子的导入配置文件)

在解压目录lt-homestead-3-0-0-2017082400中运行
命令导入Box:vagrant box add metadata.json就完成了Homestead Vagrant 盒子的导入
导入成功后,lt-homestead--0-0-07082400可以删除


安装Git

因为已经选了Git for Windows作为默认命令行工具,该工具已经默认安装好了Git.使用以下命令查看是否安装成功
git --version成功显示即可

下载Homestead管理脚本

使用Git下载定制版的Homestead:

cd C:\Users\username
git clone https://git.coding.net/summerblue/homestead.git Homestead

下载完成后使用命令行进入Homestead目录,再使用Git检出我们需要的Homestead版本:

cd C:\Users\username\Homestead
git checkout v5.4.0

然后初始化Homestead:
bash init.sh

此时Homestead目录下生成了三个文件:

  • Homestead.yaml - 主要配置信息文件,我们可以在此文件中配置 Homestead 的站点和数据库等信息;
  • after.sh - 每一次 Homestead 盒子重置后(provision)会调用的 shell 脚本文件;
  • aliases - 每一次 Homestead 盒子重置后(provision),会被替换至虚拟机的 ~/.bash_aliases 文件中,aliases 里可以放一些快捷命令的定义。

配置Homestead.yaml

配置过程有以下几点:

  • 虚拟机设置
  • SSH 秘钥登录配置;
  • 共享文件夹配置;
  • 站点配置;
  • 数据库配置;
  • 自定义变量;

之前已经配好了Atom,直接用Atom命令打开Homestead.yamlatom Homestead.yaml

虚拟机设置

Homestead 支持我们对虚拟机的 IP,内存,CPU,虚拟机的默认提供者进行配置。这里我们基本不需要做任何配置,因此可以跳过。

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

SSH密钥登陆配置

  • authorize 选项指定登陆虚拟机授权连接的公钥文件,此文件填的是主机上的公钥文件地址,虚拟机初始化时,文件内容会被复制到虚拟机的/home/vagrant/.ssh/authorized_keys文件中,从而实现SSH免密码登陆。这里我们默认填写即可authorize: ~/.ssh/id_rsa.pub
  • keys 是数组选项,填的是本机的SSH私钥文件地址。虚拟机初始时会把私钥文件复制到虚拟机的/home/vagrant/.ssh/文件夹中,从而虚拟机共享主机上的SSH私钥文件。这里将公钥和私钥一起同步到虚拟机中:
keys:
	- ~/.ssh/id_rsa
	- ~/.ssh/id_rsa.pub

ctrl s保存后,来生成SSH Key.生成前可以用命令ls -al ~/.ssh检查主机上是否已经生成过SSH Key.如果存在id_rsa 和 id_rsa_pub的话,就不用生成SSH Key了,否则:执行以下命令
ssh-keygen -t rsa -C "your_email@example.com"其中把邮箱改成自己的
一路回车下去选择的就是默认值,最后生成完毕后再使用ls -al ~/.ssh,即可看到id_rsa 和 id_rsa_pub两个文件。

共享文件夹配置

Atom Homestead.yaml再打开配置文件
folders用来指定要映射到Homestead虚拟机上的文件夹:

  • map : 对应的是本地文件夹,格式比如 C: /Users/Homestead/Code
  • to : 对应的时Homestead上的文件夹
    配置如下:
folders:
	- map: ~/Code
	  to: /home/vagrant/Code

在本地创建一个~/Code:

cd ~
mkdir Code
cd Code/
explorer .

在命令行中用explorer .打开此目录:
实战中的所有Laravel项目都是放在该文件夹下,Homestead会把该文件夹下的项目自动映射到虚拟机的 /home/vagrant/Code 文件夹下

站点配置

站点配置允许在你的主机里,通过域名来访问虚拟机里的Laravel应用。sites的配置显示,将homestead.app映射到一个Laravel项目的public目录上。

sites:
	- map:homestead.app
	  to:/home/vagrant/Code/Laravel/public

这一行配置让Homestead创建一个Niginx站点,并且把Web Root配置到指定目录下。Laravel应用的Nginx站点Web Root配置,默认就是在根目录下的public目录。(这一段要是看不懂没关系,以后回过头来就看懂了)现在Laravel项目还没创建,不着急,之后会创建的。此外,主机里直接访问虚拟机的站点需要绑定hosts来实现:利用hosts文件绑定homstead.app到虚拟机IP192.168.10.10上。用命令行打开配置文件:atom C:atom C:/Windows/System32/Drivers/etc/hosts
在文件的最后一行添加:192.168.10.10 homestead.app
(如果当前用户权限不够,修改hosts文件的访问权限后再修改即可)
OK,站点配置完毕,此后就可以通过浏览器访问homestead.app站点了

数据库配置

为Homestead制定数据库名称,默认名称是homestead

databases:
	- homestead

自定义变量

如果要自定义一些在虚拟机上可以使用的变量,可以在variables中定义。

variables:
	- key:APP_ENV
	  value:local

萌新用不到此功能
好了,漫长的配置Homestead.yaml工作完成了,happy


运行Vagrant

Homestead的配置完成了,运行Vagrant来启动虚拟机。常用的vagrant命令有

  • vagrant init : 初始化 vagrant
  • **vagrant up ** : 启动 vagrant
  • vagrant halt : 关闭 vagrant
  • vagrant ssh : 通过 SSH 登录 vagrant(需要先启动 vagrant)
  • vagrant provision : 重新应用更改 vagrant 配置
  • vagrant destroy : 删除 vagrant

启动Homestead:cd ~/Homestead && vagrant up
第一次启动时,Vagrant会做几件事情:

  • 将导入的Homestead虚拟机盒子为模板,新建一台虚拟机
  • 按照Homestead.yaml里的配置信息对这台新的虚拟机进行配置
  • 配置完成后启动虚拟机

成功启动后,在~/Homestead目录里通过以下命令来SSH登陆到Homestead虚拟机里:
vagrant ssh
登陆成功后,终端界面中输入的命令就都会运行在Homestead虚拟机里。

输入exit可以退出虚拟机。
最后,固安比vagrant使用命令vagrant halt

如果进行到了这一步,恭喜,咱们配置任务大功告成

浏览器选择

选Chrome,简洁强大,别问为什么。很好,Laravel第一关被攻克了。

posted @ 2018-01-05 03:38  ustc_rjgc2017  阅读(236)  评论(0编辑  收藏  举报