这篇文章主要讲解了“win2K下IIS5.0配置asp+cgi+php+MySQL的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win2K下IIS5.0配置asp+cgi+php+mysql的方法”吧!
![](/upload/ad_content/xuanchuantu-26.jpg)
创新互联建站-专业网站定制、快速模板网站建设、高性价比山亭网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式山亭网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖山亭地区。费用合理售后完善,10多年实体公司更值得信赖。
安装win2K,安装IIS
Indexing Service,
FrontPage 2000 Server Extensions,
Internet Service Manager (HTML)
这几个别装,还有其它的一些,总之不用的都别装。
(根据安全原则,最少的服务+最小的权限=最大的安全。)
首先,打开internet管理器(开始-->程序-->管理-->Internet服务管理)
如果照上面所安装的,里面有一个默认站点和一个smtp的服务项
选默认站点,删除其下面的所有目录。(按你键盘上的delete键)
停掉iis,最简单的方法:开始-->运行-->打入net stop iisadmin 选择Y回车 (启动的命令是:net start w3svc)
把C盘的Inetpub目录彻底删掉(停掉iis后才能删),在其它盘新建一个目录
在IIS管理器中将默认站点的主目录指向刚才新建的目录
如果你需要什么权限的目录可以自己慢慢建,需要什么权限开什么。
(特别注意写权限和执行程序的权限,没有绝对的必要千万不要给,默认是没给的,所以你不用研究,呵呵..)
应用程序配置:在IIS管理器中删除必须之外的任何无用映射,
留下ASP, ASA和其他你确实需要用到的文件类型,(除了cgi,php,其它的我想你都没用,删除htw, htr, idq, ida……)
不知道在哪删吗??方法:打开Internet服务管理->选择站点->属性->WWW服务->编辑->主目录->配置->应用程序映射,
然后就开始一个个删吧(没有全选的,真麻烦)。
接着在刚刚那个窗口的应用程序调试书签内将脚本错误消息改为发送文本
(除非你想ASP出错的时候用户知道你的程序/网络/数据库结构)错误文本写什么?
随便你喜欢,自己看着办。点击确定退出时别忘了让虚拟目录继承你设定的属性。
为了对付日益增多的cgi漏洞扫描器,还有一个小技巧可以参考,
在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件,
可以让目前绝大多数CGI漏洞扫描器失灵。其实原因很简单,
大多数CGI扫描器在编写时为了方便,都是通过查看返回页面的HTTP代码来判断漏洞是否存在的,
例如,著名的IDQ漏洞一般都是通过取1.idq来检验,如果返回HTTP200,就认为是有这个漏洞,
反之如果返回HTTP404就认为没有,如果你通过URL将HTTP404出错信息重定向到HTTP404.htm文件,
那么所有的扫描无论存不存在漏洞都会返回HTTP200,90%的CGI扫描器会认为你什么漏洞都有,
结果反而掩盖了你真正的漏洞,让入侵者茫然无处下手,不过从个人角度来说,
我还是认为扎扎实实做好安全设置比这样的小技巧重要的多。
Win2000的账号安全是另一个重点,首先,Win2000的默认安装允许任何用户通过空用户得到系统所有账号/共享列表,
这个本来是为了方便局域网用户共享文件的,但是一个远程用户也可以得到你的用户列表并使用暴力法破解用户密码。
很多朋友都知道可以通过更改注册表Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous = 1来禁止139空连接,
实际上win2000的本地安全策略(如果是域服务器就是在域服务器安全和域安全策略中)就有这样的选项RestrictAnonymous(匿名连接的额外限制),
这个选项有三个值:
0:None. Rely on default permissions(无,取决于默认的权限)
1:Do not allow enumeration of SAM accounts and shares(不允许枚举SAM帐号和共享)
2:No access without explicit anonymous permissions(没有显式匿名权限就不允许访问)
0这个值是系统默认的,什么限制都没有,远程用户可以知道你机器上所有的账号、组信息、共享目录、网络传输列表(NetServerTransportEnum等等,对服务器来说这样的设置非常危险。
1这个值是只允许非NULL用户存取SAM账号信息和共享信息。
2这个值是在win2000中才支持的,需要注意的是,如果你一旦使用了这个值,你的共享估计就全部完蛋了,所以我推荐你还是设为1比较好。
好了,入侵者现在没有办法拿到我们的用户列表,我们的账户安全了……慢着,至少还有一个账户是可以跑密码的,这就是系统内建的administrator,怎么办?我改改改,在计算机管理->用户账号中右击administrator然后改名,改成什么随便你,只要能记得就行了。
改了超管理用户名后,在Terminal Service的登录界面还是可以看到的(你登录过就自已记住啦),
修改方法:
运行regedit,找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\winlogon
项中的Don't Display Last User Name串数据改成1,这样系统不会自动显示上次的登录用户名。
为了安全,你还可以打开TCP/IP筛选,桌面上右击网上邻居->属性->右击你要配置的网卡->属性->TCP/IP->高级->选项->TCP/IP过滤,
这里有三个过滤器,分别为:TCP端口、UDP端口和IP协议
TCP端口,点击"只允许",然后在下面加上你需要开的端口,一般来说WEB服务器只需要开80(www),
FTP服务器需要开20(FTP Data),21(FTP Control),3306(Mysql),3389(远程终端控制,如果你的主机托管在别人机房里,不能直接*作,就需要这个)
邮件服务器可能需要打开25(SMTP),110(POP3),我对端口没研究,但如果照本文所提供的服务,你只要开以上几个就行了。(80,20,21,25,3306,3389)
--cgi支持
下载activeperl (可到www.perl.com下载最新版)
1、解压,运行install.exe,默认是安装在 C:\PERL 下,不过为了方便,请最好安装到 C:\USR 目录下,(这样写 Perl 解释器的路径就可以直接用 #!/usr/bin/perl 了,可以保持单机环境和网络环境路径一致。 安装时一路按Y即可。)
2、安装好后,按照下面三步来修改注册表: 运行 RegEdit,搜寻: HKEY_LOCAL_MACHINE\System\Currentcontrlset\Services\W3svc\Parameters\scriptMap\ 键名,
然后增加键名:".cgi",键值:"C:\USR\BIN\perl.exe %s %s" 和键名:".pl",键值:"C:\USR\BIN\perl.exe %s %s"
(不懂得建?那么:在右边的框内--->点右键--->新建-->字符串值 名称改为.cgi,双击该键即可输入数值数据,也就是上面说的键值)
因为要让这台主机支持php,所以顺便在这里添加上php和php3的支持(以后新建站点时可省事)
增加键名".php",键值:"C:\php\php.exe %s %s"
增加键名".php3",键值:"C:\php\php.exe %s %s"
OK,重启后即生效!cgi支持搞定!以后新建站点后,在应用程序配置里面默认就会加上php和cgi的支持(不给这个权限的话删掉就是了)。
cgi支持搞定!
--mysql支持
下载mysql (可到www.mysql.com下载最新版本)
1、解压,运行setup.exe完全安装,默认安装路径为:c:\mysql;
2、安装完成后,打开“开始”按钮中的“运行”,输入命令:C:\mysql\bin\mysqld-nt.exe --install,并执行;
3、开始-->程序-->管理工具-->服务-->找到mysql-->启动它;
4、mysql安装完成,重启win2000
5、重启后打开C:\mysql\bin\winmysqladmin.exe,在第一次用它时,需要建立管理员名及密码,分别设置用户名和密码,设定后,系统托盘会出现一个“红绿灯”的小图标(以后系统启动时均会自动加载)。
6、OK,mysql支持搞定!
--php支持
下载PHP (可到www.php.com下载最新版本)
1、将 php 4.0.4 解压到 c:\php;
2、将PHP目录内的 php.ini-dist 文件拷贝到WinNT目录内,改名为 php.ini; (这是php的配置文件,无需更改即可运行,我没仔细研究)
3、根据需要修改 php.ini 文件内容,如要使用 session 功能,请建立 c:\tmp 目录,并将 php.ini 文档内 session.save_path 的值设置成为绝对路径:c:/tmp;
4、将PHP目录内的 Php4ts.dll 文件复制到 WinNt\System32 目录内;
5、在控制面板中的管理工具里启动“Internet 服务管理器”(IIS);
6、打开站点属性,在 'ISAPI 筛选器'选项中, 增加新的筛选器,用 'PHP' 作为筛选器名称,在“可执行文件”栏中填入php4isapi.dll及其路径 (c:\php\sapi\php4isapi.dll)。
7、在属性的"文档"选项中"启用默认文档"加入"index.php";
AGILE整理
--------------------------------------------------------------------------------
回复 agile:win2K下配置asp+cgi+php+mysql全攻略
一、前期准备情况
1。一个安装好的WIN2000服务器,注意:如果预装了IIS,请先将IIS服务停掉或禁用。
2。下栽软件
APACHE:版本:1.3.22 地址:http://www.5line.net/web_soft/apach...2-win32-x86.msi
JDK:版本: 1.3 地址:http://www.5line.net/web_soft/j2sdk1_3_0-win.exe
PHP: 版本: 4.0.4 地址:http://www.5line.net/web_soft/php4.0.4pl1-win32.zip
MYSQL: 版本:3.23.32 地址:http://www.5line.net/web_soft/mysql-3.23.32-win.zip
TOMCAT:版本: 4.0.4 地址: http://www.5line.net/web_soft/jakarta-tomcat-4.0.4.exe
Mod_jk:这是Jakarta组织开发的使Apache支持Tomcat的插件,比ApacheJserv更强大,因为ApacheJserv
只能用在Apache上,而不能用在别的WebServer 上,Mod_jk可以和很多服务器搭配起来用。
下载地址:http://jakarta.apache.org/builds/ja...bin/win32/i386/
(如果在提供的网址内找不到相应的软件,请在各大网上软件库找,一般都有!或发邮件至info@5line.net)
3。准备好足够的干粮和水,作好反复安装和重新启动的心理准备,但只要细心按照要求去做,一次成功不是什么
难事!
4。做一口深呼吸,别在想MM了!开始安装!
二、安装开始
1。APACHE安装
第一步:运行apache_1.3.22-win32-x86.msi,一路点确定和接受就行,基本比较傻瓜,为了方便期间和符合我
的习惯我安装的默认路径是 c:\ ,这样就安装在C盘下的APACHE的路径下,同时默认域为root.dev。
第二步:(我在这里作了一个虚拟主机,此步可以不做,根据你自己的需求)
编辑c:\apache\conf\httpd.conf
找到 #NameVirtualHost *
修改为 NameVirtualHost 192.168.0.16 #注意这个IP为你自己主机设的IP
找到 ServerName root.dev
修改为 #ServerName root.dev
添加
ServerAdmin root@localhost
ServerName root.dev
DocumentRoot c:/apache/htdocs
ErrorLog c:/apache/logs/error_log
TransferLog c:/apache/logs/access_log
ScriptAlias /cgi-bin c:/apache/cgi-bin
第三步:将文件名 c:\apache\htdocs\index.html.en 改为c:\apache\htdocs\index.html
第四步:重新启动,访问 http://root.dev 浏览正常,显示APACHE欢迎页
------------小小的成功!可以喝口水了!----------------------------
2。MYSQL安装
第一步: 解压 mysql-3.23.32-win.zip 到目录 D:\MYSQL
第二步: 进入D:\MYSQL 运行SETUP.EXE 一路回车,默认安装到 C:\MYSQL
------------这一步应该没有什么问题!-------------------------------
3。PHP安装
第一步: 解压 php4.0.4pl1-win32.zip 到目录 D:\PHP
第二步: 将D:\PHP下拷贝到C盘根目录下
第三步: 进入C:\PHP ,开始配置PHP
将文件名 php.ini-dist 改为 php.ini
同时拷贝 php.ini 和 php4ts.dll 到WIN2000的系统安装目录下
的 system32和system目录下 (很重要,别忘了)
再次修改APACHE的配置文件httpd.conf (忘了吧!在c:\apache\conf\httpd.conf)
添加:
LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php4
ScriptAlias /php4/ "C:/php/"
Action application/x-httpd-php4 "/php4/php.exe"
AddType application/x-httpd-php4 .php
第四步: 重新启动系统
第五步: 测试
编写测试文件 info.php (拷贝到目录 c:\apache\htdocs\ 下)
文件内容就一行)
phpinfo(); ?>
访问: http://localhost/info.php 或 http://root.dev/info.php
如果看到PHP的欢迎测试页面,说明安装成功!
到目前为止,你的系统已经可以运行PHP程序了!
你已经配置好了 win2000+apache+php+mysql
----------------成功在望!吃些干粮,想5分钟MM,上趟厕所,或者骚扰一下隔壁的大哥---------
---如果你能确定2件事就可以往下进行了:
1.你的智商确实比中国足协的那堆废物高
2.真的很想进入JSP的世界遨游
4。JDK的安装
第一步:直接运行 j2sdk1_3_0-win.exe,一路回车安装,我这里默认的安装路径为d:\\jdk1.3
第二步:配置环境变量
在我的电脑上点击鼠标右键-属性-点选高级-点选环境变量
弹出环境变量对话框,新建以下变量名和值:
-------------------------------------
变量名:path
变量值:d:\jdk1.3\bin
变量名:JAVA_HOME
变量值:d:\jdk1.3
变量名:CLASSPATH
变量值:.\;d:\jdk1.3\lib\dt.jar;d:\jdk1.3\lib\tools.jar;
第三步:重新启动计算机使配置的环境变量生效
5。TOMCAT安装
第一步:直接运行安装jakarta-tomcat-4.0.4.exe,我这里默认的安装路径是c:\Apache Tomcat 4.0
这时如果单独启动TOMCAT(到Tomca目录下运行startup.bat启动Tomcat或在菜单栏运行start
tomcat),就已经可以运行JSP文件了,但是我们还没有将APACHE和TOMCAT集成在一起,因为
虽然TOMCAT有内置的一个APACHE的HTTP服务,但是他仅仅对JSP程序体现出比较好的执行效率
和性能,对于静态页面的处理速度远不如APACHE,所以为了一个完美的WEB系统,我们要将
APACHE和TOMCAT集成在一起!
(下面就是集成他们的具体配置步骤,请注意仔细认真,我搞了1天才终于搞定!)
第二步:先配置APACHE
打开c:\apache\conf\httpd.conf
添加以下语句:
#------------------------------------------
LoadModule jk_module libexec/mod_jk.dll
AddModule mod_jk.c
JkWorkersFile "c:\Apache Tomcat 4.0\conf\worker.properties"
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
#-----------------------------------------------------
注意:以上语句的基本意思是:
第一、二句:指定APACHE和TOMCAT连接插件的位置和名称
第三句:指出mod_jk工作所需要的工作文件的位置
第七、八句:是将所有和jsp和servlet的请求通过Apj13的协议送给Tomcat,让Tomcat来处理
第三步:将下载的mod_jk.dllcopy到安装Apache目录下的libexec下就可以了
第四步:TOMCAT配置
首先是在c:\Apache Tomcat4.0\conf目录下建一个worker.properties
文件内容如下:
#----------------------------------------------------------
# $Header: /home/cvs/jakarta-tomcat/src/etc/Attic/workers.properties,v 1.3.2.2 2000/10/16 01:59:22 larryi Exp $
# $Revision: 1.3.2.2 $
# $Date: 2000/10/16 01:59:22 $
#
#
# workers.properties -
#
# This file provides jk derived plugins with with the needed information to
# connect to the different tomcat workers.
#
# As a general note, the characters $( and ) are used internally to define
# macros. Do not use them in your own configuration!!!
#
# Whenever you see a set of lines such as:
# x=value
# y=$(x)something
#
# the final value for y will be valuesomething
#
# Normaly all you will need to modify is the first properties, i.e.
# workers.tomcat_home, workers.java_home and ps. Most of the configuration
# is derived from these.
#
# When you are done updating workers.tomcat_home, workers.java_home and ps
# you should have 3 workers configured:
#
# - An ajp12 worker that connects to localhost:8007
# - An ajp13 worker that connects to localhost:8009
# - A jni inprocess worker.
# - A load balancer worker
#
# However by default the plugins will only use the ajp12 worker. To have
# the plugins use other workers you should modify the worker.list property.
#
#
#
# workers.tomcat_home should point to the location where you
# installed tomcat. This is where you have your conf, webapps and lib
# directories.
#
workers.tomcat_home=c:\Apache Tomcat 4.0
#
# workers.java_home should point to your Java installation. Normally
# you should have a bin and lib directories beneath it.
#
workers.java_home=d:\jdk1.3
#
# You should configure your environment slash... ps= on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=\
# ps=/
#
#------ ADVANCED MODE ------------------------------------------------
#---------------------------------------------------------------------
#
#
#------ DEFAULT worket list ------------------------------------------
#---------------------------------------------------------------------
#
#
# The workers that your plugins should create and work with
#
worker.list=ajp12, ajp13
#
#------ DEFAULT ajp12 WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#
#
# Defining a worker named ajp12 and of type ajp12
# Note that the name and the type do not have to match.
#
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.ajp12.lbfactor=1
#
#------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#
#
# Defining a worker named ajp13 and of type ajp13
# Note that the name and the type do not have to match.
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.ajp13.lbfactor=1
#
# Specify the size of the open connection cache.
#worker.ajp13.cachesize
#
#------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
#---------------------------------------------------------------------
#
#
# The loadbalancer (type lb) workers perform wighted round-robin
# load balancing with sticky sessions.
# Note:
# ----> If a worker dies, the load balancer will check its state
# once in a while. Until then all work is redirected to peer
# workers.
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp12, ajp13
#
#------ DEFAULT JNI WORKER DEFINITION---------------------------------
#---------------------------------------------------------------------
#
#
# Defining a worker named inprocess and of type jni
# Note that the name and the type do not have to match.
#
worker.inprocess.type=jni
#
#------ CLASSPATH DEFINITION -----------------------------------------
#---------------------------------------------------------------------
#
#
# Additional class path components.
#
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)classes
#
# The XML parser provided with Tomcat
#
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jaxp.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parser.jar
#
# Tomcat`s implementation
#
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)jasper.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)servlet.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)webserver.jar
#
# Javac as available from Java2SE
#
worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
#
# Setting the command line for tomcat
# Note: The cmd_line string may not contain spaces.
#
worker.inprocess.cmd_line=-config
worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/jni_server.xml
worker.inprocess.cmd_line=-home
worker.inprocess.cmd_line=$(workers.tomcat_home)
#
# The JVM that we are about to use
#
# This is for Java2
#
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
#
# And this is for jdk1.1.X
#
#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)bin$(ps)javai.dll
#
#
# Setting the place for the stdout and stderr of tomcat
#
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr
#
# Setting the tomcat.home Java property
#
worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home)
#
# Java system properties
#
# worker.inprocess.sysprops=java.compiler=NONE
# worker.inprocess.sysprops=myprop=mypropvalue
#
# Additional path components.
#
# worker.inprocess.ld_path=d:$(ps)SQLLIB$(ps)bin
#
#--------------------------------------配置文件完毕-------------------------------------
在这个文件中需要注意的是要修改只有两个地方,一个是workers.tomcat_home,
这是指定Tomcat工作的目录,另外一个是workers.java_home,这是指定Jdk的目
录,大家可以做适当修改!我这里的配置没有修改,都是符合我安装系统的配置!
其次,配置TOMCAT核心文件,打开 c:\Apache Tomcat4.0\conf\server.xml
修改如下:
将
的 去掉,这句话熟悉XML的人都知道它是注释,因为默认的Tomcat4
是没有启用Apj13的8009的端口即mod_jk所使用,修改后如下:
然后保存,现在你的Tomcat和Apache的配置基本完成了。
第五步:所有配置基本完成,重新启动计算机,开始整体测试!
测试:大家首先启动Apache,然后在浏览器里输入http://localhost,如果能看
到Apache的欢迎页面,那么恭喜您,第一步成功了。然后回到Tomca目录下
运行startup.bat启动Tomcat,再打开浏览器输入:http://localhost:8080/
如果看到可爱的Tomcat,那么恭喜您,Tomcat也没有问题,最后最重要的是
Apache下可以解释jsp和Servlet,把下面的代码copy到文本编辑器中命名为
hello.jsp,
内容如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%String str="Hello World!";%>
<%str=str+"你好";%>
<%=str%>
将它保存到C:\\Apache Tomcat 4.0\\webapps\\ROOT下,然后在浏览器里输入
http://localhost/hello.jsp如果看到?..茨娜烦晒α恕?/a>
------------------至此你已经大功告成,可以哼一个小曲了--------------------------
我的这个配置文档是经过考验,确实可以正常通过并运行的,希望能给你有所帮助,如果在进
行过程中有任何问题,请通知我!
我的QQ:5359496,11035181 EMAIL:info@5line.net
其次我再阐述两个问题:
1。由于我在配置APACHE中使用了虚拟主机,所以访问地址可以是:
http://localhost和http://root.dev,?..食晒Φ幕埃朐?/a>
浏览器里做如下设置:
INTERNET选项-连接-局域网设置
选择 “使用代理服务器”,地址:192.168.0.16 (写你主机的IP) 端口:80
2。对于APACHE主机下访问的JSP文件,实际上物理上不存在与APACHE的主机上,而是存在在
TOMCAT的主机目录里,例如:
http://localhost/hello.jsp 中hello.jsp文件实际不在 c:\apache\htdocs\下,而在
C:\Apache Tomcat 4.0\webapps\ROOT 下。这点请注意,不要混淆概念!
感谢各位的阅读,以上就是“win2K下IIS5.0配置asp+cgi+php+mysql的方法”的内容了,经过本文的学习后,相信大家对win2K下IIS5.0配置asp+cgi+php+mysql的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
网站名称:win2K下IIS5.0配置asp+cgi+php+mysql的方法
本文路径:
http://cdkjz.cn/article/jphosj.html