手动配置Web服务器环境,不用集成包

手动搭建Web服务器环境

看网上的教程大都是使用PHPStudy等集成包一键搭建的Web环境,使用集成包搭建是能省不少事,但是也少看见了很多东西,这样就不能自己安排,不喜欢这种感觉。我这里是在VM虚拟机的Win7下进行的,其它Windows系统大同小异,其实在Windows Server之类的系统上搭建应该更好。

本文采用Apache+PHP+MySQL进行配置,版本如下:

Apache 2.4.43

PHP 7.4.8 Thread Safe

MySQL 8.0.21

配置期间若出现“缺少VC环境”或“缺少.NET Framework”,自行百度,微软官网安装

Apache配置

首先下载安装包https://www.apachelounge.com/download/,是一个压缩包。

然后创建一个文件夹放置Web服务环境资源,我这里是D:\Server

随后解压到Server文件夹下,这里解压后文件夹的名字叫做Apache24

附一张全部搭建完后的Server文件夹的图,其中的PHP,MySQL,www文件夹会在后面创建。
Server文件夹
开始配置

用记事本打开D:\Server\Apache24\conf\httpd.conf,这是Apache的配置文件。

修改以下条目,可按Ctrl+F查找

ServerRoot(Apache的根目录):d:/Server/Apache24,这里更改SRVROOT变量即可

Define SRVROOT "c:/Apache24"

ServerRoot "${SRVROOT}"
改为
Define SRVROOT "d:/Server/Apache24"

ServerRoot "${SRVROOT}"

ServerName(主机名):localhost:80,去掉#才能让设置生效

# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
改为
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost:80

DocumentRoot(Apache默认的网页目录):d:/Server/www

原先默认的网页目录是d:\Server\Apache24\htdocs,

我这里更改了,新建了d:\Server\www文件夹以存放网页,所以要更改DocumentRoot

把d:\Server\Apache24\htdocs下的index.html复制到d:\Server\www下,以备后续测试

# 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">
改为
# 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 "d:/Server/www"
<Directory "d:/Server/www">

DirectoryIndex(Apache默认的入口网页):这里没做更改,就用的默认的index.html

没做更改
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

如果要更改,可以改为
<IfModule dir_module>
 DirectoryIndex index.php index.html index.htm
</IfModule>

index.php index.html index.htm三个文件是有优先关系的,例:
若同时有index.php index.html,则默认访问index.php
若只有index.html,则默认访问index.html

ScriptAlias(没研究过,反正是个路径):这里没做更改

之前设置ServerRoot的时候,更改过SRVROOT变量为d:/Server/Apache24,而cgi-bin是Apache24下的一个文件夹,这里只要符合cgi-bin的路径即可。我已经符合,故不修改。

没做更改
ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
往下几行还有这个,也没改
<Directory "${SRVROOT}/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

接下来双击运行D:\Server\Apache24\bin\httpd.exe,出现了一个没有任何输出的黑窗体,且不会闪退。

这其实意味着打开了Apache服务器,不要关闭黑窗体,下面测试:

在虚拟机中打开Google Chrome,地址栏输入localhost,可以访问到如下页面

itworks

在物理机的浏览器中输入虚拟机IP地址也可访问到相同页面(cmd里ipconfig命令可查询IP)

若是没在虚拟机里安装,全部安在物理机也一样,打开浏览器输入localhost,可以访问到上述页面

我这里虚拟机网络连接NAT模式下,在物理机中通过Chrome,firefox,IE,360均可正常访问网页,唯独edge不行,不知道为什么。假装没发生过,反正Chrome能访问就行了。

出现It works!说明应该没什么大问题了,关闭黑窗体,接下来把httpd.exe装到Windows服务里。

打开cmd,进入httpd.exe所在目录,输入httpd -k install安装服务。
安装httpd服务

若想删除服务,可以以管理员身份运行cmd用sc delete Apache2.4命令删除

安装成功后,在桌面的“计算机”上右键–管理–服务和应用程序–服务,可以查看所有服务,其中就有Apache2.4服务。在该服务上右键-属性,有一个启动类型选项,默认是自动(开机自启),由于只是学习使用,所以我改成了手动,以后可以在该服务上右键-启动来自行控制它。方便起见,我将D:\Server\Apache24\bin下的ApacheMonitor添加到了开始菜单中,这是一个操控Apache服务的图形化界面,打开后在电脑右下角的小图标里找到它,右键-open,界面如下:

ApacheMonitor

PHP配置

下载安装包https://windows.php.net/download#php-7.4

下载Thread Safe版本,否则后期可能缺少php7apache2_4.dll

将zip压缩包解压为D:\Server\PHP

在D:\Server\PHP下有这样两个文件:php.ini-development和php.ini-production

两个都是PHP的配置文件,https://www.php.net/manual/zh/migration53.ini.php

php.ini-development包含在开发环境中推荐使用的设置

php.ini-production包含在生产环境中推荐使用的设置

这里使用php.ini-production,复制更名为php.ini放在同一目录下,以记事本打开

开始配置

extension_dir(PHP扩展包目录):

; On windows:
;extension_dir = "ext"
改为
; On windows:
extension_dir = "D:\Server\PHP\ext"

date.timezone(设置时区):

;date.timezone =
改为
date.timezone = PRC

default_charset(设置编码):没有更改,就用默认的UTF-8

default_charset = "UTF-8"

开启扩展:网上搜了几个常用的扩展,去掉分号开启,功能可查官方文档

php_curl.dll https://www.php.net/manual/zh/book.curl.php
php_gd2.dll https://www.php.net/manual/zh/book.image.php
php_fileinfo.dll https://www.php.net/manual/zh/book.fileinfo.php
php_mbstring.dll https://www.php.net/manual/zh/book.mbstring.php
php_pdo_mysql.dll https://www.php.net/manual/zh/ref.pdo-mysql.php
php_mysqli.dll https://www.php.net/manual/zh/book.mysqli.php

;extension=curl
;extension=gd2
;extension=fileinfo
;extension=mbstring
;extension=pdo_mysql
;extension=mysqli
改为
extension=curl
extension=gd2
extension=fileinfo
extension=mbstring
extension=pdo_mysql
extension=mysqli

为Apache服务添加PHP支持

在此前的httpd.conf文件的最下面添加如下代码:

# php7 support
LoadModule php7_module "D:/Server/PHP/php7apache2_4.dll"
AddType application/x-httpd-php .php .html .htm

# configure the path to php.ini
PHPIniDir "D:/Server/PHP"

添加php支持


在D:\Server\www下新建index.txt文件,输入如下代码

<?php
    phpinfo();
?>

更改扩展名为.php,重启先前的Apache服务

用浏览器访问localhost/index.php,可得PHP详细信息页面

php探针页面

至此就基本没有大问题了


下面配置PHP环境变量,这是为了方便在cmd里直接使用PHP,也可以不配置

计算机右键-属性-高级系统设置-环境变量,新建系统变量

PHP_HOME

再打开Path系统变量,在后面加上%PHP_HOME%

Path中添加PHP_HOME

随后在cmd中测试,输入php -version,会显示版本信息,说明配置成功

MySQL配置

直接下载的离线安装包https://dev.mysql.com/downloads/installer/,跟着下一步下一步,感觉没啥特殊的配置

新建MySQL文件夹,D:\Server\MySQL

选择custom自定义安装,根据需要选择相应组件,我选择装了

MySQL Server 8.0;MySQL Shell 8.0;MySQL Notifier 1.1;MySQL Workbench 8.0 CE;

Connector ODBC 8.0;Connector C++ 8.0;Connector J 8.0;Connector NET 8.0;

MySQL Documentation 8.0;

后面就一直“下一步”,除了让你设置密码的时候要设置一下

MySQL卸载可能有点麻烦,这里不赘述,最好一遍成功,下面是遇到的一些坑

  • 安装组件时,右下角有个Advanced Options选项,很容易忽略,里面可以设置自定义安装路径,且每个组件都要单独设置一遍,不清楚可以百度MySQL自定义安装路径

  • 安装前确保磁盘空间足够,因为我是在虚拟机里安装,一开始又错装到了C盘,碰巧C盘剩余1G不到,所以提示Fail了

正常安装完后,在计算机右键-管理-服务中可以看到名为MySQL80的服务,可以选择设为手动启动

另外,MySQLNotifier就是一个跟ApacheMonitor差不多的东西,也可以通过它开启服务


下面测试:

在D:\Server\www下新建testmysql.txt文件,写上如下代码:

<?php
    $conn=mysqli_connect("localhost","root","root密码");
	if($conn)
  		echo "连接success";
 	else
  		echo "连接fail";
?>

将txt文件另存为UTF-8编码的文件(要与PHP设置的默认编码一致,否则中文会乱码)

txt另存为UTF-8

更改扩展名为.php,启动Apache服务和MySQL服务,浏览器localhost/testmysql.php访问可得

连接success

测试成功,至此环境就搭建完了


下面配置MySQL环境变量,这是为了方便在cmd里直接使用MySQL,也可以不配置

新建系统变量MYSQL_HOME

新建MYSQL_HOME

在Path中添加%MYSQL_HOME%\MySQL Server 8.0\bin

Path中添加MYSQL_HOME

开启MySQL服务,在cmd中输入mysql -h localhost -u root -p,输入密码,若能成功登录,说明配置成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值