使用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”,自行百度,微软官网安装
首先下载安装包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">
AllowOverride None
Options None
Require 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,界面如下:
下载安装包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"
在D:\Server\www下新建index.txt文件,输入如下代码
<?php
phpinfo();
?>
更改扩展名为.php,重启先前的Apache服务
用浏览器访问localhost/index.php,可得PHP详细信息页面
至此就基本没有大问题了
下面配置PHP环境变量,这是为了方便在cmd里直接使用PHP,也可以不配置
计算机右键-属性-高级系统设置-环境变量,新建系统变量
再打开Path系统变量,在后面加上%PHP_HOME%
随后在cmd中测试,输入php -version,会显示版本信息,说明配置成功
直接下载的离线安装包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,输入密码,若能成功登录,说明配置成功
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.