系统集成论坛
标题:
Windows下Apache+PHP+MySql虚拟主机设置
[打印本页]
作者:
思考的牛
时间:
2010-8-14 17:58
标题:
Windows下Apache+PHP+MySql虚拟主机设置
一、安装PHP4
我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip
1、下载后,解压到c:\php目录下。
2、把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。
3、修改php.ini文件重启完后,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
3.1找到register_globals = Off 改为register_globals = On
这一步是为了使部分旧的PHP程序能正常运行;
3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所以的扩展dll的功能( Windows Extensions)
以下为引用的内容:
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_crack.dll
;extension=php_curl.dll
.....
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;
以下为引用的内容:
extension=php_gd.dll
;extension=php_gd2.dll
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp,并在C盘建立一个TMP目录。
3.4把所有的extension=php_xxxx.dll前面的分号都去掉后。记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
二、安装MySql
安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!)
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键选择启动,回到刚刚的Dos窗口,即c:\MySql\bin目录下运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;
测试进入
第一种方法:直接动行MySql进入MySql 的dos管理状态;
第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
出现: C:\MySql\bin>MySql -uroot -p Enter password: ********** Welcome to the MySql monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 3.27.44-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
即安装MySql成功。
三、安装Apache 1.3.x 及 PHP运行设置
1、首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。值得指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
以下为引用的内容:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php .phtml
Action application/x-httpd-php "/php/php.exe"
注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
警告:在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,对 PHP 4:
LoadModule php4_module c:/php/sapi/php4apache.dll
对 PHP 5:
LoadModule php5_module "c:/php/sapi/php5apache.dll"
你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
AddModule mod_php4.c
对于 PHP 5 则为:
AddModule mod_php5.c
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:。用你想要显示源代码的文件名替换掉 original_php_script.php。
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。
四、实现Apache虚拟主机的两种方案
1、基于IP的虚拟主机
这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的网卡上绑定多个IP地址去服务多个虚拟主机。若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到/etc/rc.d/rc.local,确保每次启动后自动运行。
以下为引用的内容:
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
192.168.0.255 up
#/sbin/route add -host 192.168.0.2 eth0:0
然后你需要设置/etd/httpd/conf/httpd.conf文件:
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
然后分别创建目录
/home/httpd/sales.yourdomain.com,
/var/log/httpd/sales.yourdomain.com
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2。
注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机方案。
2、基于名字的虚拟主机:它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
以下为引用的内容:
/etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.0.1
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/hr.yourdomain.com
ServerName hr.yourdomain.com
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log
TransferLog /var/log/hr.yourdomain.com/access_log
注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,为了让它工作,你需要把sales.yourdomain.com,hr.yourdomain.com的DNS都指向IP地址192.168.0.1
上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。
作者:
zzasdsun
时间:
2010-9-16 12:37
为了积分,为了积分,我顶楼主的................................
欢迎光临 系统集成论坛 (http://bbs.xtjc.com/)
Powered by Discuz! X3.1