php开发环境集成

article/2025/10/8 19:18:20

PHP新手在准备正式开始写PHP代码的时候,不幸的是被PHP的开发环境的安装挡住了。

1.1 安装php软件

在php官网http://www.php.net 下载php运行环境软件,32位操作系统的电脑安装32位的php运行环境软件,64位操作系统32位和64位的php运行环境软件都可以。下载之后,直接解压php运行环境软件到指定文件目录,例如 D:/server/php 表示安装成功。

解压下面是32的php软件截图:

注意:安装目录不要出现特殊字符或者是中文

1.2 如何让php环境运行php代码

直接使用php软件直接运行(理解)代码文件中的php代码;在B/S结构中让Apache使用PHP软件运行(理解)代码文件中的php代码;

1.2.1 PHP软件直接运行(理解)代码文件中的PHP代码

PHP软件安装的目录下有个php.exe可执行程序,该程序是一个DOS下的程序,需要在DOS系统中运行,

在dos命令中进入D:\server\php\

php技术

使用php.exe  php文件地址 执行代码文件中的php代码

注意: php软件运行(理解)php代码而非以.php结尾的文件,所以php代码可以写在任何的文件中。

1.2.2 B/S结构中服务器上的PHP软件直接运行件PHP代码

下图是对B/S结构中服务器上的PHP软件运行php代码原理的说明;

说明:

1. web服务器是一个软件,该软件可以是apache,iis,nginx等。它主要是按照用户浏览器的需求将静态内容发送给浏览器。

2. 浏览器从不直接和PHP预处理器打交道,PHP预处理器负责运行(理解)PHP文件中的PHP代码,再将运行结果交给web服务器。

3. 最常见的是将apache作为web服务器。

2安装Apache web服务器

2.1 解压Apache安装包

进入apache官网http://www.apache.org 下载Apache web安装包,解压web服务器到指定文件目录,例如 D:/server/apache。

2.2 使用DOS命令安装Apache

在dos命令中进入D:\server\apache\bin,使用命令httpd -k install安装服务

2.3 查看Apache web服务器

双击打开D:\server\apache\bin\ApacheMonitor.exe程序,查看web服务器

2.4 apache服务器无法启动处理方式

使用命令httpd.exe  –t 检验配置文件是否有错误,错误信息如下

在配置文件中 D:\server\apache\conf\httpd.conf 默认的安装目录为:

修改配置文件中的 ServerRoot "c:/Apache24" 为 ServerRoot "D:/server/apache"

再次启动服务失败,再次检测配置文件,错误信息为:

在配置文件中 D:\server\apache\conf\httpd.conf 默认的DocumentRoot和Directory 是:

修改DocumentRoot和Directory 指向的路径为:

2.5 告知Apache什么时候使用PHP模块

第一种方案:AddHandler application/x-httpd-php .php

第二种方案:

<FilesMatch \.php$>

       SetHandler application/x-httpd-php

</FilesMatch>

两种方案的区别,第一种方案将1.php.txt文件也作为php文件来处理,因为文件名中包含.php。第二种方案:只有最终以.php结尾的文件才作为php文件来处理。建议使用第二种方案。

2.6 为Apache指定php的配置文件 php.ini

通常情况下新安装的PHP软件(预处理器)都需要该为软件指定一个配置文件来改变默认的配置信息。PHP软件在安装目录下提供了两个配置文件的模板。(开发环境模板、生成环境模板)。

告知apache服务器php的配置文件在哪里,在D:\server\apache\conf\httpd.conf中指定php配置文件的路径

2.7 配置一个虚拟主机

在httpd.conf中开启apache的虚拟主机配置文件,Include conf/extra/httpd-vhosts.conf 去掉前面的 #,在httpd-vhosts.conf中新增一个虚拟主机。

3.安装mysql

进入mysql官网https://www.mysql.com/downloads/ 下载mysql安装包,解压mysql服务器到指定文件目录,例如 D:/server/mysql。

3.1 安装mysql服务器

设置安装路径 建议安装路径 D:/server/mysql,设置数据文件路径,建议保存路径 D:/server/mysql/data。

3.2 mysql服务器的配置

启用mysql的配置向导 

启用详细配置

选择默认编码为utf8

将mysql安装目录的bin目录添加到环境变量中,在dos环境下的任意目录下都能使用mysql命令

本文来源:http://www.itsource.cn/web/news/5/20170306/1144.html?20170322hlx,转载请注明出处!


http://chatgpt.dhexx.cn/article/cOvtepnM.shtml

相关文章

php集成环境搭建

php基础开发&#xff08;集成环境搭建&#xff09; 1、下载软件 2、安装软件并配置环境 3、验证 1、下载软件 下载地址 链接&#xff1a;https://pan.baidu.com/s/14rAsOm1g2WUUVaQ7E7VOuQ 提取码&#xff1a;wamp 或者搜索wamp自行下载进行安装。 2、安装软件并配置 安…

python3遍历列表赋值_Python3实现的字典遍历操作详解

本文实例讲述了Python3字典遍历操作。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 字典是针对非序列集合而提供的一种数据类型。 通过任意键查找集合中值信息的过程叫映射&#xff0c;python通过字典实现映射。 为字典赋值&#xff1a; >>> d{list:[1, 2, …

python2字典遍历方法性能对比

在公司服务器上跑python2程序时&#xff0c;使用了 tqdm(d.items()) 来包裹字典&#xff0c;发现进度条一直卡在0%不动&#xff0c;怀疑是 d.items() 取出所有的元素作为列表返回&#xff0c;而不是迭代器&#xff0c;导致耗时非常长。在此做一下性能测试&#xff0c;代码如下&…

python遍历多层字典_Python遍历嵌套字典的几种方法

文 | 猿天罡 前言 为了让小伙伴们不耗费多余的注意力,我们举的例子都尽可能的简单,不信你回去看看,字典键对应的值都是基本数据类型(字符串、数字等)。 其实,字典里键对应的值可以很复杂。 我们可以在字典中存储列表,在列表中存储字典,在字典中存储字典等等。 Python中几…

python字典的遍历

遍历字典&#xff1a; keys() 、values() 、items()   1. xxx.keys() : 返回字典的所有的key 返回一个序列&#xff0c;序列中保存有字典的所有的键 效果图&#xff1a; 代码&#xff1a; # keys() 该方法会返回字典的所有的key # 该方法会返回一个序列&#x…

python字典遍历登录程序_Python字典遍历操作实例小结

本文实例讲述了Python字典遍历操作。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 1 遍历键值对 可以使用一个 for 循环以及方法 items() 来遍历这个字典的键值对。 dict {evaporation: 蒸发, carpenter: 木匠} for key, value in dict.items(): print(key key) pr…

python字典遍历:菜名和价格的展示

编程要求 本关的编程任务是补全src/Step3/key-values.py文件的代码&#xff0c;实现相应的功能。具体要求如下&#xff1a; 将menu_dict菜单的键遍历输出&#xff1b;将menu_dict菜单的值遍历输出。 代码 ↓ # codingutf-8# 创建并初始化menu_dict字典 menu_dict {} whil…

Mysql查询日期timestamp格式的数据

在Navicat中&#xff0c;时间戳(timestamp)格式的数据表现为&#xff1a; 查询某一天的数据 SELECT * FROM my_table WHERE update_time LIKE 2022-10-06%或是&#xff1a; SELECT * FROM my_table WHERE update_time BETWEEN 2022-08-04 00:00:00 AND 2022-08-04 23:59:59…

mysql中的timestamp类型时间范围

背景&#xff1a;服务数据入库的时候报错 com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: 2050-04-14 13:43:55 for column failure_time at row 1 鉴于部分入库时间报错&#xff0c;首先排除了代码问题&#xff0c;想到了是不是timestamp时…

MySQL的时间类型

MySQL的时间类型 首先可以将使用字符串类型来表示时间类型排除掉&#xff1a;字符串占用需要 19字节&#xff0c;占用的空间比较大。其次字符串表示的时间比较、处理比较麻烦&#xff0c;不能使用时间函数&#xff0c;比如&#xff1a;YEAR&#xff08;&#xff09;所以MySQL的…

timestamp类型数据,一段时间内查询。

创建时间是timestamp类型&#xff0c;根据年月日的日期是无法查询到的&#xff0c;所以我们需要通过转换数据格式进行查询。 查询一段时间内的数据。 一、beteen...and SELECT * FROM weigh WHERE Business_card_number LIKE 华A% AND DATE_FORMAT(N_time,%Y-%m-%d %H:%i:%s…

MySQL 中 TIMESTAMP 类型返回日期时间数据中带有 T

MySQL 中 TIMESTAMP 类型返回日期时间数据中带有 T 一、场景描述&#xff1a; MySQL 中使用 TIMESTAMP 类型 实体类使用 java.util.Date 类型 返回 JSON 数据&#xff1a; 二、通过注解格式化&#xff08;方法一&#xff09; 可以在日期类型属性上&#xff0c;或者 GET 方…

【mysql】日期与时间类型

文章目录 日期与时间类型1. YEAR类型2. DATE类型3. TIME类型4. DATETIME类型5. TIMESTAMP类型6. 开发中经验 日期与时间类型 日期与时间是重要的信息&#xff0c;在我们的系统中&#xff0c;几乎所有的数据表都用得到。原因是客户需要知道数据的时间标签&#xff0c;从而进行数…

根据年月日查询mysql的时间戳(timestamp)的处理方法

有的时候我们想查询数据的创建时间&#xff0c;也可以理解为用户的注册时间来查询数据&#xff0c;因为一般创建时间都会timestamp类型&#xff0c;所以根据年月日的日期是无法查询到的&#xff0c;所以我们需要转换格式查询&#xff0c;下面就看具体的操作吧。 这是我表的数据…

mysql时间类型

mysql时间类型&#xff1a;datetime&#xff0c;timestamp&#xff0c;date&#xff0c;time&#xff0c;year 几种时间类型比较如下&#xff1a; 1.datetime DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份&#xff08;见上表&#xff09;比较长久…

快速Mockito教程

一、什么是mock测试&#xff0c;什么是mock对象&#xff1f; 先来看看下面这个示例&#xff1a; 从上图可以看出如果我们要对A进行测试&#xff0c;那么就要先把整个依赖树构建出来&#xff0c;也就是BCDE的实例。 一种替代方案就是使用mocks 从图中可以清晰的看出 mock对象就是…

【转】Mockito教程

原文地址&#xff1a;https://www.cnblogs.com/Ming8006/p/6297333.html 1 Mockito 介绍 [3] 1.1 Mockito是什么&#xff1f; Mockito是mocking框架&#xff0c;它让你用简洁的API做测试。而且Mockito简单易学&#xff0c;它可读性强和验证语法简洁。 1.2 为什么需要Mock 测…

mockito使用教程

一、什么是 Mock 测试 Mock 测试就是在测试过程中&#xff0c;对于某些不容易构造&#xff08;如 HttpServletRequest 必须在Servlet 容器中才能构造出来&#xff09;或者不容易获取比较复杂的对象&#xff08;如 JDBC 中的ResultSet 对象&#xff09;&#xff0c;用一个虚拟的…

Mockito教程

目录 1 Mockito 介绍 1.1 Mockito是什么&#xff1f; 1.2 为什么需要Mock 1.3 Stub和Mock异同 1.4 Mockito资源 1.5 使用场景 2 使用Mockito 2.1 验证行为 2.2 模拟我们所期望的结果 2.3 RETURNS_SMART_NULLS和RETURNS_DEEP_STUBS 2.4 模拟方法体抛出异常 …

python的取整函数:向上取整,向下取整,四舍五入取整

#encoding:utf-8 import math#向上取整 print "math.ceil---" print "math.ceil(2.3) > ", math.ceil(2.3) print "math.ceil(2.6) > ", math.ceil(2.6)#向下取整 print "\nmath.floor---" print "math.floor(2.3) > &q…