PHP运行环境的搭建入门与提高(Window10中使用PHP7.4 + Apache2.4)

PHP运行环境的搭建入门与提高(Window10中使用PHP7.4 + Apache2.4)

PHP运行环境的搭建及问题处理

本文讲的是在Windows10下,使用PHP7.4.4 压缩包+ Apache2.4.41压缩包为例详细介绍如何搭建PHP运行环境,其中还对新手可能碰到的问题给出了具体的处理办法。顺便指出,现在PHP和Apache官方都已不提供install版了。建议新手使用集成组件安装版,诸如WampServer、phpStudy,最后将说明。

PHP原为Personal Home Page后更名为 Hypertext Preprocessor(超级文本预处理语言),是一种创建动态交互性站点的强有力的服务器端脚本语言,是常用的网站编程语言。开源免费。

为了学习使用 PHP,你需要一个运行环境, PHP运行环境通常包括:

★Web 服务器,WEB服务器也称为WWW服务器、HTTP服务器,其主要功能是提供网上信息浏览服务。

Apache开源的老牌服务器,它可以运行在几乎所有广泛使用的计算机平台上。

IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思,是微软公司主推的,专门运行在Windows 上。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。可以运行在多种平台上。

★PHP

★数据库,如 MySQL等。非必须,除非使用数据库存储数据。

下面详细介绍在Windows10下,使用目前最新的PHP-7.4.4 压缩包版本和Apache2.4.41压缩包版本搭建PHP运行环境。我这里使用的是

注意,PHP版本和Apache版本的选择有时很关键,否则易出现连接不上数据库等问题。httpd-2.4.41+php-7.4.4+微软常用运行库合集_2019.07.20_X64,下载地址

https://download.csdn.net/download/cnds123/12270209

安装PHP,先到官网下载:

https://www.php.net/downloads.php

【注:如果想使用Apache配置PHP的话,一般需要选择Thread Safe(TS)版本的PHP。

如果想使用IIS配置PHP的话,那么需要选择Non-Thread Safe(NTS)版本的PHP。

TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查

NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查

使用Apache+PHP的模式下,一般是把PHP作为一个Module load到apache中,那么以apache父进程-多子进程的工作模式,是需要进行线程安全检查的,所以如果是以这种方式执行php,选择ts版本。

那么如果是使用FastCGI(是一个常驻(long-live)型的CGI(公共网关接口、Common Gateway Interface)),比如说用php-fpm管理php执行,则不需要进行线程安全检查,则选择nts版本的php。】

下载后解压(复制到D盘解压,可修改路径,不要含中文字符)为:D:/php-7.4.4

在其中有两个php配置文件,php.ini-development 和 php.ini-production,两个文件没有太多区别,一个用于开发环境,一个用于生产环境,区别也就是开发环境的配置能够看到更多的错误警告。

复制其中一个,这里是将php.ini-development后缀更改为ini,用记事本打开,按需求修改部分配置

找到; extension_dir = "ext" 去掉前面的分号,也可以在ext目录【其中是一些扩展库】前加上其实际所在的路径,如我的是:

extension_dir = "D:/php-7.4.4/ext"

参见下图:

再将 D:/php-7.4.4加入环境变量PATH中,选中计算机,右键属性–>高级系统设置 –>环境变量–>系统变量,找到Path,编辑,在其后加上。参见下图:

顺便说明,php命令行用法简介

在命令行中查看当前php的版本

php –v

在cmd(命令行)中查看使用帮助

php -help 或php –h

在cmd(命令行)中执行php文件

用记事本建立文件,内容:

echo "运行php命令行echo";

echo "\r\n";

echo "Hello, World.";

echo "\r\n";

echo "你好世界。";

?>

保存为文件名为:hello.php,保存路径为d:\phpDome。

可如下执行

php -f 路径\文件名,如:

php -f d:\hello.php

在cmd(命令行)中

php -a

进入交互shell后,键入php代码

ctrl+c退出交互shell

对此不多说了。

安装Apache,先到官网下载:

http://httpd.apache.org/download.cgi

【使用ApacheHaus或ApacheLounge,见上图标示2处,这儿使用后者】

下载后解压(复制到D盘解压,可修改路径,不要含中文字符和空格)为:D:/Apache24

将 D:\Apache24\bin加入环境变量PATH中(参见前面)

在其中找到httpd.conf

用记事本打开httpd.conf,

如下处理:

1)查找 DocumentRoot,若找到类似 DocumentRoot "c:/Apache24/htdocs"

说明此为早期版本,将之改为DocumentRoot "d:/Apache24/htdocs" ——即将后面“”内按你的实际安装路径改动,我这里是"d:/Apache24"。

若找到类似DocumentRoot "${SRVROOT}/htdocs"

说明此为后来版本,搜索Define SRVROOT,没错是找这个,找到 Define SRVROOT "/Apache24"之类,将之改为Define SRVROOT "d/Apache24"——即将后面“”内按你的实际安装路径改动,我这里是"d:/Apache24"。

2)在文末加入如下几句:

PHPIniDir "路径”

LoadModule php7_module "路径/php7apache2_4.dll"

AddType application/x-httpd-php .php .html .htm #添加支持对php脚本解析,解决显示php源码或直接下载文件

其中:

路径依据PHP的安装路径(php.ini文件所在的路径)修改,我这里是d:/php-7.4.4。PHP7的预处理器模块文件是 php7apache2_4.dll(特别提示,这是PHP7的预处理器模块文件)在PHP安装目录下可以看到。参见下图:

快速检查apache 中的 配置文件httpd.conf 是否正常

在cmd中输入httpd –t 回车(即按下Enter键),显示如下

OK!

【若在cmdzhong 用httpd -t 检查师,提示:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::4de2:6c46:aec1:6a57. Set the 'ServerName' directive globally to suppress this message

Syntax OK

处理:

在httpd.conf中,搜索"#ServerName",

在#ServerName www.example.com:80句之后

添加ServerName localhost:80】

现在,可以启动apache,

以管理的身份运行CMD,参见下图:

先安装服务,在cmd中输入httpd -k install [–n “服务名”] ,其中[]部分代表可选,不用使用默认服务名,例如:

httpd -k install -n “Apache24”

再启动服务 net start 服务名,例如:

net start Apache24

参见下图:

类似上图显示Apache服务正常工作了。

注意,httpd.conf改动后,要重启Apache服务才成。

【若hetpd.conf加入PHPIniDir "php.ini的路径” 如PHPIniDir "d:/php7.4.4”报错

apache添加php模块后无法启动了。

可能缺少微软常用运行库,搜索“微软常用运行库合集” 下载安装。】

在cmd中查看Apache的版本号 httpd -v

【附、服务操作,以管理员身份打开cmd,再如下操作

删除服务 sc delete 服务名

sc delete Apache24

启动服务

通过命令net start 服务名

停止服务

通过命令net stop服务名

在cmd中查看开启了哪些服务

net start

在cmd中查看开启了哪些端口——列出所有端口的情况

netstat -ano

在cmd中查看指定端口的使用情况

如查找80端口的使用情况

netstat -ano|findstr :80

【顺便提及

找到ApacheMonitor.exe运行(在\bin),可以方便的管理服务:

在左下角上可以看到 右击它出现快捷菜单,单击Open Apache Monitor 出现Apache Service Monitor对话框。参见下图:

现在可以写一个php文件,内容如下:

PHP Hello World - 来自PHP的问候。

echo "Hello, World.";

echo "你好世界。";

?>

保存文件名为helloworld.php(或helloworld.html),注意保存位置htdocs中(这里是d:/Apache24/htdocs)

在浏览器输入网址:http://127.0.0.1/helloworld.php 或http://localhost/helloworld.php,运行结果如下:

OK!

下面给出一个好点的例子,简单投票系统

这个由3个文件组成poll.html、poll_vote.php、poll_result.txt

poll.html,此HTML 文件作为用户界面表单,内容如下:

简单投票系统

你喜欢 PHP 和 AJAX 吗?

是:


否:

poll_vote.php,此文件接受用户的操作,读写"poll_result.txt" 文件,内容如下:

$vote = htmlspecialchars($_REQUEST['vote']);

// 获取文件中存储的数据

$filename = "poll_result.txt";

$content = file($filename);

// 将数据分割到数组中

$array = explode("||", $content[0]);

$yes = $array[0];

$no = $array[1];

if ($vote == 0)

{

$yes = $yes + 1;

}

if ($vote == 1)

{

$no = $no + 1;

}

// 插入投票数据

$insertvote = $yes."||".$no;

$fp = fopen($filename,"w");

fputs($fp,$insertvote);

fclose($fp);

?>

结果:

是:

%

否:

%

poll_result.txt内容如下:

0||0

说明:文本文件 (poll_result.txt) 中存储来自投票程序的数据。其中:

第一个数字表示 "Yes" 投票,第二个数字表示 "No" 投票。

现在可以发布这个小系统了。

【如何知道网址发布位置——Apache HTTP Server 的网站发布目录?

可以用记事本打开 http.conf 文件,搜索找到 DocumentRoot 为开头的那一行:

1)如果其中含有${SRVROOT},再搜索Define SRVROOT,由Define SRVROOT后面部分和DocumentRoot ${SRVROOT}后面部分两者确定网站发布目录,参见下图:

2)如果其中没有${SRVROOT},由DocumentRoot后面部分确定网站发布目录:

知道了网站发布目录,发布很简单

将这三个文件放到SimpleVoting 目录中,将SimpleVoting 目录复制到Apache安装路径的htdocs目录中(这里是d:/Apache24/htdocs)

现在可以运行这个简单投票系统了。

在浏览器输入网址:http://127.0.0.1/SimpleVoting/poll.html或http://localhost//SimpleVoting/poll.html

上面演示了这台电脑,若未接入网络,可在此电脑的浏览器输入:localhost/php项目起始文件名访问,若接入网络,就可以被互联网中其它客户端用户访问了——在浏览器输入:地址/php项目起始文件名 访问。假设设置这台电脑局域网IP为192.168.1.6,在此局域网的另一台电脑的浏览器输入网址http://192.168.1.6/simpleVoting/poll.html 回车(按下Enter键)即可访问。

数据库

通过 PHP,您可以连接和操作数据库。php支持的数据库较多,除常见的Oracle、SQLServer、 Mysql外,还有很多。 当有数据存储与检索等需求时,就需要数据库。

关于数据库安装不多说,可参见:https://blog.csdn.net/cnds123/article/details/104454487

找到PHP根目录下的php.ini,用文本编辑器打开找到下面几条常用配置,去掉前面的分号: ;extension=mysqli ;extension=pdo_mysql

参见下图:

注意,改动后,要重启Apache服务生效。

推荐使用集成组件安装版,诸如WampServer等,它已经包含了 PHP、Apache、Mysql ,免去了开发人员将时间花费在繁琐的配置过程。

Windows 系统可以使用 WampServer,支持32位和64位系统,根据自己的系统选择版本。官网下载地址:http://www.wampserver.com

但一般情况下不可下载。可到网上搜索下载,下面给出一个链接(华军软件园WampServer3.2下载页):

http://soft.onlinedown.net/soft/82112.htm

WampServer

需要初学者最初明确的两点:一是WampServer 安装时要留意安装路径,集成的PHP、Apache、MySQL 安装在此路径下的bin中,二是安装路径中的www目录就是其默认的网站发布目录。参见下图:

WampServe之默认网站发布目录的修改

在WampServer的安装目录找到scripts目录,用记事本打开config.inc.php文件,找到下面的句子:

$wwwDir=Sc_installDir.'/www';

改成你要设置的网站发布目录,例如你想将网站代码放到d:/site,将上句改为

$wwwDir='d:/site'

然后重启WampServer生效。

【也可以httpd.conf文件中修改DocumentRoot指定目录,然后重启WampServer生效,但这样修改,通过任务栏“W”图标进入原来网站发布目录。】

wampapache或wampapache64、wampariadb或wampariadb64、wampmysqld或wampmysqld64是wamp安装后出现的服务进程。

64代表64位版本没有的是32位版本。

wampapache 是wamp的apache服务端进程。

wampariadb是wamp的ariadb数据库服务端进程。

wampmysqld是wamp的mysql数据库服务端进程。

phpStudy

该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。

官网地址:https://www.xp.cn

其安装后的目录如下:

使用pdo 连接测试代码,其中password,要替换为MySQL的root用户的实际登录密码

try {

$con= new PDO("mysql:host=localhost","root","password");

echo "连接成功";

}

catch(PDOException $e)

{

echo $e->getMessage();

}

?>

使用mysqli_connect 连接测试代码,其中password,要替换为MySQL的root用户的实际登录密码

$con= mysqli_connect("localhost","root1","password");

if ($con->connect_error) {

die("Connection failed: " . mysqli_connect_error());

}

echo "连接成功";

?>

相关推荐

智利国家足球队
365bet体育存款

智利国家足球队

📅 07-05 👁️ 2669
win10查看其他电脑共享文件夹的方法 win10如何查看其他电脑共享文件
2025年6月英语四级精选语法:let的用法
365bet体育存款

2025年6月英语四级精选语法:let的用法

📅 07-09 👁️ 2882