手动搭建Web服务器环境

罗网   ·   发表于 2020-07-20 16:37:40   ·   闲聊灌水区

手动搭建Web服务器环境

使用PHPStudy等集成包搭建是能省不少事,但是也少看见了很多东西,这样就不能自己安排,不喜欢这种感觉。我这里是在VM虚拟机的Win7下进行的,其它Windows系统大同小异,其实在Windows Server之类的系统上搭建应该更好。本文我在CSDN上也发布了,如遇相同不要奇怪,不是抄袭。

本文采用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变量即可

  1. Define SRVROOT "c:/Apache24"
  2. ServerRoot "${SRVROOT}"
  3. 改为
  4. Define SRVROOT "d:/Server/Apache24"
  5. ServerRoot "${SRVROOT}"

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

  1. # If your host doesn't have a registered DNS name, enter its IP address here.
  2. #
  3. #ServerName www.example.com:80
  4. 改为
  5. # If your host doesn't have a registered DNS name, enter its IP address here.
  6. #
  7. 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下,以备后续测试

  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">
  7. 改为
  8. # DocumentRoot: The directory out of which you will serve your
  9. # documents. By default, all requests are taken from this directory, but
  10. # symbolic links and aliases may be used to point to other locations.
  11. #
  12. DocumentRoot "d:/Server/www"
  13. <Directory "d:/Server/www">

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

  1. 没做更改
  2. <IfModule dir_module>
  3. DirectoryIndex index.html
  4. </IfModule>
  5. 如果要更改,可以改为
  6. <IfModule dir_module>
  7. DirectoryIndex index.php index.html index.htm
  8. </IfModule>
  9. index.php index.html index.htm三个文件是有优先关系的,例:
  10. 若同时有index.php index.html,则默认访问index.php
  11. 若只有index.html,则默认访问index.html

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

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

  1. 没做更改
  2. ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
  3. 往下几行还有这个,也没改
  4. <Directory "${SRVROOT}/cgi-bin">
  5. AllowOverride None
  6. Options None
  7. Require all granted
  8. </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扩展包目录):

  1. ; On windows:
  2. ;extension_dir = "ext"
  3. 改为
  4. ; On windows:
  5. extension_dir = "D:\Server\PHP\ext"

date.timezone(设置时区):

  1. ;date.timezone =
  2. 改为
  3. date.timezone = PRC

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

  1. 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

  1. ;extension=curl
  2. ;extension=gd2
  3. ;extension=fileinfo
  4. ;extension=mbstring
  5. ;extension=pdo_mysql
  6. ;extension=mysqli
  7. 改为
  8. extension=curl
  9. extension=gd2
  10. extension=fileinfo
  11. extension=mbstring
  12. extension=pdo_mysql
  13. extension=mysqli

为Apache服务添加PHP支持

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

  1. # php7 support
  2. LoadModule php7_module "D:/Server/PHP/php7apache2_4.dll"
  3. AddType application/x-httpd-php .php .html .htm
  4. # configure the path to php.ini
  5. PHPIniDir "D:/Server/PHP"

添加php支持


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

  1. <?php
  2. phpinfo();
  3. ?>

更改扩展名为.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文件,写上如下代码:

  1. <?php
  2. $conn=mysqli_connect("localhost","root","root密码");
  3. if($conn)
  4. echo "连接success";
  5. else
  6. echo "连接fail";
  7. ?>

将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,输入密码,若能成功登录,说明配置成功

打赏我,让我更有动力~

0 条回复   |  直到 2020-7-20 | 1343 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.