Laravel开发环境,建议用Homestead环境来搭建。
我的理由是Linux环境,放到生产环境,不容易产生问题,比如防止大小写问题。当然,如果你生产环境本身也用windows里,也可以用AppServ、WAMP Server这种集成包来搭建环境,也是没问题的。
首先大致了解下Homestead:Homestead是一个完美的开发环境,让你不需要再在本地安装PHP、Web服务器以及其他的服务器软件。不用担心弄乱操作系统。
Homestead安装
1. 安装VirtualBox, https://www.virtualbox.org/wiki/Downloads
2. 安装Vagrant, https://www.vagrantup.com/downloads
3. 安装git客户端:https://git-scm.com/downloads/ 或https://tortoisegit.org/download/
4. 在终端使用如下命令将laravel/homestead box 添加到 Vagrant 中。
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git ~/Homestead
cd ~/Homestead
git checkout release
// Mac / Linux...
bash init.sh
// Windows...
init.bat
Homestead配置
配置文件:根目录下的Homestead.yaml
>>配置共享文件夹
folders:
- map: D:\wnmp\www\project1
to: /home/vagrant/project1
>>配置Nginx站点
sites:
- map: homestead.test
to: /home/vagrant/project1
>>主机名解析,hosts文件里设置
192.168.10.10 homestead.test
注意:
1. 可生成、可不生成
ssh-keygen //一路回车
如果不生成,需要把homestead.yaml里的key相关注释掉。
#authorize: ~/.ssh/id_rsa.pub
#keys:
# - ~/.ssh/id_rsa
2. 修改mysql配置,ssh进入虚拟机
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]下 添加
sql_mode = “”
保存。
重启mysql服务器
sudo service mysql restart
Homestead的常用命令
Vagrant up 启动虚拟机
Vagrant ssh 用ssh终端方式连接虚拟机
Vagrant halt 关闭虚拟机
Vagrant reload --provision 修改了homestead.yaml,重新加载虚拟机,让配置重新生效
Vagrant destroy --force 销毁虚拟机,慎用
>> 新建bat,快捷命令,无论在哪个目录都可执行。
注:需配置环境变量
@echo off
set cwd=%cd%
set homesteadVagrant=D:\wnmp\homestead
cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%
set cwd=
set homesteadVagrant=
Homestead常见问题
Homestead中,nginx和apache,都可以安装,但不能同时启动。可以通过ssh,用flip命令切换不同的web服务。
但目前遇到一个问题,之前站点上配置过apache,即时后面不配置了。在启动时,也会默认启动apache。
若要启动nginx服务,只能ssh进入,用sudo /etc/init.d/nginx start命令。但还是有问题。
只能用暴力法:将数据库备份后,销毁,再启动,即可。
Homestead其他功能
>>数据库自动备份
配置里添加:backup:true
>>配置Cron定时计划
>>共享环境
>>多版本PHP
>>更多功能:点击https://learnku.com/docs/laravel/8.x/homestead/9357#installation-and-setup 查看