一步步教你手动搭建Web服务器环境
时间:2023-05-31 10:33:02 | 来源:网站运营
时间:2023-05-31 10:33:02 来源:网站运营
一步步教你手动搭建Web服务器环境:
作者:掌控安全-罗网
使用PHPStudy等集成包搭建是能省不少事,但是也少看见了很多东西,这样就不能自己安排,不喜欢这种感觉。
我这里是在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文件夹会在后面创建。
开始配置
用记事本打开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">AllowOverrideNoneOptionsNoneRequire all granted</Directory>
接下来双击运行D:/Server/Apache24/bin/httpd.exe,出现了一个没有任何输出的黑窗体,且不会闪退。
这其实意味着打开了Apache服务器,不要关闭黑窗体,下面测试:
在虚拟机中打开Google Chrome,地址栏输入localhost,可以访问到如下页面
在物理机的浏览器中输入虚拟机IP地址也可访问到相同页面(cmd里ipconfig命令可查询IP)
若是没在虚拟机里安装,全部安在物理机也一样,打开浏览器输入localhost,可以访问到上述页面
我这里虚拟机网络连接NAT模式下,在物理机中通过Chrome,firefox,IE,360均可正常访问网页,唯独edge不行,不知道为什么。
假装没发生过,反正Chrome能访问就行了。
出现It works!说明应该没什么大问题了,关闭黑窗体,接下来把httpd.exe装到Windows服务里。
打开cmd,进入httpd.exe所在目录,输入httpd -k install安装服务。
若想删除服务,可以以管理员身份运行cmd用sc delete Apache2.4命令删除
安装成功后,在桌面的“计算机”上右键—管理—服务和应用程序—服务,可以查看所有服务,其中就有Apache2.4服务。
在该服务上右键-属性,有一个启动类型选项,默认是自动(开机自启),由于只是学习使用,所以我改成了手动,以后可以在该服务上右键-启动来自行控制它。
方便起见,我将D:/Server/Apache24/bin下的ApacheMonitor添加到了开始菜单中,这是一个操控Apache服务的图形化界面,
打开后在电脑右下角的小图标里找到它,右键-open,界面如下:
二.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.phpphp.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.phpphp_gd2.dll
https://www.php.net/manual/zh/book.image.phpphp_fileinfo.dll
https://www.php.net/manual/zh/book.fileinfo.phpphp_mbstring.dll
https://www.php.net/manual/zh/book.mbstring.phpphp_pdo_mysql.dll
https://www.php.net/manual/zh/ref.pdo-mysql.phpphp_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=curlextension=gd2extension=fileinfoextension=mbstringextension=pdo_mysqlextension=mysqli
为Apache服务添加PHP支持 :
在此前的httpd.conf文件的最下面添加如下代码:
# php7 supportLoadModule php7_module "D:/Server/PHP/php7apache2_4.dll"AddType application/x-httpd-php .php .html .htm# configure the path to php.iniPHPIniDir"D:/Server/PHP"
在D:/Server/www下新建index.txt文件,输入如下代码
<?php phpinfo();?>
更改扩展名为.php,重启先前的Apache服务
用浏览器访问localhost/index.php,可得PHP详细信息页面
至此就基本没有大问题了
下面配置PHP环境变量,这是为了方便在cmd里直接使用PHP,也可以不配置
计算机右键-属性-高级系统设置-环境变量,新建系统变量
再打开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设置的默认编码一致,否则中文会乱码)
更改扩展名为.php,启动Apache服务和MySQL服务,浏览器localhost/testmysql.php访问可得
测试成功,至此环境就搭建完了
下面配置MySQL环境变量,这是为了方便在cmd里直接使用MySQL,也可以不配置
新建系统变量MYSQL_HOME
在Path中添加%MYSQL_HOME%/MySQL Server 8.0/bin
开启MySQL服务,在cmd中输入mysql -h localhost -u root -p,输入密码,若能成功登录,说明配置成功