除了 SSL、PHP 和 frontpage 之外,我使用的模块还有
Module env_module mod_env.o Module config_log_module mod_log_config.o Module mime_module mod_mime.o Module negotiation_module mod_negotiation.o Module dir_module mod_dir.o Module cgi_module mod_cgi.o Module asis_module mod_asis.o Module imap_module mod_imap.o Module action_module mod_actions.o Module alias_module mod_alias.o Module rewrite_module mod_rewrite.o Module access_module mod_access.o Module auth_module mod_auth.o Module anon_auth_module mod_auth_anon.o Module digest_module mod_digest.o Module expires_module mod_expires.o Module headers_module mod_headers.o Module browser_module mod_browser.o
如果您是 ISP(当您阅读本文时,您可能就是),您会希望提高安全性。suexec 实用程序允许您这样做;它将以网站所有者的 UID 而不是 Web 服务器的 UID 来执行 cgi。转到 /usr/src/apache_1.2.6/support
并 make suexec
。chmod 4711 suexec
并将其复制到 ../src/httpd.h
中指定的位置,默认情况下为 /usr/local/etc/httpd/sbin/suexec
。如果路径对您来说有点难懂 - 对我来说确实如此 - 编辑 httpd.h
并将路径设置为更方便的值。
进入 /usr/src/apache_1.2.6/src
并编辑 Configuration
以设置您想要包含在 Apache 守护进程中的所有模块。完成后,运行 ./Configure
和 make
。这是最后(也是最复杂)的编译步骤,所以祈祷成功吧。如果成功,将 cp httpsd
复制到 /usr/sbin
。守护进程有点大,在组装 Web 服务器时请考虑这一点。创建目录 /var/httpd
,其中包含子目录 cgi-bin
、conf
、htdocs
、icons
、virt1
、virt2
和 logs
。在 /usr/src/apache_1.2.6/conf
中,编辑 access.conf-dist
、mime.types
和 srm.conf-dist
以满足您的需求,并将它们复制到 var/httpd/conf/access.conf
、srm.conf
和 mime.types
。将您使用 make certificate
创建的 httpsd.pem
复制到 /var/httpd/conf
。使用以下 httpd.conf
ServerType standalone Port 80 Listen 80 Listen 443 User wwwrun Group wwwrun ServerAdmin webmaster@yourhost.com ServerRoot /var/httpd ErrorLog logs/error_log TransferLog logs/access_log PidFile logs/httpd.pid ServerName www.yourhost.com MinSpareServers 3 MaxSpareServers 20 StartServers 3 SSLCACertificatePath /var/httpd/conf SSLCACertificateFile /var/httpd/conf/httpsd.pem SSLCertificateFile /var/httpd/conf/httpsd.pem SSLLogFile /var/httpd/logs/ssl.log <VirtualHost www.virt1.com> SSLDisable ServerAdmin webmaster@virt1.com DocumentRoot /var/httpd/virt1 ScriptAlias /cgi-bin/ /var/httpd/virt1/cgi-bin/ ServerName www.virt1.com ErrorLog logs/virt1-error.log TransferLog logs/virt1-access.log User virt1admin Group users </VirtualHost> <VirtualHost www.virt1.com:443> ServerAdmin webmaster@virt1.com DocumentRoot /var/httpd/virt1 ScriptAlias /cgi-bin/ /var/httpd/virt1/cgi-bin/ ServerName www.virt1.com ErrorLog logs/virt1-ssl-error.log TransferLog logs/virt1-ssl-access.log User virt1admin Group users SSLCACertificatePath /var/httpd/conf SSLCACertificateFile /var/httpd/conf/httpsd.pem SSLCertificateFile /var/httpd/conf/httpsd.pem SSLLogFile /var/httpd/logs/virt1-ssl.log SSLVerifyClient 0 SSLFakeBasicAuth </VirtualHost> <VirtualHost www.virt2.com> SSLDisable ServerAdmin webmaster@virt2.com DocumentRoot /var/httpd/virt2 ScriptAlias /cgi-bin/ /var/httpd/virt2/cgi-bin/ ServerName www.virt2.com ErrorLog logs/virt2-error.log TransferLog logs/virt2-access.log </VirtualHost>
根据编译时包含的模块,并非所有指令都可用。您可以使用 httpsd -h
检索可用指令列表。
进入 /usr/local/frontpage/version3.0/bin
并加载 ./fpsrvadm
。选择 install
和 apache-fp
。接下来的问题应该按以下方式回答
Enter server config filename: /var/httpd/conf/httpd.conf Enter host name for multi-hosting []: www.virt2.com Starting install, port: www.virt2.com:80, web: "" Enter user's name []: virt2admin Enter user's password: Confirm password: Creating root web Recalculate links for root web Install completed.
用户名必须是网站所有者的 unix 登录名。密码不一定需要与系统密码匹配。您必须手动将 sendmailcommand:/usr/sbin/sendmail %r
添加到 /usr/local/frontpage/www.virt2.com:80.conf
,否则您的用户将无法发送 Web 生成的电子邮件。kill -HUP
您的 httpsd
以使 fp 重新读取其配置。您现在可以使用 frontpage 客户端访问 www.virt2.com
。
在某些情况下,fpsrvadm
会抱怨必须首先安装根 Web。这非常无用,但您应该这样做以使 fpsrvadm
安静下来。
使用 httpsd -f /var/httpd/conf/httpd.conf
启动 Apache。您现在可以通过 http 和 https 访问 www.virt1.com
,这非常酷。当然,如果您想提供全网 SSL,或者用户可能会嘲笑您,您必须为真正的证书付费。
从 php 示例目录复制一个演示文件到 virt1
以测试 phtml。
不要使用 frontpage 97 扩展。它们不起作用,至少在 Linux 下是这样。当安装特定版本的 c++ 库时,它们似乎可以工作,但您的日志很快就会充满 premature end of script headers
,您的邮箱也会充满投诉。在版本 3.0.2.1330 之前,不要使用 frontpage 98 扩展。不要感到困惑,版本号有点不统一。当 telnet 到端口 80,输入 "get / http/1.0" 并按两次回车键时,您会得到 frontpage 的版本号 3.0.4。
您可以通过执行 /usr/local/frontpage/currentversion/exes/_vti_bin/shtml.exe -version
找到更具体的版本号。较旧的版本有一个讨厌的错误,需要 httpd.conf 可由 Web 服务器的 gid 写入。如果您稍微关心安全性,这应该会让您尖叫。自 3.0.2.1330 以来的版本更可用。
当在 frontpage 客户端中点击 Recalculate Links
时,服务器会启动一个消耗 99% CPU 周期和约 10MB 内存的进程。但即使对于中等大小的网站和快速机器,客户端有时也会收到超时消息,尽管计算将正确完成。告知 frontpage 用户要有耐心,不要多次点击 Recalculate Links
。告知自己为服务器配备至少 64MB 内存。
请注意,在编写本文时,SSL 和 frontpage 都可以工作,但不能同时工作,这意味着您既不能使用 SSL 发布您的网站,也不能通过 https 使用 Web 机器人。您可以在端口 80 上发布您的网站,并在端口 443 上加密访问它,但您的计数器等将无法工作。我认为这是一个错误。这个问题应该在 SSL 0.9.0 中得到修复。
对于那些认为本 howto 的标题几乎和文档一样长的人:您听过 Meat Loaf 吗?
好的,读者们,今天的教程到此结束。欢迎随时向我发送您的反馈、永恒的感谢、鲜花、电子现金、汽车、油田等。