本文将详细介绍如何在 windows 环境中配置Laravel框架的开发环境。该框架基于 PHP 的一个高效的网站开发框架,通过它可以非常快速的构建网站。本文将从 PHP 环境的配置、Apache 环境的配置、composer 工具的安装、laravel 项目的构建、以及 debug 环境的配置等进行详细说明。

首先,PHP 环境的搭建

laravel 是基于 PHP 的框架,同时 laravel 的构建工具 composer 也要求必须安装 PHP,所以 PHP 安装必须的。首先,从PHP 官网下载 laravel 对应版本的 PHP 代码,然后指定一个目录解压,解压后将 php.exe 所在目录加入到环境变量。设置完成后,打开命令行执行:

1
php -v

如果出现如下结果,则环境变量设置成功:

1
2
3
PHP 7.4.10 (cli) (built: Sep  1 2020 16:52:39) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

配置 Apache

虽然 laravel 可以利用 php 自带的服务器跑起来,但是还是推荐利用 apache 建立一个服务器,这样可以完全模拟生产环境,并且可以实时反映修改。

Apache 官方网站下载代码,将下载下来的 zip 包解压到你指定的目录,接着进入 conf 目录,打开 httpd.conf(该文件是 apache 的主配置文件)进行针对 PHP 框架的配置:

配置主目录

首先配置 ServerRoot :

1
2
Define SRVROOT "C:\xxxx\xxxx\xxxx\Apache24" #apache的目录,注意不要在目录最后加\
ServerRoot "${SRVROOT}"

配置默认站点

1
2
ServerName localhost #默认server
Listen 80 #监听端口为80

加载 PHP 相关配置

1
2
3
4
5
6
#加载PHP模块
LoadModule php7_module 'C:\xxxx\xxxx\xxxx\php7.4.10\php7apache2_4.dll'
#指定php配置文件所在目录
PHPIniDir 'C:\xxxx\xxxx\xxxx\php7.4.10'
#告诉服务器遇到.php文件要进行相应处理
AddType application/x-httpd-php .php

特别注意:还需要配置**DirectoryIndex**,否则访问站点时可能会出现 403 拒绝访问:

1
2
3
<IfModule dir_module>
    DirectoryIndex index.html index.php #追加index.php
</IfModule>

配置完成后,可以验证 php 是否已经正确配置到 apache 中:打开 apache 目录下的**htdocs**目录,将里面的 index.html 替换为 index.php,并写入如下代码:

1
2
3
<?php
phpinfo();
?>

然后打开浏览器访问:localhost:80,如果出现 PHP 相关配置清单一览,则说明配置成功

phpinfo

Tips:apache 判断配置文件是否有错,可以 cmd 进入到 bin 目录,执行下面命令,显示 OK 即为配置正确

1
  httpd -t

到此 apache 的 PHP 配置还差最后一步:配置php.ini文件,首先把php.exe目录下的php.ini-development文件复制一份并命名为php.ini,然后打开 php.ini 进行配置:

  • 打开extension_dir = "ext"
  • 根据 laravel 的版本要求,打开对应扩展:curlfileinfombstringopensslpdo_mysql

ok,apache 的 PHP 配置完毕!

安装 composer

因为 composer 服务器在外网,速度方面很慢,因此直接用阿里云提供的 composer 及其镜像即可。

下载地址: https://mirrors.aliyun.com/composer/composer.phar

将下载下来的composer.phar放到 php 目录,,也就是和 php.exe 在同一级目录。在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中:

1
@php "%~dp0composer.phar" %*

最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。

如果输出正确的版本信息,则 composer 安装成功。

全局配置镜像

所有项目都会使用该镜像地址:

1
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

取消配置:

1
composer config -g --unset repos.packagist

Tips: composer 命令增加-vvv可输出详细的信息

Composer构建laravel项目

选择要创建项目的目录,cmd 进入,执行:

1
composer -vvv create-project laravel/laravel projectName --prefer-dist

安装完成后,查看 laravel 版本:

1
php artisan -V

此时,使用

1
php artisan serve

就已经可以浏览项目了,但是我们要用 Apache,所以还需要对 apache 进行一些相关配置:

  • 打开``mod_rewrite :Laravel 框架中自带的 .htaccess文件支持隐藏 URL 中的index.php,如过你的 Laravel 应用使用 Apache 作为服务器,需要先确保 Apache 启用了 mod_rewrite模块以支持.htaccess` 解析

    1
    
    LoadModule rewrite_module modules/mod_rewrite.so
    
  • 配置一个虚拟主机:不适用之前配置的默认路径,创建一个虚拟主机

    • 打开extra/httpd-vhosts文件,将一下配置填写入配置文件中

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      
      <VirtualHost *:80>
          ServerAdmin xxx@xxx.com #随意填写,基本不用
          DocumentRoot "c:/xxx/xxx/xxx/yourProject/public" #laravel项目的public目录
          ServerName www.xxx.com #设置主机名,该主机名要在系统的hosts文件中配置好
          ServerAlias xxx.com
          <Directory "c:/xxx/xxx/xxx/yourProject/public"> #该路径必须与上面的root一直,此处是设置权限
              AllowOverride All   #设置为all,允许覆盖配置
              Options -Indexes +FollowSymLinks #去掉索引目录 追加连接访问限制
              Require all granted #授权访问
          </Directory>
      </VirtualHost>
      
    • httpd.conf中打开虚拟主机的配置

      1
      2
      
      # Virtual hosts
      Include conf/extra/httpd-vhosts.conf
      
    • 浏览器输入www.xxx.com验证,可以访问则配置成功

安装 php xdebug

到官网下载对应 php 版本的 xdebug:https://xdebug.org/download

将下载下来的 dll 放到ext目录中,然后在 php.ini 中追加配置:

1
2
3
4
zend_extension = php_xdebug-2.9.8-7.4-vc15-x86_64.dll
xdebug.remote_enable = On
xdebug.remote_host = localhost
xdebug.remote_port = 9100

设置 phpStorm

File->Setting,然后找到Languages&Framework -> PHP -> Debug,设置Debug Port9100

然后配置Languages&Framework -> PHP -> Servers ,追加前面我们设置的虚拟主机

laravel-02

然后找到 phpStorm 右上角的电话图标,开始监听 php debug 的链接。

Postman 测试

我们可以利用Postman新建 GET 请求,添加 GET 参数XDEBUG_SESSION_START值为任意,发送后就可以在我们设置的断点处开始 debug。

浏览器测试

当然我们也可以用浏览器调试(不需要单独的浏览器插件),配置如下:

Add Configurations…

laravel-03

然后点击小虫子图标,打开一个浏览器会话访问设置的网址,自带XDEBUG_SESSION_START

laravel 项目追加Debugbar

使用 Composer 安装该扩展包

1
composer -vvv require barryvdh/laravel-debugbar

安装完成后,在 config/app.php 中注册服务提供者到 providers 数组。

1
Barryvdh\Debugbar\ServiceProvider::class,

添加门面:

1
'Debugbar' => Barryvdh\Debugbar\Facade::class,

最后生成配置文件到 config 目录:

1
php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

config 目录中就会生成 debugbar.php 设定文件。访问项目的虚拟主机地址,在页面下方就出现了debugbar

laravel-04

至此,laravel的开发环境就配置结束了

(全文完)