Windows 11 当地 php 开辟环境搭建:PHP + Apache + MySQL +VSCode 安装和 ...

打印 上一主题 下一主题

主题 629|帖子 629|积分 1887



  
前言


最近有空整理一下php 在windows上面的环境配置。原因是发现网上大多数php环境配置的相关帖子内容缭乱、多数是不能配置成功的。所以决定全部走一遍配置,以确保整个过程是成功的。并在此底子上开个帖子纪录下这个完备的安装和配置过程,以备忘和供有需要的同砚参考。




1. PHP 的下载、安装和配置


1.1 下载 php

官方下载地址:https://windows.php.net/downloads/releases/

我这里没有下载最新版,而是 php-7.4.33-Win32-vc15-x64.zip




1.2 安装 php


将下载的 zip 压缩包解压到安装目录: E:\Software\PHProgram\PHP(我的位置)



1.3 配置 php 系统变量


将 PHP 的安装目录(如 E:\Software\PHProgram\PHP)添加到 系统变量 的 Path 变量中:





1.4 配置 php.ini

将 PHP 目录下的php.ini-development,复制一份并重定名为 php.ini,作为PHP的配置文件。



编辑php.ini文件


  • 设置PHP扩展包的具体目录
    找到:
    1. ; On windows:
    2. ; extension_dir = “ext”
    复制代码
    修改为:
    1. ; On windows:
    2. extension_dir = “E:\Software\PHProgram\PHP\ext”
    复制代码
  • 开启相应的库功能
    搜索 “;extension= ”,定位并开启所需的库功能:





  • 设置时区
    找到
    1. ;date.timezone =
    复制代码
    修改为:
    1. date.timezone = Asia/Shanghai
    复制代码



  • 查抄是否安装成功
    cmd 中输入查抄版本的下令:
    1. php -v
    复制代码



2. Apache 的下载、安装和配置


2.1 下载 Apache

安装包官方下载地址:https://www.apachelounge.com/download/VS16/

下载的 ZIP 文件是:httpd-2.4.57-win64-VS16.zip


2.2 安装 Apache

将下载的zip 文件解压到 E:\Software\PHProgram\Apache-2.4.57\Apache24


2.3 修改配置 Apache

找到 Apache24\conf 目录下的 httpd.conf 文件,用记事本打开,并转到 Define SRVROOT “c:/Apache24”
修改为:
  1. # ServerRoot at a non-local disk, be sure to specify a local disk on the
  2. # Mutex directive, if file-based mutexes are used.  If you wish to share the
  3. # same ServerRoot for multiple httpd daemons, you will need to change at
  4. # least PidFile.
  5. #
  6. Define SRVROOT "E:\Software\PHProgram\Apache2.4.57\Apache24"
  7. ServerRoot "${SRVROOT}"
  8. #
  9. # Mutex: Allows you to set the mutex mechanism and mutex file directory
复制代码


2.4 指定服务端口(非必须)


定位到 Listen 80,改为其它端口
  1. # Change this to Listen on specific IP addresses as shown below to
  2. # prevent Apache from glomming onto all bound IP addresses.
  3. #
  4. #Listen 12.34.56.78:80
  5. Listen 8888
  6. #
  7. # Dynamic Shared Object (DSO) Support
复制代码
  Apache 默认端口为80,为避免端口冲突,可修改为其他端口。如使用默认80端口,则通过http://localhost 即可访问,如使用修改后的端口,则必须加端标语:如 http://localhost:8888
  

2.5 配置系统变量





2.6 安装服务

必须以 管理员身份 运行 cmd ,然后进入 Apache\bin 目录
  1. C:\WINDOWS\system32> e:
  2. E:\> cd Software\PHProgram\Apache-2.4.57\Apache24\bin
  3. E:\Software\PHProgram\Apache-2.4.57\Apache24\bin> httpd -k install -n Apache2.4
复制代码
  假如要移除服务:cmd 中输入 sc delete Apache2.4 后回车
  

2.7 Apache 环境开启 htaccess 伪静态(可选)



  • 什么是伪静态
    伪静态其实是相对真实静态来讲的,伪静态只是改变了URL的显示形式,实际上还是一个动态的页面。伪静态的页面后缀可以是html、htm大概是目录格式等。像thinkphp等框架的pathinfo模式,也是伪静态的一种。


  • 为什么要用伪静态 ?
    Ⅰ为了seo优化,伪静态有利于搜索引擎的收录,能够增加网站优化效果;
    Ⅱ 为了让URL看起来更简朴,更加友好易读,也给人一种专业性的感觉。
Apache 服务器上开启和通过.htaccess文件来配置伪静态
1)在 Apache 配置文件httpd.conf中启用Rewrite
打开httpd.conf,定位到代码:
  1. #LoadModule rewrite_module modules/mod_rewrite.so
复制代码

2)把前面#去掉。没有则添加,但必须独占一行,以使 apache 支持 mod_rewrite 模块。
  1. LoadModule rewrite_module modules/mod_rewrite.so
复制代码

3)继续在 httpd.conf 搜索定位 AllowOverride,并把背面的参数从None全部改成All


4)配置.htaccess 伪静态规则


  • 在要启用伪静态的项目的根目录(如 www)下创建 .htaccess 文件
  • 在.htaccess 文件中输入以下内容(或开源项目本身指定的内容)
    1. < IfModule mod_rewrite.c>
    2.   Options +FollowSymlinks -Multiviews
    3.   RewriteEngine On
    4.   RewriteCond %{REQUEST_FILENAME} !-d
    5.   RewriteCond %{REQUEST_FILENAME} !-f
    6.   #RewriteRule RewriteRule index.html$ index.php
    7.   #RewriteRule ^(.*?).html$ index.php?$1.html [QSA,PT,L]
    8.   #RewriteRule ^/index([0-9]*).html$ /index.php?id=$1
    9.   #更多伪静态规则
    10. < /IfModule>
    复制代码


2.8 启动服务



  • 方式一
    打开 Apache/bin 目录下的 ApacheMonitor.exe启动 Apache;
  • 方式二
    服务 >> Apache 2.4 右键 启动

测试是否安装成功
在欣赏器中输入HTTP://localhost:8888(此处8888是我选择的端口)验证服务是否成功搭建

大概查看系统服务:


安装成功!



3. 整合 PHP、Apache


3.1 配置 apache 支持 php

1)打开 Apache24\conf 目录下的配置文件 httpd.conf,并定位到:
  1. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
复制代码

2)在下方添加:
  1. LoadModule php7_module "E:/Software/PHProgram/PHP/php7apache2_4.dll"
  2. PHPIniDir "E:/Software/PHProgram/PHP"
  3. AddType application/x-httpd-php .php .html .htm
复制代码
  注:这里安装的是PHP7,假如是PHP8,则应相应地换成php8_module、php8apache2_4.dll等
  
3.2 修改网站默认首页

找到:
  1. <IfModule dir_module>
  2.     DirectoryIndex index.html
  3. </IfModule>
复制代码
4)改为:
  1. <IfModule dir_module>
  2.     DirectoryIndex index.php index.html
  3. </IfModule>
复制代码

3.3 修改Apache 默认的站点目录

1)在 E:\Software\PHProgram 下,新建 一个名为 www 的文件夹,做为网站根目录;
2)在 httpd.conf 中,找到如下代码:
  1. # DocumentRoot: The directory out of which you will serve your
  2. # documents. By default, all requests are taken from this directory, but
  3. # symbolic links and aliases may be used to point to other locations.
  4. #
  5. DocumentRoot "${SRVROOT}/htdocs"
  6. <Directory "${SRVROOT}/htdocs">
复制代码
修改为:
  1. # DocumentRoot: The directory out of which you will serve your
  2. # documents. By default, all requests are taken from this directory, but
  3. # symbolic links and aliases may be used to point to other locations.
  4. #
  5. DocumentRoot "E:\Software\PHProgram\www"
  6. <Directory "E:\Software\PHProgram\www>
复制代码
此目录即为打开 http://localhost:8888 时的根目录,可在该目录创建index.php,用于默认访问的 php 文件。




3.4 测试 php 网站

在 www 目录下,新建文件index.php,写入以下内容:
  1. <?php
  2.   phpinfo();
  3. ?>
复制代码

然后打开http://localhost:8888,假如显示PHP版本及配置信息,则表示配置成功!





4. 安装 php 依赖管理工具:Composer


Composer是 PHP 开辟必不可少的工具之一,可有效减少依赖包下载和管理的烦恼。


4.1 下载 Composer

官方下载地址:https://getcomposer.org/download/,
也可点击 这里 直接下载(不打开下载页)



4.2 安装 Composer:方式一


1)查抄/修改配置文件
在 php 安装目录中找到 php.ini 文件,用记事本打后定位到
  1. ;extension=openssl
复制代码

去掉前面的“;”(分号)以启用配置
  1. extension=openssl
复制代码

2)双击运行 Composer-Setup.exe
程序会在每次实行时安装最新的 Composer 版本,背面一步步安装即可。




3)查抄是否安装成功
然后等待安装完成,重新打开 下令行窗口,输入下令查抄是否安装成功:
  1. Microsoft Windows [版本 10.0.22621.1555]
  2. (c) Microsoft Corporation。保留所有权利。
  3. C:\Users\pro>composer --version
  4. Composer version 2.5.5 2023-03-21 11:50:05
复制代码

固然,也可以按照官方文档的方式举行安装,见方式二。
4.3 安装 Composer:方式二

  1. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  2. php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01 eae') { echo '安装程序验证'; } else { echo '安装程序损坏'; unlink('composer-setup. php'); } echo PHP_EOL;"
  3. php composer-setup.php
  4. php -r "unlink('composer-setup.php');"
复制代码


4.4 更改 Composer 镜像

因为国外网站访问比力慢,这里介绍安装Composer 镜像。
1)阿里云 Composer 镜像 【保举 】
  1. composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
复制代码

2)腾讯云 Composer 镜像
  1. composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
复制代码

3)华为云 Composer 镜像
  1. composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/
复制代码

4)安畅云 Composer 镜像
  1. composer config -g repo.packagist composer https://php.cnpkg.org/
复制代码



5. VsCode 配置

VsCode 是用的比力多的开辟 PHP 的工具,举行配置之后要比Jerbrian家的IDE要方便很多。


5.1 安装 vs code 插件

在vs code插件市肆中,搜索并安装相关的组件:


  • Composer
  • PHP 语言支持
  • PHP Debug(背面需要做进一步的设置)
  • PHP Extendsion Pack
  • Php IntelliSense
注:Vs code 安装 debug 插件后,需要在 settings.json 中举行设置,即在最外层大括号下面,添加以下两个php.exe所在的路径:
  1. {
  2.   // "settingsSync.ignoredExtensions": [
  3.       
  4.   // ],
  5. "php.validate.executablePath": "E:/Software/PHProgram/PHP/php.exe",
  6. "php.debug.executablePath": "E:/Software/PHProgram/PHP/php.exe"
  7. }
复制代码

5.2 下载和配置 Xdebug 库

Xdebug,是一个 PHP 插件,可用于单步调试 / 输出调试等,共同VS Code的插件,功能十分强盛,可满足一样平常大多数环境需求。
插件功能包罗:


  • 远程监听调试
  • 当地单文件调试
  • 当地欣赏器调试
一般前两个功能使用较多,小脚本使用第二个功能,网站类代码保举监听调试。
准备下载与当前 php 版本、当前系统相对应的 Xdebug 版本
打开 版本选择 网页:
1) cmd 中运行以下下令
  1. php -i
复制代码

2)运行后,复制cmd中得到的 phpinfo() 的完备输出信息:
  1. phpinfo()
  2. PHP Version => 7.4.33
  3. $_SERVER['argv'] => Array
  4. (
  5. )
  6. ... ...
复制代码

3)打开上面提供的这个 版本选择 链接,并粘贴到此网页中的多选文本框中,然后提交。



4)下载 Xdebug
提交后,网站会根据已提交的信息,自动为您保举当前PHP版本、系统环境匹配的Xdebug库。然后就可下载该 xdebug.dll 库文件



5)将下载的 php_xdebug-3.1.6-7.4-vc15-x86_64.dll 复制到 E:\Software\PHP_Program\PHP\ext扩展目录下

并将文件php_xdebug-3.1.6-7.4-vc15-x86_64.dll 重定名为 php_xdebug.dll


6)修改 E:\Software\PHProgram\PHP 目录下的 php.ini 配置文件
在php.ini文件末了加上以下代码并保存:
  1. [XDebug]
  2. zend_extension=php_xdebug.dll
  3. xdebug.output_dir="E:\Software\PHProgram\tmp\xdebug"
  4. ; xdebug 监听地址(Xdebug3写法,2的名称为 remote_host)
  5. xdebug.client_host="127.0.0.1"
  6. xdebug.client_port=9003
  7. xdebug.remote_handler=dbgp
  8. xdebug.start_with_request = yes
  9. xdebug.idekey = Vscode
  10. xdebug.collect_return = On
  11. xdebug.mode = debug
  12. ; 本机调试,Xdebug3新增设置
  13. xdebug.discover_client_host = On
复制代码


   注:
1、修改 php.ini 文件后,必须重启Apache服务才能生效;
2、本文安装的 Xdebug 基于版本3x。假如是 2x,那么 php.ini 中的 [Xdebug] 的配置项差别,具体请看官网文档
【Xdebug3 和 Xdebug2 配置项变革较大(3的配置项在2的底子上有移除、改名或新增等),更多配置请参考官方文档(很多网上的配置都是错的)】
  
7)cmd 下令提示符下测试xdebug安装是否成功:


  • php --version 下令
    1. Microsoft Windows [版本 10.0.22621.1555]
    2. (c) Microsoft Corporation。保留所有权利。
    3. C:\Users\pro> php --version
    4. PHP 7.4.33 (cli) (built: Nov  2 2022 16:00:55) ( ZTS Visual C++ 2017 x64 )
    5. Copyright (c) The PHP Group
    6. Zend Engine v3.4.0, Copyright (c) Zend Technologies
    7.     with Xdebug v3.1.6, Copyright (c) 2002-2022, by Derick Rethans
    8. C:\Users\pro>
    复制代码
  • 网页中输出 phpinfo() 信息
    www (网站要目录)下的 index.php文件:
    1. <?php
    2.   phpinfo();
    3. ?>
    复制代码

    欣赏器访问 http://localhost:8888 :

    出现 Xdebug,阐明安装成功
           假如phpinfo有XDebug,cmd下没有,请查抄环境变量设置是否正确


8)Vs code 中 php 的 debug 插件配置


  • 在网站根目录www下,新建一个 test.php文件(用于debug插件的配置测试),并编写以下内容:
    1. <?php
    2.   for ($i = 0; $i < 10; $i++) {
    3.   echo $i;
    4.   }
    5. ?>
    复制代码
  • 在有打开的 php 文件的环境下(如 test.php),单击 VSCode 左侧列表的【运行和调试】图标

    再点击【创建launch.json文件】按钮
    此时,即自动创建.vscode文件夹并将launch.json保存到 www/.vscode/ 路径下。
    天生的launch.json 文件中的配置项如下:
    1. {
    2.   "version": "0.2.0",
    3.   "configurations": [
    4.     {
    5.       "name": "Launch built-in server and debug",
    6.       "type": "php",
    7.       "request": "launch",
    8.       "runtimeArgs": [
    9.         "-S",
    10.         "localhost:8888",
    11.         "-t",
    12.         "."
    13.       ],
    14.       "port": 9003,
    15.       "serverReadyAction": {
    16.         "action": "openExternally"
    17.       }
    18.     },
    19.     {
    20.       "name": "Debug current script in console",
    21.       "type": "php",
    22.       "request": "launch",
    23.       "program": "${file}",
    24.       "cwd": "${fileDirname}",
    25.       "externalConsole": false,
    26.       "port": 9003
    27.     },
    28.     {
    29.       "name": "Listen for Xdebug",
    30.       "type": "php",
    31.       "request": "launch",
    32.       "port": 9003
    33.     }
    34.   ]
    35. }
    复制代码
          注:Listen for Xdebug 项的 port 属性,需要与php.ini配置文件中雷同;
    Xdebug 的默认调试端口已从9000更改为9003。


5.3 调试运行 debug


1)选择运行和调试右边的下拉框,选择调试模式(如,选择 Listen for Xdebug),程序里打上断点;
2)按 F5 开始调试(也可按调试按钮);
3)打开欣赏器访问 http://localhost:8888/test.php
此时页面尚不能正常加载(转圈)
4)继续按 F5 调试,直到程序跑完,就会看到页面加载好全部内容

php.ini中,xdebug.mode = debug 的使用场景为需要断点调试的时间。




但偶然程序本身没标题,只是想看看性能和各个地方的耗时环境,则将 ’debug‘模式换成 trace (耗时)或 profile(性能) 模式。
如:


  • trace ,修改 php.ini
    1. xdebug.mode = trace
    复制代码
    在Vscode 调试模式名称下拉框中,选“Debug current script in console”,去掉php程序中全部断点,此时按一下 F5 程序就实行完毕,然后找到目录E:\Software\PHProgram\tmp\xdebug(php.ini中配置的目录),能看到多出了一个类似 trace.xxxxx.xt如许的文件。


  • profile (同理,略)
    当地开辟时,一般同时开启两个,即
    1. xdebug.mode = debug,profile
    复制代码
          阐明:答应以逗号分隔xdebug.mode的值,作为标识符来同时启用多个模式


6. MySQL在Windows 环境中的安装


参见我的另一篇文章 MySQL在Windows 环境中的安装



7. 附:Xdebug3 参数阐明

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

在CLI模式下,PHP脚本可以被轻松的调试,但是在fastcgi模式下,xdebug在何种环境拦截哀求并触发调试呢,实际上一套WEB API 只有少少有性能瓶颈的API才需要被debug,每个接口都去纪录profile是没须要的(此配置的意义)
值阐明yes该功能在 PHP 哀求启动时以及运行任何 PHP 代码之前启动。比方,xdebug.mode = trace
和 xdebug.start_with_request = yes启动整个哀求的功能跟踪。no哀求开始时,该功能未激活。你仍然可以调用函数xdebug_start_trace() 来启动 trace;调用xdebug_break()开始渐渐调试;调用xdebug_start_gcstats()来做垃圾网络统计。trigger1)仅当哀求开始时存在特定触发条件时,才激该死功能。触发器的名称是(大写)XDEBUG_TRIGGER,而Xdebug会去查抄一下变量中($_ENV,$_GET,$_POST,$_COOKIE)是否有这个字段;
2)功能特定的触发器名称也有一个旧式的备用名称:(XDEBUG_PROFILE 对应于 Profiling),(XDEBUG_TRACE 对应于 Function Trace)和 (XDEBUG_SESSION 对应于 Step Debugging);
3)也可以通过举行步骤调试的调试会话管理XDEBUG_SESSION_START。
4)使用xdebug.trigger_value可以控制哪个特定的触发器值将激该死触发器。假如xdebug.trigger_value设置为空字符串,则将接受任何值:
示例:http://localhost:8000/test.php?XDEBUG_TRIGGERdefault该default值取决于xdebug.mode:
debug:trigger
gcstats:no
profile:yes
trace:trigger







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表