win7升级powershell3.0并安装homestead

升级powershell

依次单击“开始”、“所有程序”、“附件”和“Windows PowerShell”,然后单击“Windows PowerShell”。
在 Windows PowerShell 控制台中的命令提示符下键入以下命令,然后按 ENTER:

Get-Host | Select-Object Version

如果 Windows PowerShell 3.0 已安装,您将看到如下所示输出:

如果是2.0则需要下载并安装(Windows6.1-KB2506143-x64.msu

安装后重启计算机即可。

参考:https://www.cnblogs.com/leon-2016/p/9198632.html

离线安装Homestead Vagrant 盒子

安装好VirtualBox及vagrant后,下面添加laravel/homesterad到 Vagrant 中。
在PowerShell中输入如下命令:

vagrant box add laravel/homestead

如图所示:

如果网速快也可以在线安装,如果慢可以把其中的下载地址拷贝下来,然后使用第三方工具下载。

下载成功后,运行以下命令添加(G:/soft/virtualbox.box是我的下载路径):

vagrant box add laravel/homestead G:/soft/virtualbox.box

安装 Homestead

到github下载最新的稳定版:https://github.com/laravel/homestead/releases
我下载的是10.0.1

然后解压到G:\soft\homestead
命令行进入G:\soft\homestead,运行以下命令:

init.bat

配置 Homestead

设置 Provider

Homestead.yaml 文件中的 provider 键表示使用哪个 Vagrant 提供者:virtualbox、vmware_fushion、 vmware_workstation、parallels 或 hyperv,你可以将其设置为自己选择的提供者,当然对大部分人来说也没得选:

provider: virtualbox

配置共享文件夹

Homestead.yaml 文件中的 folders 属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1

注:map 表示宿主机Web项目根目录,to 表示映射到的虚拟机Web项目根目录,Windows 下需要将 ~替换成完整的目录路径,比如 F:\wamp\www\project1

你需要将每个项目映射自己的对应目录而不是映射整个 ~/code 目录:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1

    - map: ~/code/project2
      to: /home/vagrant/project2

当你映射目录时,虚拟机会跟踪该目录下每个文件的所有磁盘 IO,随着站点数量的增加,可能会遇到性能问题,尤其是在包含大量文件的低端机器或项目中,性能问题可能会非常明显,这是因为这个原因,所以不推荐映射整个 ~/code 目录。

注:在使用 Homestead 的时候,永远不要挂载当前目录(.),这会导致 Vagrant 不映射当前目录到 /vagrant 并且在 provision 过程中断可选功能,造成异常结果。

配置 Nginx 站点

对 Nginx 不熟?没关系!通过 sites 属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml 中默认已经配置了一个示例站点。和共享文件夹一样,你可以配置多个站点:

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

如果你是在 Homestead 盒子启动之后进行了上述修改,需要运行 vagrant reload --provision 更新虚拟机上的 Nginx 配置。
注:Homestead 脚本被设计为尽可能保证操作的幂等,不过,如果你在 provison 过程中还是出现问题,则需要通过 vagrant destroy && vagrant up 命令来销毁并重构虚拟机。

主机名解析

自动主机名在每个项目独立安装的 Homestead 中工作最好,如果你在一个 Homestead 实例上托管了多个站点,可以在宿主机上将站点「域名」添加到 hosts 文件中做域名映射,hosts 文件会将针对 Homestead 站点的请求重定向到 Homestead 虚拟机。在 Mac 和 Linux 系统中,该文件位于 /etc/hosts,在 Windows 系统中,该文件位于 C:\Windows\System32\drivers\etc\hosts。我们以 homestead.test 域名映射为例,添加到 hosts 文件的记录如下所示:

192.168.10.10 homestead.test

确保 IP 地址和你的 Homestead.yaml 文件中的 ip 配置项一致,一旦你将域名添加到 hosts 文件,就可以在浏览器中通过该域名访问站点了:

http://homestead.test

在真正可以访问站点之前,还需要通过 Vagrant 启动 Homestead 虚拟机,下面我们就来启动这个盒子。

启动 Vagrant 盒子

配置好 Homestead.yaml 文件后,在 Homestead 目录下运行 vagrant up 命令,如果你是通过先下载 Homestead Vagrant 盒子再手动添加的方式安装的话,此时先不要执行这个命令,而是需要进入 ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead 目录(以 MacOS 为例,Windows 对应的路径应该是 C:/Users/User/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead,其中 User 对应你的用户名),添加一个 metadata_url 文件,并初始化文件内容如下(如果已有则忽略):

https://vagrantcloud.com/laravel/homestead

接下来,将该目录下手动添加到 Vagrant 盒子目录 0 重命名此次安装盒子版本号 10.0.1,再回到 Homestead 目录运行 vagrant up 命令。Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点,初次启动需要花费一点时间进行初始化:

启动成功之后,就可以在浏览器中通过 http://homestead.test 访问前面 F:\wamp\www\project1 目录里的应用了。

登录vagrant ssh

要登录到该虚拟机,使用 vagrant ssh 命令:

查看虚拟机中的php版本:

关闭虚拟机

关闭该虚拟机,可以使用命令:

vagrant halt

重启虚拟机

重启该虚拟机,可以使用命令:

vagrant reload --provision

销毁虚拟机

销毁该虚拟机,可以使用命令:

vagrant destroy --force

连接到数据库

Homestead 默认已经在虚拟机中为 MySQL 和 Postgres 数据库做好了配置,更方便的是,这些配置值与 Laravel 的 .env 中默认提供的配置一致。

想要通过本地的 Navicat 或 Sequel Pro 连接到 Homestead 上的 MySQL 或 Postgres 数据库,可以通过新建连接来实现,主机 IP 都是 127.0.0.1,对于 MySQL 而言,端口号是 33060,对 Postgres 而言,端口号是 54320,用户名/密码是 homestead/secret:

注:只有从本地连接 Homestead 的数据库时才能使用这些非标准的端口,在 Homestead 虚拟机中还是应该使用默认的 3306 和 5432 端口进行数据库连接配置。

添加更多站点

Homestead 虚拟机在运行时,可能需要添加多个web应用到 Nginx 站点。如果是在单个 Homestead 环境中运行多个web应用,添加站点很简单,只需将站点添加到 Homestead.yaml 文件:

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
    - map: another.test
      to: /home/vagrant/project2/public

如果 Vagrant 不是自动管理「hosts」文件,需要添加站点域名到本地 hosts 文件:

192.168.10.10  homestead.test
192.168.10.10  another.test

添加完站点后,在 Homestead 目录下运行 vagrant reload --provision 命令重启虚拟机。

端口转发配置

默认情况下,Homestead 端口转发配置如下:
– SSH: 2222 → 转发到 22
– ngrok UI: 4040 → 转发到 4040
– HTTP: 8000 → 转发到 80
– HTTPS: 44300 → 转发到 443
– MySQL: 33060 → 转发到 3306
– Postgres: 54320 → 转发到 5432
– MongoDB: 27017 → 转发到 27017
– Mailhog: 8025 → 转发到 8025
– Minio: 9600 → 转发到 9600

其中前面表示宿主机端口,后面表示虚拟机端口。

转发更多端口

如果你想要为 Vagrant 盒子添加更多端口转发,做如下转发协议设置即可:

ports:
    - send: 50000
      to: 5000
    - send: 7777
      to: 777
      protocol: udp

多个 PHP 版本

Homestead 引入了在单个虚拟机中支持多个 PHP 版本的功能,你可以在 Homestead.yaml 文件中为特定站点指定 PHP 版本,目前支持的 PHP 版本包括 5.6、7.0、7.1、7.2 、7.3、7.4(默认版本):

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
      php: "7.1"

此外,你可以在 CLI 中使用任意版本的 PHP:

php5.6 artisan list
php7.0 artisan list
php7.1 artisan list
php7.2 artisan list
php7.3 artisan list

Web 服务器

Homestead 使用 Nginx 作为默认 Web 服务器。不过,如果指定 apache 作为站点类型,也会安装 Apache。两个 Web 服务器可以同时安装,但是不能同时运行。Shell 命令 flip 可用于简化在不同 Web 服务器之间的切换处理,其工作原理是先自动判断哪个 Web 服务器正在运行,然后将其关闭,接着启动另一个服务器。要使用这个命令,需要通过 SSH 登录到 Homestead 虚拟机并在终端中运行:

flip

默认账号密码

ssh
用户名:vagrant
密码:vagrant

mysql
用户名:homestead
密码:secret

使用root账户登录

默认root的账号无法登录,需要通过以下步骤来设置:

重置root密码

先用vagrant账号登录后,输入以下命令进行重置root密码

sudo passwd root

修改/etc/ssh/sshd_config

sudo vim /etc/ssh/sshd_config

找到并用#注释掉这行:PermitRootLogin prohibit-password

新建一行 添加:PermitRootLogin yes

重启服务

sudo service ssh restart

解读一下这两句话吧!

PermitRootLogin yes # 允许root登录,设为yes。

PermitRootLogin prohibit-password # 允许root登录,但是禁止root用密码登录

设置区分大小写

目前是不区分文件名及文件夹大小写的。如果需要区分大小写
首先安装一个插件: 运行

vagrant plugin install vagrant-winnfsd

然后修改Homestead.yaml,在folders中增加type: "nfs"

folders:
    - map: F:/wamp/www/project1
      to: /home/vagrant/code
      type: "nfs"

PHP安装路径与重启php-fpm

PHP的安装路径为:/usr/lib/php

重启php-fpm

php.ini配置文件所在目录(以PHP7.3版本为例):/etc/php/7.3/fpm/php.ini
修改了php.ini配置文件后,还需要重启php-fpm服务

service php7.3-fpm restart

查看当前php的cli版本

php -v

查看当前php版本的扩展安装目录

php-config --extension-dir

查看当前php版本已安装的扩展

php -m

切换php cli版本

cd /etc/alternatives
sudo mv php php.bak
sudo ln -s /usr/bin/php7.3 php

其他命令

重启nginx服务

sudo service nginx restart

重启apache服务

sudo service apache2 restart

开机启动homestead

在 “运行” 程序中输入 shell:startup 进入开机启动文件夹,在文件夹中新建 homestead.bat 文件,内容如下:

// 第一行为空白 
@echo off
cd G:\soft\homestead
G:
vagrant up

安装xdebug扩展

首先切换php版本,可以使用php-v查看版本。

设置DNS

sudo vi /etc/resolv.conf

添加:

#阿里云的DNS服务器
nameserver 223.5.5.5
nameserver 223.6.6.6

更新apt源

apt-get update

安装php7.3-dev

apt install php7.3-dev

安装后,phpize的文件路径在/usr/bin/phpize7.3
php-config的文件路径在/usr/bin/php-config7.3

修改phpize软连接

cd /usr/bin/
mv phpize phpize.bak
mv php-config php-config.bak
ln -s /usr/bin/phpize7.3 phpize
ln -s /usr/bin/php-config7.3 php-config

下载xdebug

cd /home
wget http://xdebug.org/files/xdebug-2.9.0.tgz
tar -xvzf xdebug-2.9.0.tgz
cd xdebug-2.9.0

安装xdebug

phpize

/usr/bin/phpize7.3

./configure

./configure --with-php-config=/usr/bin/php-config7.3
make
cp modules/xdebug.so /usr/lib/php/20180731

配置php.ini

vi /etc/php/7.3/fpm/php.ini

在文件末尾添加:

zend_extension = /usr/lib/php/20180731/xdebug.so

重启服务器

参考:https://learnku.com/laravel/wikis/25528
https://xueyuanjun.com/post/19915.html

发表评论

邮箱地址不会被公开。 必填项已用*标注