Laravel 第一章 环境搭建 PHP

laravel-admin  账号密码为admin

https://laravel-admin.org/docs/zh/installation    laravel-admin文档

主要参考文档  Laravel 开发环境部署   

《Laravel 开发环境部署》 | Laravel China 社区

一、Laravel开发环境

1、Laravel 应用开发,有很多的编辑器可供选择使用,比较流行的有

  • SublimeText
  • Atom
  • PHPStorm
  • Visual Studio
  • Vim
  • Eclipse
  • VS Code

安装Sublime Text3,需要安装蓝灯翻墙工具,view——show console中输入:

import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'Package Control - the Sublime Text package manager' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

需要关闭杀毒软件,重启SublimeText3,在Preferences——PackageControl——输入ins,显示InstallPackage,回车

——输入Editor Config,回车——下方显示安装状态

命令行工具

使用Git-for-windows    下载地址:Windows_免费高速下载|百度网盘-分享无限制

Sublime Text 专门提供了命令行工具 subl.exe,位于 Sublime Text 的安装目录下。

浏览器选择

使用谷歌浏览器  Chrome

Laravel 希望在 Vagrant 的基础上让开发环境更加统一,让开发者都能在指定的具体开发环境下使用 Laravel,这时便有了 Homestead。Homestead 是一个基于 Ubuntu 构建的虚拟机,它包含了所有 Laravel 开发时需要用到的东西,你可以很轻松的通过指定的 Laravel 版本来找到相对应版本的 Homestead 并进行安装。Homestead 提供的默认开发环境还会装上很多常用的开发工具来辅助 Laravel 进行项目开发,包括 PHP7, Nginx, Redis, Memcached, MySQL, Git, Node.js, NPM 等等

Homestead 是 Laravel 官方推荐的开发环境。原因主要有以下:

  • Homestead 是本书很重要的技能点之一,学完此书,你必须学会 Homestead;
  • Homestead 统一了环境,避免歧义,减少新手在学习中遇到不必要的卡顿;
  • 统一环境带来的好处还有:当你遇到问题的时候,其他同学能很容易的帮助到你;
  • 最大程度接近线上生产环境,为后续的课程做铺垫;
  • 这是最佳实践,是需要从一开始培养起来的好习惯。

开发环境搭建

按照这几个步骤来完成整个 Laravel 开发环境的安装及配置:

  1. 安装 VirtualBox
  2. 安装 Vagrant
  3. 导入 Homestead Box 虚拟机盒子
  4. 安装 Git
  5. 安装 Homestead 管理脚本
  6. 配置 Homestead.yaml 文件
  7. 启动 Homestead 虚拟机

1、安装 VirtualBox,按照提示操作一步一步进行安装即可。

2、Vagrant ,用来管理虚拟机的工具,提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置 MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。

3、Homestead 利用 Vagrantfile 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。Homestead 虚拟机里面包含了 Nginx Web 服务器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时需要用到的各种软件。

Homestead 包含了两个东西:

  • Homestead 管理脚本;
  • Homestead Box 虚拟机盒子。

1). Homestead 管理脚本

Homestead 脚本使用 Ruby 和 Shell 脚本编写而成。原理是对 Vagrantfile 文件做定制。将从 ~/Homestead/Homestead.yaml 读取的配置信息,在 provision 时,解析为 Vagrant 命令并进行对虚拟机的配置。Homestead 脚本的作用在于,提供了极其简单易用的接口,使我们只需要通过傻瓜化配置,即可完成复杂的任务。以下是几个常用的任务:

  • IP 配置,端口映射;
  • Nginx Site 创建;
  • 数据库创建;
  • 主机文件夹挂载到虚拟机等任务。

2). Homestead Box 虚拟机盒子

homestead.box 虚拟机盒子是提前打包好的 Vagrant Box 虚拟机盒子,里面预装了 Nginx Web 服务器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时所需要用到的各种软件。

3). 下载和导入 Homestead Box

由于国内的网络环境原因,我们特意为大家定制了适用于国情的 Homestead 安装包,该安装包提供了以下内容:

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

接下来让我们开始进行 Homestead 的安装,首先我们需要下载 Homestead 虚拟机盒子,建议大家使用迅雷离线下载或者其他离线下载方式下载此盒子。

下载后的文件为 lc-homestead-6.1.1-2018090400.zip,请对其进行 zip 解压操作(注意:不能解压到中文文件夹中),解压成功后可以看到目录 lc-homestead-6.1.1-2018090400,此目录下包含两个文件:

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

lc-homestead-6.1.1-2018090400解压目录中,shift+右键,点击:在此处打开命令窗口

输入命令:  vagrant box add metadata.json  回车后等待,直到出现Successfully add box时导入成功

输入命令:vagrant box list,输出:lc/homestead (virtualbox, 6.1.1)至此完成 Homestead Vagrant 盒子的导入。(注:导入成功后,lc-homestead-6.1.1-2018090400 文件夹可任意删除。)

4)安装 Git

使用Git for Windows 来作为你进行 Laravel 项目开发时的默认命令行工具

使用cdm——git --version获取当前git版本

5)下载 Homestead 管理脚本

因国内网络限制,为方便下载和后续管理脚本的流畅使用,本书中将使用定制版本的 Homestead 脚本,定制版有以下优势:

  • 从国内 coding.net 网站下载,下载速度会比 官方 更快;
  • 对脚本进行修改,移除了每一次 provision 时 composer self-update 的卡顿。

接下来,使用 Git 下载定制版的 Homestead:

(1)使用Git方法:右键——Git Bash Here——弹出MINGW64窗口,即为Git

编写命令:cd ~

编写命令:git clone https://git.coding.net/summerblue/homestead.git Homestead

其中:Windows 下,~ 目录代表着 C:\Users\你的用户名,而 ~/Homestead 代表着 C:\Users\你的用户名\Homestead 目录

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

命令:cd ~/Homestead

命令:git checkout v7.8.0

(3)初始化 Homestead:

命令:bash init.sh

运行以上命令后,会在 ~/Homestead 目录下生成以下三个文件:

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

Homestead.yaml 配置文件

可以使用以下命令使用文件夹打开当前命令行所在目录:

cd ~/Homestead/

explorer .

可通过运行下面命令快速打开 Homestead.yaml 文件:

subl ~/Homestead/Homestead.yaml

Homestead.yaml 里的配置大致可以分为以下几种:

  1. 虚拟机设置;
  2. SSH 秘钥登录配置;
  3. 共享文件夹配置;
  4. 站点配置;
  5. 数据库配置;
  6. 自定义变量;

1、 虚拟机设置

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

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

2、SSH 秘钥登录配置

authorize 选项是指派登录虚拟机授权连接的公钥文件,此文件填写的是主机上的公钥文件地址,虚拟机初始化时,此文件里的内容会被复制存储到虚拟机的 /home/vagrant/.ssh/authorized_keys 文件中,从而实现 SSH 免密码登录。在这里我们默认填写即可。

authorize: ~/.ssh/id_rsa.pub

keys 是数组选项,填写的是本机的 SSH 私钥文件地址。虚拟机初始化时,会将此处填写的所有 SSH 私钥文件复制到虚拟机的 /home/vagrant/.ssh/ 文件夹中,从而使虚拟机能共享主机上的 SSH 私钥文件,使虚拟机具备等同于主机的身份认证。此功能为 SSH 授权提供了便利,例如在后面章节中,我们只需要在 GitHub 上配置一个 SSH 公钥,即可实现 GitHub 对虚拟机和主机共同认证。

此处我们将公钥和私钥一起同步到虚拟机中:

keys:
    - ~/.ssh/id_rsa
    - ~/.ssh/id_rsa.pub

接下来我们来生成 SSH Key,开始之前,我们先使用以下命令来检查主机上是否已经生成过 SSH Key:

> ls -al ~/.ssh

如出现total  数字,则已生成SSH Key,否则需要创建

如果存在 id_rsa 和 id_rsa.pub 的话,请跳过以下生成 SSH 的步骤继续阅读剩下内容。

否则使用以下方法来生成 SSH Key,请将 your_email@example.com 替换为你的邮箱:

> ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.

命令行会提示让你指定秘钥的名称,按回车键将 SSH Key 保存到默认文件名即可:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

接下来会询问你为 SSH Key 设置密码,按回车键即可,默认为空密码:

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

SSH 秘钥的两个文件:

  • id_rsa —— SSH 秘钥的 私钥 (Private Key)
  • id_rsa.pub —— SSH 秘钥的 公钥 (Public Key)

3. 共享文件夹配置

通过 folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。

  • map 对应的是我们本机的文件夹,格式例如:E:/Homestead/Code,以开发者实际项目目录为准。
  • to 对应的是 Homestead 上的文件夹。

请统一配置如下:

folders:
    - map: ~/Code
      to: /home/vagrant/Code

默认 Homestead 会将我们本机的 ~/Code 文件夹映射到 /home/vagrant/Code 文件夹上。现在我们本机还没有 ~/Code 文件夹,让我们来创建一个:

> cd ~
> mkdir Code

cd ~/Code

explorer .显示新建的Code文件夹

在后面的章节中,我们将会在该文件夹下放置我们所有的 Laravel 项目,Homestead 会把该文件夹下的项目自动映射到虚拟机的 /home/vagrant/Code 文件夹上。

4. 站点配置

站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面 sites 配置所示,将 homestead.test 映射到一个 Laravel 项目的 public 目录上。这一行配置,会命令 Homestead 为我们新建一个 Nginx 站点,并且把 Web Root 配置到指定目录下。Laravel 应用的 Nginx 站点 Web Root 配置,默认就是在根目录下的 public 目录。

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

目前 Laravel 项目并不存在。这里先统一配置为以上,请不用着急,在后续的章节中,我们会创建该 Laravel 项目。

另外,主机里直接访问虚拟机站点,必须通过绑定 hosts 来实现。接下来我们利用 hosts 文件绑定 homestead.test 到虚拟机 IP 192.168.10.10 上。hosts 文件的完整路径为 C:\Windows\System32\Drivers\etc\hosts,可使用下面命令打开:

 subl C:/Windows/System32/Drivers/etc/hosts

如果你没有集成 subl 命令的话, 请使用编辑器直接打开文件,文件路径在 C:\Windows\System32\Drivers\etc\hosts 。

如果没有hosts文件如何处理?

1)新建一个名为hosts的文本文件,去掉后缀

2)2)将该文件移至 C:\Windows\System32\drivers\etc\ 

3)将Imhosts.sam文件的内容copy至hosts里,保存

在 hosts 文件的最后面加入以下一行:

192.168.10.10  homestead.test

至此站点就配置好了,等我们在后面章节创建 Laravel 项目后,即可通过浏览器访问 homestead.test 站点。

5. 数据库配置

我们可以为 Homestead 指定数据库名称,这里使用默认设置即可。

databases:
    - homestead

6. 自定义变量

最后,如果你需要自定义一些在虚拟机上可以使用的自定义变量,则可以在 variables 中进行定义。

variables:
    - key: APP_ENV
      value: local

Homestead 自定义变量在本书中并未使用,知悉有此功能即可。

运行 Vagrant

完成了 Homestead 的配置,接下来我们要开始启动虚拟机了。

在命令中输入 vagrant,能看到 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

出现问题:

1、Vagrant up 时提示 powershell 版本过低怎么解决?

既然版本过低,就升级新版本就可以了。到微软官方地址去下载对应的windows版本的最新的powershell版本,注意x86和x64

https://docs.microsoft.com/en-us/powershell/wmf/5.1/install-configure      安装完更新后,重新启动电脑再继续执行vagrant up

即可。

2、cd ~/Homestead && Vagrant up 连接超时 Vargant SSH 无法连接进虚拟机?

升级Virtual box,在BIOS中开启VT(虚拟化技术)

华硕主板BIOS开启流程:重启后Del——F7进入高级模式——找到CPU设置——虚拟化技术设置true

第一次启动时,Vagrant 会做以下这几件事情:

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

成功启动后,还是在 ~/Homestead 目录中,通过以下命令来 SSH 登录 Homestead 虚拟机中:

执行命令    $vagrant ssh

在我们登录成功后,你能看到类似于如下图的界面,现在我们在该终端界面中输入的所有命令都将运行在 Homestead 虚拟机上。

在虚拟机界面下可以输入退出虚拟机:

$ exit

最后尝试关闭 Homestead:

> vagrant halt

注意:因为虚拟机的存在,我们会有两个运行命令行的环境,一个是主机,另一个是 Homestead 虚拟机。我们会在命令的前面使用『命令行提示符』来区分主机和 Homestead。请记住以 > 开头的命令是运行在主机里,$ 开头的命令是运行在 Homestead 虚拟机里。

VM登录Homestead login:登录时,账号和密码均为vagrant

启用 Elasticsearch

定制的Homestead中,我们已经内置安装了 Elasticsearch ,但是由于 Elasticsearch 运行时会占用较多系统资源,默认是关闭的。使用的时候你只需要进入虚拟机中,将其开启即可:

$ sudo systemctl restart elasticsearch.service

Elasticsearch 启动需要时间,稍等大概 10s ~ 一分钟以后,使用以下命令检测是否启动成功:

$ curl http://127.0.0.1:9200/

有正常输出(请见下图),说明 Elasticsearch 能正常对我提供服务。

注意:写这篇文章的时候最新版本号是 6.4.0,随着 Homestead 的更新,此版本可能有区别,只要能看到以上输出即表示成功安装。

中文分词插件

默认安装了 elasticsearch-analysis-ik 中文分词插件,你可以使用以下命令查看:

$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list

输出:analysis-ik

关闭 Elasticsearch 开机启动

不需要使用到 Elasticsearch 的话,可以使用以下命令关闭:

$ sudo systemctl disable elasticsearch.service

使用内置的 Laravel 项目

定制版的 Homestead 是专为社区实战课程服务的,Web 开发技术堆栈较为复杂,作为新手,很容易就在一开始的环境部署中遇到问题。

为了提供更好的参考,我们在 Homestead 中内置了课程里的所有项目,你可以在 ~/LaravelChina 文件夹中找到,内容如下:

这些项目已经执行过 yarn install 和 composer install,页面访问的话你还得自行配置 Homestead.yaml 文件以生成可供使用数据库和 Nginx site。可以尝试执行基本的命令:

$ art route:list

如何升级 Homestead 盒子?

第一步、备份

接下来的操作,将会完全删除正在使用的 Homestead 虚拟机。如果你按照课程的最佳实践来操作,我们的数据库表结构是通过 Migration 来生成的,数据库里的数据也是使用 Seed 来做假数据填充的,这些都存放在我们的代码中,而代码是通过 Homestead 将主机的文件夹目录映射到虚拟机里的,所以你应该不需要备份什么数据。

然而,如果你的数据库里有数据是你手动填入,或者因为其他原因不想被重置的话,请自行备份数据库。同样的,如果虚拟机里有其他配置,有备份的需要,也请在此时备份。

第二步、删除虚拟机

在主机的命令行,运行以下命令进入 Homestead 管理脚本的目录里:

> cd ~/Homestead

使用以下命令删除虚拟机:

> vagrant destroy

第三步、删除旧盒子

旧的虚拟机盒子我们已经不会用到,为了节省硬盘空间,我们将对其进行删除。

使用以下命令查看系统里所有的 Vagrant 盒子列表:

> vagrant box list

我们使用的是 lc/homestead 命名的盒子,因为接下来会导入更新的版本,所以这里可以将其他旧版本删除:

> vagrant box remove lc/homestead

第四步、下载并导入新盒子

请先 —— 下载最新版的 Homestead 虚拟机盒子 。

下载后的文件为 lc-homestead-6.1.1-2018090400.zip,请对其进行 zip 解压操作,解压成功后可以看到目录 lc-homestead-6.1.1-2018090400,此目录下包含两个文件:

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

注意:请必须解压到 非中文路径,有同学反馈中文路径会出现不可预知问题。

在解压目录中 lc-homestead-6.1.1-2018090400 运行以下命令导入 Box:

> vagrant box add metadata.json

第五步、重新初始化

运行以下命令进入 Homestead 管理脚本的目录里:

> cd ~/Homestead

使用以下命令创建新的虚拟机:

> vagrant up

注:关于以上的命令,我们在第二步已经删除了 ~/Homestead 文件夹里的虚拟机,此时 vagrant up 命令是我们第一次在此文件夹下执行,会触发 创建 虚拟机的操作,虚拟机创建成功后,后续我们再执行 vagrant up 的话,会执行 启动 虚拟机的操作。

总结

更新完毕以后,因虚拟机是完全新建,你还需要重新进入你的项目,执行迁移、数据填充等操作,有数据备份的话,也请重新导入数据,这里就不一一诉说了。

使用内置的 Laravel 项目

定制版的 Homestead 是专为社区实战课程服务的,Web 开发技术堆栈较为复杂,作为新手,很容易就在一开始的环境部署中遇到问题。

为了提供更好的参考,我们在 Homestead 中内置了课程里的所有项目,你可以在 ~/LaravelChina 文件夹中找到,内容如下:

cd ~/LaravelChina

~/LaravelChina$ ll

cd l01

art route:list

Vim 编辑器教程

本课程中有不少地方需要在终端下使用 Vim 编辑文件,对于初学者来说 Vim 可能不是那么好用,但是这是一个优秀程序员必备的技能。

这里推荐大家学习一下陈皓的一篇简明 VIM 练级攻略(简明 Vim 练级攻略 | 酷 壳 - CoolShell),只需要学习掌握到第二级就可以满足日常工作需求。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值