Featured image of post apache+php环境配置

apache+php环境配置

速成一下php,windows下搭建一个简单的php环境

前言

翻了半天浏览器,官网的windows配置环境好像有点复杂,整理一下发个帖子吧。

环境配置

Apache环境配置

1.官网下载

apache_1

  • 选择Files for Microsoft Windows下载

apache_2

  • 注意到这里有四个选项

    • Apache Lounge是单独安装apache
    • Bitnami WAMP Stack、WampServer、XAMPP是集成环境,包含了Apache、MySQL、PHP等
    • 这里选择Apache Lounge

apache_3

  • 选择httpd-2.4.59-240404-win64-VS17.zip下载并解压到本地

apache_4

2.配置Apache

  • 进入~\httpd-2.4.59-240404-win64-VS17\Apache24\bin目录,并用管理员权限打开命令行

  • 输入httpd -k install安装服务

    • 可以通过httpd -k uninstall卸载服务
    • 通过添加-n参数可以指定服务名,如httpd -k install -n Apache2.4,默认为Apache2.4,卸载时也要指定服务名

apache_5

  • 打印The 'Apache2.4' service is successfully installed.,安装完成
    • Errors reported here must be corrected before the service can be started.报错可以忽略。
    • httpd.exe: Syntax error on line 39 of ~/httpd-2.4.59-240404-win64-VS17/Apache24/conf/httpd.conf: ServerRoot must be a valid directory报错,是因为httpd.conf中的ServerRoot路径不对
      • 根据提示进入httpd.conf修改ServerRoot路径为实际目录,如ServerRoot "C:/httpd-2.4.59-240404-win64-VS17/Apache24"

apache_6

  • 输入httpd -k start启动服务,打开浏览器输入localhost,出现It works!页面,说明安装成功
    • AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using *. Set the 'ServerName' directive globally to suppress this message报错可以忽略
    • 输入httpd -k stop停止服务

apache_7.0

apache_7.1

3.配置配置文件

  • 配置环境变量

apache_8

PHP环境配置

1.官网下载

php_1

  • 选择Windows downloads下载

php_2

  • 选择VS16 x64 Thread Safe (2024-May-08 09:16:28) Zip [30.66MB]下载
    • 选择非线程安全版本可能缺失php8apache2_4.dll文件

php_3

  • 下载完成后解压到本地

2.配置PHP

  • 添加环境变量

php_4

  • 输入php -v查看版本,说明安装成功

php_5

  • 进入~\php-8.3.7-Win32-vs16-x64目录,将php.ini-development文件复制一份并重命名为php.ini

php_6

  • 修改php.ini文件

    • 找到extension_dir,修改为extension_dir = "D:\bin\php\php-8.3.7-Win32-vs16-x64\ext"

Apache+PHP整合环境配置

1.配置Apache

  • 进入~\httpd-2.4.59-240404-win64-VS17\Apache24\conf目录,打开httpd.conf文件

  • 找到#LoadModule vhost_alias_module modules/mod_vhost_alias.so,在下面添加

1
2
3
4

LoadModule php_module "D:/bin/php/php-8.3.7-Win32-vs16-x64/php8apache2_4.dll"
PHPIniDir "D:/bin/php/php-8.3.7-Win32-vs16-x64"
AddType application/x-httpd-php .php .html .htm
  • 修改网站默认首页,找到
1
2
3
4

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
  • 修改为
1
2
3
4

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
  • 修改Apache 默认的站点目录

    • ~\php-8.3.7-Win32-vs16-x64目录下新建www目录,将index.php文件放入
1
2
3
4

<?php
  phpinfo();
?>
    • httpd.conf文件中找到
1
2
3
4
5
6
7

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">

修改为

1
2
3
4
5
6
7

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "你的路径\php\www"
<Directory "你的路径\php\www>

2.重启Apache

  • 输入httpd -k start启动服务,打开浏览器输入localhost,出现phpinfo页面,说明安装成功

apache-php_1

php依赖管理工具 Composer

1.官网下载

  • Composer官网打开

    • 安装方式一:
    • 点击Composer-Setup.exe下载,在 php 安装目录中找到 php.ini 文件,;extension=openssl前面的分号去掉,保存并重启 Apache 服务。之后双击安装文件,安装 Composer

composer_1.1

    • 安装方式二:
    • 修改php.ini文件

composer_2.1

composer_2.2

    • 复制官网的命令行代码,粘贴到命令行中执行

composer_1.2

2.配置Composer镜像(可选)

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

VSCode配置

1.安装插件

  • 在vs code插件商店中,搜索并安装相关的组件:

    • Composer
    • PHP
    • PHP Debug(后面需要做进一步的设置)
    • PHP Extendsion Pack
    • Php IntelliSense
      • Vs code 安装 debug 插件后,需要在 settings.json 中进行设置,即在最外层大括号下面,添加以下两个php.exe所在的路径:
1
2
3
4
{
    "php.validate.executablePath": "xx/php-8.3.7-Win32-vs16-x64/php.exe",
    "php.executablePath": "xx/php-8.3.7-Win32-vs16-x64/php.exe"
}

vscode_1.1

vscode_1.2

vscode_1.3

Xdebug配置

1.官网下载

  • 命令行输入php -i查看php信息,复制信息到官网检查版本并下载对应版本

xdebug_1

xdebug_2

  • 下载完成后,移动到php的ext目录下,并重命名为php_xdebug.dll

  • 修改php.ini文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#添加
[XDebug]
zend_extension=php_xdebug.dll
xdebug.output_dir="xx\php\tmp\xdebug"
; xdebug 监听地址(Xdebug3写法,2的名称为 remote_host)
xdebug.client_host="127.0.0.1"
xdebug.client_port=9003
xdebug.remote_handler=dbgp
xdebug.start_with_request = yes
xdebug.idekey = Vscode
xdebug.collect_return = On
xdebug.mode = debug
; 本机调试,Xdebug3新增设置
xdebug.discover_client_host = On
  • 重启Apache服务

  • cmd 命令提示符下测试xdebug安装是否成功:

1
php --version

– 打开浏览器,输入localhost,查看phpinfo页面,搜索xdebug,如果有相关信息,说明安装成功

xdebug_3

xdebug_4

VSCode配置

  • 在网站根目录www下新建test.php文件
1
2
3
4
5
6

<?php
  for ($i = 0; $i < 10; $i++) {
  echo $i;
  }
?>
  • vscode打开test.php文件,点击左侧的调试按钮,选择create a launch.json file,选择PHP,生成launch.json文件
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//自动生成的launch.json如下
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 0,
            "runtimeArgs": [
                "-dxdebug.start_with_request=yes"
            ],
            "env": {
                "XDEBUG_MODE": "debug,develop",
                "XDEBUG_CONFIG": "client_port=${port}"
            }
        },
        {
            "name": "Launch Built-in web server",
            "type": "php",
            "request": "launch",
            "runtimeArgs": [
                "-dxdebug.mode=debug",
                "-dxdebug.start_with_request=yes",
                "-S",
                "localhost:0"
            ],
            "program": "",
            "cwd": "${workspaceRoot}",
            "port": 9003,
            "serverReadyAction": {
                "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
                "uriFormat": "http://localhost:%s",
                "action": "openExternally"
            }
        }
    ]
}

xdebug_5

  • 选择Listen for Xdebug,点击左侧的调试按钮,选择Listen for Xdebug,设置断点,点击F5,打开浏览器,输入localhost/test.php,断点调试

xdebug_6

xdebug_7

  • php.ini中,xdebug.mode = debug 的使用场景为需要断点调试的时候。
  • 本地开发时,一般同时开启两个,即xdebug.mode = debug,profile

7.1 xdebug.mode

  • 此设置控制启用哪些Xdebug功能。 接受以下值:
说明
off没有启用任何功能。Xdebug 除了检查功能是否已启用外不起作用。如果您想要接近零的开销,请使用此设置。
develop启用包括重载的var_dump()在内的开发帮助。
coverage使Code Coverage Analysis能够生成代码覆盖率报告,主要是与PHPUnit结合使用 。
coverage使Code Coverage Analysis能够生成代码覆盖率报告,主要是与PHPUnit结合使用 。
debug启用步骤调试。这可用于在代码运行时逐步检查代码,并分析变量的值。
gcstats使垃圾收集统计信息能够收集有关PHP的垃圾收集机制的统计信息。
profile启用性能分析,您可以使用它通过KCacheGrind之类的工具分析性能瓶颈。
trace启用功能跟踪功能,该功能允许您记录每个函数调用,包括参数,变量赋值以及在对文件的请求期间进行的返回值。
  • 以","(逗号)分隔 xdebug.mode 的值作为标识符来同时启用多个模式xdebug.mode=develop,trace。

  • 还可以通过XDEBUG_MODE在命令行上设置环境变量来设置模式,这样优先于xdebug.mode 设置。

7.2 start_with_request

ps

潇洒人间一键仙
使用 Hugo 构建
主题 StackJimmy 设计