评论

收藏

[IIS] windows下配置Apache+PHP+MySQL绿色移动版

web服务器 web服务器 发布于:2021-11-03 20:17 | 阅读数:604 | 评论:0

Apache 下载地址 https://httpd.apache.org/
我下载的是 Apache HTTP Server (httpd) 2.2.17 点击 download ,选择
  httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
当然,你也可以下载源代码 httpd-2.2.17-win32-src.zip ,不过需要自己编译。
(我们第一次选择安装版,然后配置好,以后就可以在任何地方使用了)
PHP 下载地址 https://windows.php.net/download/
下载的时候有几个不同版本选择:
VC9 x86 Non Thread Safe
VC9 x86 Thread Safe
VC6 x86 Non Thread Safe
VC6 x86 Thread Safe  
关于 VC9 VC6 的区别:
VC6 就是 legacy Visual Studio 6 compiler ,就是使用这个编译器编译的
VC9 就是 the Visual Studio 2008 compiler ,就是用微软的 VS 编辑器编译的
如果你是在 windows 下使用 Apache+PHP 的,请选择 VC6 版本;
如果你是在 windows 下使用 IIS+PHP 的,请选择 VC9 版本;
Non Thread Safe 就是非线程安全; Thread Safe 是线程安全的意思
官方并不建议将 Non Thread Safe 应用于生产环境,所以这里我下载的是:
VC6 x86 Thread Safe  
MySQL 下载地址 https://dev.mysql.com/downloads/mysql/
上面有各种不同版本 ,我们 主要是这两个:
DSC0000.gif

上面那个表示需要安装,在安装过程中自己配置。
下面这个比较大,但是免安装的,但需要手动启动。
为了打造完全绿色的,这里我下载 noinstall 的。
  
下面开始配置服务器:
服务器 Apache+MySQL+PHP 其实先配置那个都可以,不过为了省多次修改的麻烦,我们安装 PHP->MySQL->Apache 的顺序来进行。
配置 PHP
把下载下来的 php-5.3.3-Win32-VC6-x86.zip 解压到 D:\Web\ 下,文件夹改名为 php ,然后把里面的“ php.ini-development ”文件(此处不同版本可能有所不同,可安装情况进行),将其重命名为“ php.ini ”,打开编辑,找到“ register_globals = Off ”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设为“ Off ”,就只能用“ $_POST[' 变量名 '] $_GET[' 变量名 '] ”等来取得送过来的值,如果设为“ On ”,就可以直接使用“ $ 变量名”来获取送过来的值,当然,设为“ Off ”就比较安全,不会让人轻易将网页间传送的数据截取。这个值是否改成“ On ”就看自己感觉了,是安全重要还是方便重要。
DSC0001.gif

这里还有一个地方要编辑,功能就是使php 能够直接调用其它模块,比如访问mysql ,如下图所示,选择要加载的模块,去掉前面的 “; ”,就表示要加载此模块了,加载的越多,占用的资源也就多一点,不过也多不到哪去,比如我要用mysql ,就要把“;extension= php_mysql .dll ”前的“; ”去掉。所有的模块文件都放在php 解压缩目录的“ext ”之下。下图只是参考,编辑好后保存,关闭。

DSC0002.gif

如果上一步加载了其它模块,就要指明模块的位置,否则重启Apache 的时候会提示“找不到指定模块”的错误。有两种方式可以解决这个问题,一种是把D:\Web\php\ext, 和D:\Web\php 加入到系统的环境变量Path 中去;还有一种方法是在php.ini 中到“extension_dir ”把其改为模块路径, 如图:

DSC0003.gif

    还有一个地方需要注意一下,搜索[Date] 标签下,增加一句 date.timezone = Asia/Shanghai ,这主要是为了设置系统时区。

DSC0004.gif

于是乎,PHP 配置完成。

配置MySQL :

将下载的mysql-noinstall-5.1.51-win32.zip 解压到D:\Web\ 下面,改名为mysql, 然后拷贝两个脚本StartMySQL.bat (安装和启动服务)和StopMySQL.bat (关闭和卸载服务)进去, 以后需要的时候只要点击StartMySQL.bat ,不需要的时候点击StopMySQL.bat ,关于脚本的内容,查看 https://blog.csdn.net/blpluto/archive/2010/06/18/5677457.aspx 或是 点击这里 下载我已经做好的脚本。



DSC0005.gif

这里可能会出现比较常见的错误,就是不能“Start service ”,一般出现在以前有安装mysql 的服务器上,解决的办法,先保证以前安装的mysql 服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql 安装目录下的data 文件夹备份,然后删除,在安装完成后,将安装生成的 data 文件夹删除,备份的data 文件夹移回来,再重启mysql 服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。

此处要注意,如果需要MySQL与Apache 及php 相结合,一定要把前面所说的 PHP.ini “;extension=php_mysql.dll ”前的“; ”去掉,加载mysql 模块。

配置Apache :

点击下载完成的 httpd-2.2.17-win32-x86-openssl-0.9.8o.msi 一路next ,下图的参数可以随便填写,也可以再httpd.conf 中以后设置。

DSC0006.gif

然后安装路径选择D:\Web\Apache

DSC0007.gif

之后的一路next ,中间会出现安装的控制台闪过。

现在开始先将 php module 方式与 Apache 相结合,使 php 融入 Apache 。如图所示,“开始”、“所有程序”、“ Apache HTTP Server 2.2 ”、“ Configure Apache Server ”、“ Edit the Apache httpd conf Configuration file ”,点击打开。
DSC0008.gif

或者在安装好的Apache 文件夹下打开文件D:\Web\Apache\conf\httpd.conf 。 查找关键字“DocumentRoot ”(也就是网站根目录),找到如下图所示地方,然后将"" 内的地址改成你的网站根目录,地址格式如图,主要是一般文件地址的“\ ”在Apache 里要改成“/ ”(现在的新版本貌似不需要改了,不过还是检查一下为好)。

DSC0009.gif

然后再查找“Directory ”,将它的值成跟DocumentRoot 的一样。如图:

DSC00010.gif

这里有一个选择配置选项,以前可能要配置,现在好像修正过来了,不用配置了,就是强制所有输出文件的语言编码,html 文件里有语言标记(这个就是设定文档语言为gb2312 )的也会强制转换。如果打开的网页出现乱码,请先检查网页内有没有上述 html 语言标记,如果没有,添加上去就能正常显示了。在“D:\Web\Apache\conf\extra “下有一个文件叫httpd-languages.conf (可能有的版本不一样,有的版本就在httpd.conf 中),打开编辑,然后找到“# DefaultLanguage nl ”,把前面的注释“# ”去掉,把“nl ”改成你要强制输出的语言,中文是“zh-cn ”,保存,关闭。



下面整合Apache 和PHP ,我们module 方式加载php 。在httpd.conf 中搜索“LoadModule ”,在最下面添加两行PHP 信息:

LoadModule php5_module "D:/Web/php/php5apache2_2.dll"

PHPIniDir "D:/Web/php"

第一行应该注意, 很多地方是调用 php5apache2.dll ,这样在运行 PHP 代码时会提示 httpd.exe 应用程序错误; 第二行“PHPIniDir "D:/Web/php" ”是指明php 的配置文件php.ini 的位置。

DSC00011.gif

然后搜索“AddType application ”,加入“ AddType application /x-httpd-php .php ”、“AddType application/x-httpd-php .html ”两行,你也可以加入更多,实质就是添加可以执行php 的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm ”,则.htm 文件也可以执行php 程序了,你甚至还可以添加上一行“AddType application/x-httpd-php .txt ”,让普通的文本 文件格式 也能运行php 程序。

DSC00012.gif

然后更改目录默认索引文件,因为现在加了php ,有些文件就直接存为.php 了,我们也可以把“index.php ”设为默认索引文件,优先顺序就自己排了,为了先让他运行,我把index.php 设为第一位。编辑完成,保存,关闭。

DSC00013.gif

至此,php 的安装,与Apache 的结合已经全部完成,由于他们于MySQL 的支持在前面配置PHP 的时候已经处理,所以,如果以上操作没有问题的话,我们的服务器已经可以正常运行了。点击桌面右下角的小图标重启服务器,所有的配置就生效了。以后,你可以把你写好的网页放入“D:\Web\Apache\htdocs “中,就可以直接访问量。如图:

DSC00014.gif

(右键点击打开面板)

DSC00015.gif

(左键快捷操作)

现在测试一下:在浏览器中输入 https://127.0.0.1 ,如果可以看到如下页面(有的版本可能不一样),说明你的 Apache 已经配置正确:

DSC00016.gif

然后写一小段代码:
<?php 
date_default_timezone_set("PRC"); 
echo date("Y-m-d JS F"); 
echo '</p>'; 
echo date('H:i:s'); 
echo '</p>'; 
?>

另存为 index.php, 放入“ D:\Web\Apache\htdocs “中,再在浏览器中敲入 https://127.0.0.1 或者是 https://127.0.0.1/index.php ,之后,如果显示页面如下:说明你的 PHP Apache 运行正常了:

DSC00017.gif

要注意的是,如果你加载了防火墙,请打开80 或8080 端口,或者允许Apache 程序访问网络,否则别人不能访问。 如果你有公网 IP (一般 ADSL 或电话拨号上网的都是),就可以邀请所有能上网的朋友访问使用 https:// 你的 IP 地址( IP 地址查询可访问 https://www.goodwaiter.com ,查询内容内即是)你的网站了;如果你没有公网 IP ,也可以把内网 IP 地址告诉局域网内的其它用户,让他们通过 https:// 你的内网 IP 地址,访问你的网站。


下面来制作它们的启动和停止脚本。
MySQL 的脚本在前面配置的时候已经说明,此处不再细说。主要说 Apache 的脚本。
Apache 目录下新建一文本文件,在里面输入如下内容:
@ECHO off 
"%cd%\bin\httpd.exe" -k install -n apache2.2 
net start apache2.2 
pause 
@ECHO on
然后保存为 StartApache.bat 。 然后再新建一文件,输入如下内容:
@ECHO off 
net stop apache2.2 
"%cd%\bin\httpd.exe" -k uninstall 
pause 
@ECHO on
然后保存为 StopApache.bat 。

以后,只要在需要运行的时候,点击 StartApache.bat ,就可以开启 Apache 服务,在不需要的时候,点击 StopApache.bat 就可以卸载服务,即使重装系统,也不会受到影响。

当然,你还可以把这两个脚本写在一个脚本文件中,比较简单,此处不在细说。

至此,移动版服务器创建完成。如果需要一个完整的包括 Apache+MySQL+PHP 的,只要拷贝如上做好的 Web 文件夹,然后放在 D 盘根目录下(这个盘也可以变动,只需要修改 httpd.conf 中的所以涉及到路径的地方就可以了,可通过查找替换完成),然后分别点击 MySQL 的开始脚本, Apache 中的开始脚本,服务器就正常运行了。

关注下面的标签,发现更多相似文章