PHP5.3 + Apache2.2 + Xdebug2.1.2环境并集成至PHPStrom全流程(解决使用最好的语言前的痛点问题)

文章目录

  • 问题背景
  • 安装流程
    • PHP安装
    • 配置PHP
    • Apache安装及配置
    • PHPStrom集成PHP环境进行PHP开发

问题背景

由于公司陈旧项目的重新启动,现需要对该项目开发微信登录模块,本人是写 Java 的,但本着程序员终身学习、不惧新事物的特点,现针对 PHP 开发前的环境搭建进行总结,争取使自己以后不再浏览器搜索框中搜索相同的问题。

安装流程

PHP安装

去PHP官网:https://www.php.net/,下载 PHP,官网中的往往是最新版本的,在博主搭建完 PHP 环境后的最大体会就是,PHP 针对组件之间的版本兼容性很高,且不存在向下兼容,所以请在安装环境前确认自己项目的版本,至少确定是5.6之前的版本还是5.6之后的版本,这有助于环境搭建后期重复的做很多无用功,这里提供PHP的历史版本的下载地址:https://windows.php.net/downloads/releases/archives/,下载自己需要的版本即可,下载时需要确定自己下载的是“线程安全版本”还是“线程不安全版本”,这两者的区别如下图,大部分使用 线程安全版本

image-20231124154416497

确定好版本后下载完成的目录大致是这样的:

image-20231124154551837

几个重要的文件或者文件夹

ext:该文件夹存储则所有第三方组件,后续 xdebug 组件放在这里

php.exe:PHP的可执行文件,配置PHPStrom的时候使用

php-ini:最重要的配置文件,PHP能否正常使用就靠它

到此PHP就算安装完成了,可以在PHP的安装目录下打开控制台,然后输入 php -v命令,弹出PHP版本证明安装成功,或者加入环境变量,这就不做赘述了

配置PHP

前言:配置PHP就是配置PHP的php.ini文件,接下来我们展开讲讲需要配置哪些地方,在PHP的安装目录中有一个 php.ini-development,将其改名为 php.ini打开编辑即可,分别搜索以下几个关键词并修改对应的内容

  1. extension_dir:替换成 PHP 的 ext 目录文件路径
  2. 去掉 php_mysql.dllphp_mysqli.dll前的分号
  3. date.timezone:修改成 UTC
  4. 文件最下方配置Xdebug,输入以下配置,针对这些配置做一解释:
    • zend_extension:配置Xdebug的组件路径,从 https://xdebug.org/上下载最新版的Xdebug,需要注意的是Xdebug的版本需要严格与PHP版本对应,例如博主的PHP版本是5.3,所以可以在这个网站去下载老版本的Xdebug,网址是 https://xdebug.org/download/historical,如果PHP安装的是非线程安全的版本,则Xdebug也要安装相同的非线程安全版本,线程安全亦之
    • xdebug.idekeyxdebug.remote_handlerxdebug.remote_modexdebug.remote_enablexdebug.remote_autostartxdebug.mode:照着博主的填写即可,具体代表什么意思童鞋们可以去查阅文档
    • xdebug.remote_host:主机名
    • xdebug.remote_port :自己填写一个不冲突的端口号
[Xdebug]
zend_extension = "D:\php\php-5.3.0-Win32-VC6-x86\ext\php_xdebug-2.2.3-5.3-vc9-x86_64.dll" 
xdebug.idekey="PHPSTORM"
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = "debug"
xdebug.remote_host=localhost
xdebug.remote_enable=on
xdebug.remote_port = 9003   
xdebug.remote_autostart = On
xdebug.mode = "debug"

Apache安装及配置

前言:博主PHP项目是运行在Apache服务器上的,所以需要配置 Apache,Apache的版本同样也有所讲究,大家可以百度搜索关键词, php + 自己的版本 + 配置Apache来确定安装什么版本的Apache,如果不想费事,请记住Apache2.2最高支持PHP5.4,5.4以上版本使用Apache2.4,由于Apache官网不提供历史版本的下载,好多链接进不去,所以Apache的安装包还需要大家自行寻找,这里博主提供Apache2.2的版本下载地址:https://www.apachelounge.com/download/ 提取码 uju4,大家下载下来即可,下载后的目录大致长这样,请自行比对:

image-20231124163805876

接着打开conf文件夹中的 httpd.conf文件,搜索以下关键词进行配置的修改:

  1. ServerRoot:修改成bin目录的上一级

  2. 删除 LoadModule rewrite_module modules/mod_rewrite.so前的 #

  3. 添加一个新的LoadModule,第一行的路径需要自己进行修改

LoadModule php5_module "D:/php/php-5.3.0-Win32-VC6-x86/php5apache2_2.dll"
<FilesMatch "\.php$">
setHandler application/x-httpd-php
</FilesMatch>
  1. DocumentRoot:修改成htdocs的路径
  2. 将所有的 AllowOverride None改成 AllowOverride All
  3. <Directory:同样修改成htdocs的路径
  4. :加上 index.php,这是欢迎页

然后在 httpd.exe所在文件夹下打开控制台输入 httpd -t,用来检测配置文件的语法是否有误,如果有误则根据提示检查配置文件并修改正确,如果无误接着进行下面的操作:

执行 httpd -k install -n Apache2.4 #-n后面表示自定义访问名称

执行 httpd -k start #启动Apache服务

访问 localhost,查看显示的是否是 htdocs 下的默认Html文件的内容,如果是则证明Apache安装完成

PHPStrom集成PHP环境进行PHP开发

  1. 安装PHPStrom
  2. 打开PHP项目
  3. 配置PHP,打开File - Settings - PHP,分别配置 language levelInterpreter,大家根据自己的目录进行配置即可:

image-20231124170632686

  1. 打开 settings - PHP - Debug,配置 Debug port,这里填写的端口号需要与 php.ini 中的一致
  2. 配置位于上面Debug下的 DBGp Proxy,如下图,填写的信息都是与 php.ini 中 Xdebug 的配置中写的是一样的

image-20231124171057611

  1. 配置位于PHP下的 Servers,具体配置看下图

image-20231124172149924

  1. 进入Tools - Deployment - configuration,按照下图配置

image-20231124172436447

  1. 配置 Mappings

image-20231124172550450

  1. 记得选中这些地方,将本地项目自动上传至Apache服务器的对应目录中

image-20231124172725358

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 打开PHPStrom的右上角的Edit Configuration进行服务的配置,见下图:

image-20231124173344843

  1. 开始调试项目

image-20231124173452869

至此,整个环境搭建完毕,觉得好的童鞋点个赞,点个收藏,觉得不好的童鞋多多包涵,博主能力有限,写博客的初衷是自己记录使用,难免出现各种问题,大家多多包涵,评论区积极交流!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/185245.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

杰发科技AC7801——keil工程移植到IAR

0、简介 发现AC7801的代码只有keil工程的&#xff0c;IAR和Eclipse的代码只有一个例程&#xff0c;于是在从Keil移植到IAR时候遇到的问题记录下。 正常情况下&#xff0c;直接把keil的usr用户代码移植到iar的文件夹下面&#xff0c;删除原本的文件再添加新加进来的文件即可。…

DNS 区域传输 (AXFR)

漏洞描述 docker环境搭建 使用 AXFR 协议的 DNS 区域传输是跨 DNS 服务器复制 DNS 记录的最简单机制。为了避免在多个 DNS 服务器上编辑信息&#xff0c;可以在一台服务器上编辑信息&#xff0c;并使用 AXFR 将信息复制到其他服务器。但是&#xff0c;如果您不保护您的服务器&…

链表经典面试题

1 回文链表 1.1 判断方法 第一种&#xff08;笔试&#xff09;&#xff1a; 链表从中间分开&#xff0c;把后半部分的节点放到栈中从链表的头结点开始&#xff0c;依次和弹出的节点比较 第二种&#xff08;面试&#xff09;&#xff1a; 反转链表的后半部分&#xff0c;中间节…

如何利用4G路由器构建茶饮连锁店物联网

随着年轻消费群体的增长&#xff0c;加上移动互联网营销的助推&#xff0c;各类新式奶茶消费风靡大街小巷&#xff0c;也促进了品牌奶茶连锁店的快速扩张。 在店铺快速扩张的局势下&#xff0c;品牌总部对于各间连锁店的零售统计、营销规划、物流调配、卫生监测、安全管理等事务…

IDC最新报告,增速减缓+AI增势,阿里云视频云中国市场第一

国际权威数据公司IDC发布 《中国视频云市场跟踪&#xff08;2023 H1&#xff09;》报告 自2018年至今&#xff0c;阿里云持续保持 中国视频云整体市场第一 整体市场占比达24.4% 01 第一之外&#xff0c;低谷之上 近期&#xff0c;国际权威数据公司IDC最新发布了《中国视频…

HCIA-RS基础:动态路由协议基础

摘要&#xff1a;本文介绍动态路由协议的基本概念&#xff0c;为后续动态路由协议原理课程提供基础和引入。主要讲解常见的动态路由协议、动态路由协议的分类&#xff0c;以及路由协议的功能和自治系统的概念。文章旨在优化标题吸引力&#xff0c;并通过详细的内容夯实读者对动…

深度学习中的Dropout正则化:原理、代码实现与实际应用——pytorch框架下如何使用dropout正则化

目录 引言 一、导入包 二、dropout网络定义 三、创建模型&#xff0c;定义损失函数和优化器 四、加载数据 五、训练train 六、测试 引言 dropout正则化的原理相对简单但非常有效。它在训练神经网络时&#xff0c;以一定的概率&#xff08;通常是在0.2到0.5之间&#xff…

做亚马逊多久可以赚钱?做亚马逊需要多少资金?——站斧浏览器

做亚马逊需要时间、资金和全面的市场策略。创业者需要有耐心和决心&#xff0c;同时也要灵活应对市场变化。那么做亚马逊多久可以赚钱,做亚马逊需要多少资金。 做亚马逊多久可以赚钱 首先&#xff0c;就像任何其他生意一样&#xff0c;做亚马逊需要时间和努力来建立起稳定的客…

C#关键字、特性基础及扩展合集(持续更新)

一、基础 Ⅰ 关键字 1、record record&#xff08;记录&#xff09;&#xff0c;编译器会在后台创建一个类。支持类似于结构的值定义&#xff0c;但被实现为一个类&#xff0c;方便创建不可变类型&#xff0c;成员在初始化后不能再被改变 &#xff08;C#9新增&#xff09; …

MarkDown学习

MarkDown学习 标题 三级标题 四级标题 字体 加粗&#xff08;两侧加两个星号&#xff09;&#xff1a;Hello&#xff0c;World! 斜体&#xff08;两侧加一个星号&#xff09;&#xff1a;Hello&#xff0c;World! 加粗加斜体&#xff08;两侧加三个星号&#xff09;&#xff1a…

可视化工作流管理流程及工具

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速创新…

基于51单片机电子钟闹钟LCD1602显示proteus仿真设计

基于51单片机的LCD1602电子钟闹钟proteus仿真设计 基于51单片机的LCD1602电子钟闹钟proteus仿真设计功能介绍&#xff1a;仿真图&#xff1a;原理图&#xff1a;设计报告&#xff1a;程序&#xff1a;器件清单&#xff1a;资料清单&&下载链接&#xff1a; 基于51单片机…

记一次简单的PHP反序列化字符串溢出

今天朋友给的一道题&#xff0c;让我看看&#xff0c;来源不知&#xff0c;随手记一下 <?php // where is flag error_reporting(0); class NFCTF{ public $ming,$id,$payload,$nothing;function __construct($iii){$this->ming$ii…

主播产品转场(款)话术

直播转场话术要点 在直播过程中&#xff0c;转场话术是非常重要的一部分。它可以帮助主播J顺利地将一个主题或场景过渡到另一个主题或场景&#xff0c;同时吸引观众的注意力。提高直播的观赏性和互动性。以下是一些直播转场话术的要点: 一、过渡性话语 过渡性话语是连接两个…

机器学习高级实践

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 前言 在当今科技飞速发展的时代&#xff0c;机…

Linux开发工具(含gdb调试教程)

文章目录 Linux开发工具&#xff08;含gdb调试教程&#xff09;1、Linux 软件包管理器 yum2、Linux开发工具2.1、Linux编辑器 -- vim的使用2.1.1、vim的基本概念2.1.2、vim的基本操作2.1.3、vim正常模式命令集2.1.4、vim末行模式命令集 2.2、vim简单配置 3、Linux编译器 -- gcc…

TSINGSEE青犀智能分析网关道路积水识别AI算法方案

在各处的街道、路口等区域&#xff0c;及时发现道路积水问题&#xff0c;可以大大减少城市管理部门压力&#xff0c;及时处理&#xff0c;减少交通事故与人员摔倒事故。通过道路积水AI算法&#xff0c;能有效提高城市管理部门效率&#xff0c;优化城市管理方式。 那么&#xff…

西米支付:简单介绍一下支付公司的分账功能体系

随着互联网的普及和电子商务的快速发展&#xff0c;支付已经成为人们日常生活的重要组成部分。支付公司作为第三方支付平台&#xff0c;为消费者和商家提供了便捷、安全的支付方式。而在支付领域中&#xff0c;分账功能是一个非常重要的功能&#xff0c;它可以帮助企业实现资金…

livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形

livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形 livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形livox 介绍更换仿真中mid360雷达外形 livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形 livox 介绍 览沃科技有限公司&#xff08;L…

如何在Simulink中使用syms?换个思路解决报错:Function ‘syms‘ not supported for code generation.

问题描述 在Simulink中的User defined function使用syms函数&#xff0c;报错simulink无法使用外部函数。 具体来说&#xff1a; 我想在Predefined function定义如下符号函数作为输入信号&#xff0c;在后续模块传入函数参数赋值&#xff0c;以实现一次定义多次使用&#xf…