在Gentoo中创建Apache虚拟主机本教程讨论了LAMP环境的其他设置,例如在Apache上创建虚拟主机、生成SSL证书文件和密钥、为HTTP事务启用安全SSL协议,并使用ApacheCGI网关,以便您可以在您的网站上运行Perl脚本或Bash脚本。第1步:创建Apache虚拟主机本主题使用假域名:gentoo.lan,通过localhosts文件启用,网站文件由/var/www/gentoo.lan提供——没有有效DNS的DocumentRoot命令记录演示如何使用ApacheWeb服务器在Gentoo上启用多个虚拟主机。1.首先,打开Gentoohosts文件进行编辑,并在新行中添加您的域名。$sudonano/etc/hosts在文件末尾,所以它看起来像这样。127.0.0.1localhostgentoo192.168.1.13gentoo.lan在主机文件中添加域名2.用ping命令测试你的假域名,它应该回复它的IP地址。$ping-c2gentoo.lan验证域名3.激活Apache虚拟主机的过程非常简单。只需打开位于/etc/apache2/vhosts.d/路径中的Apache默认虚拟主机文件,并在最后一条语句之前,输入包含在...命令下的新虚拟主机定义。包含您的自定义设置,例如ServerName和DocumentRoot路径。使用以下文件模板作为新虚拟主机的指南,并将其添加到00_default_vhost.conf文件(对于非SSL站点)。$sudonano/etc/apache2/vhosts.d/00_default_vhost.conf##另一个以结尾的虚拟主机语句###ServerNamegentoo.lanDocumentRoot"/var/www/gentoo.lan"ServerEnvironmentapacheapache##Anothervirtualhoststatement#####Endthelastofthevirtualhostfile语句##在Gentoo中创建一个Apache虚拟主机。正如您从该文件内容的图形中看到的那样,该文件使用了很多解释性注释,并且还保留了本地主机虚拟主机的定义——您可以将其作为指南使用。4.使用自定义虚拟主机完成文件编辑后,重启Apache使设置生效,并确保创建DocumentRoot目录,如果更改指令,路径默认不存在(在此/var/www/gentoo.lan的路径)。我还创建了一个小的PHP文件来测试Web服务器的配置。$sudomkdir/var/www/gentoo.lan$su"echo''>/var/www/gentoo.lan/info.php"$sudo/etc/init.d/apache2restart5.要验证,请打开浏览器并将其指向您的虚拟域名http://gentoo.lan/info.php。验证PHP配置使用此方法,您可以使用Apache虚拟主机,并且可以添加任意数量的非SSL站点;但对于真正面向互联网的机器,请确保您的域已注册,并使用有效的DNS服务器记录。要删除虚拟主机,只需在00_default_vhost.conf文件中注释掉或删除...包围的命令即可。#p#步骤2:为虚拟主机生成SSL证书和密钥SSL是一种加密协议,用于使用证书和对称/非对称密钥通过Internet或网络的安全通信通道交换信息。6.要简化证书和密钥生成过程,请使用以下Bash脚本,该脚本作为命令自动创建带有您需要的SSL域设置的SSL证书和密钥。首先,使用以下命令开始创建Bash脚本。$sudonano/usr/local/bin/apache_gen_ssl添加以下文件内容。#!/bin/bashmkdir/etc/apache2/sslcd/etc/apache2/sslecho-e"Enteranameforthiscertificate:\nEx:mydomain.lan"readcertopensslgenpkey-algorithmRSA-pkeyoptrsa_keygen_bits:2048-out$cert.keychmod600$cert.keyopensslreq-new-key$cert.key-out$cert.csropensslx509-req-days365-in$cert.csr-signkey$cert.key-out$cert.crtecho-e"的证书$cert已生成!\n请将其链接到ApacheSSL网站!"ls-all/etc/apache2/ssl/exit0创建Bash脚本以生成SSL7。创建文件后,在文件末尾添加执行权限,运行文件生成SSL密钥和证书。$sudochmod+x/usr/local/bin/apache_gen_ssl$sudoapache_gen_ssl生成SSL证书和密钥第一次运行该文件时,它会要求您输入域名。输入需要生成SSL设置的域名,填写证书的必要信息。最重要的信息是CommonName,使用服务器的FQDN(完全限定域名)。使用此方法的所有证书和密钥的默认位置是/etc/apache2/ssl/。8.现在就可以创建gentoo.lan对应的虚拟主机SSL了。使用与非SSL虚拟主机相同的方法,但这次编辑/etc/apache2/vhosts.d/00_default_ssl_vhosts.conf文件,该文件需要稍作更改。首先打开文件进行编辑,然后进行以下更改。$sudonano/etc/apache2/vhosts.d/00_default_ssl_vhosts.conf在Listen443命令下,添加以下内容。NameVirtualHost*:443启用HTTPS端口为新的虚拟主机使用以下模板,并在末尾添加新的SSL证书和密钥路径和名称。##另一个以结尾的虚拟主机语句###ServerNamegentoo.lanDocumentRoot"/var/www/gentoo.lan"ErrorLog/var/log/apache2/gentoo.lan-ssl_error_logTransferLog/var/log/apache2/gentoo.lan-ssl_access_logSSLEngineonSSLCipherSuiteALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL##复制代码使用新生成的SSL证书和密钥进行编辑,并将路径更改为/etc/apache2/ssl/SSLCertificateFile/etc/apache2/ssl/gentoo.lan.crtSSLCertificateKeyFile/etc/apache2/ssl/gentoo.lan。键OptionsIndexesFollowSymLinksExecCGIMultiViewsIncludesAllowOverrideAllOrderallow,denyAllowfromallSSLOptions+StdEnvVarsSSLOptions+StdEnvVarsBrowserMatch".*MSIE.*"\nokeepalivessl-unclean-shutdown\downgrade-1.0force-response-1.0CustomLog/var/log/apache2/ssl_request_log\"%t%h%{SSL_PROTOCOL}x%{SSL_CIPHER}x\"%r\"%b"##Anothervirtualhoststatement###CreateanSSLvirtualhost虚拟主机的定义必须在这最后三个语句之前结束验证虚拟Host9.编辑好虚拟主机文件后,重启Apache服务,将浏览器指向使用HTTPS协议的域:https://gentoo.lan。$sudo/etc/init.d/apache2restart验证HTTPS协议使用此方法,您可以使用Apache虚拟主机为SSL网站添加您自己的证书和密钥。要删除SSL虚拟主机,只需注释掉或删除/etc/apache2/vhosts.d/00_default_ssl_vhosts.conf文件中...下的命令。第三步:启用CGI接口CGI(CommonGatewayInterface)允许Apache与外部程序进行通信。它主要由Perl或BASH脚本组成,可以向您的网站添加动态内容。10.在启用CGI网关之前,确保Apache已经编译并且Portagemake.conf文件:cgicgid支持USECGI模块。要为Apache启用GCI支持,请打开/etc/conf.d/apache2文件并将CGI模块添加到APACHE2_OPTS行。$sudonano/etc/conf.d/apache2确保这一行有这样的东西。APACHE2_OPTS="-DDEFAULT_VHOST-DINFO-DSSL-DSSL_DEFAULT_VHOST-DLANGUAGE-DSTATUS-DCGI"为Apache启用CGI11。启用CGI模块后,打开要启用CGI接口的网站定义主机,设置如下添加内容到虚拟主机命令。OptionsIndexes+ExecCGIMultiViewsAddHandlercgi-script.cgi.plDirectoryIndexindex.cgiindex.phpindex.htmlindex.plAllowOverrideAllOrderallow,denyAllowfromall在虚拟主机中启用CGI12。如果你在DocumentRoot(/var/www/gentoo.lan/)路径下有一个目录用来存放CGI脚本,可以启用它来提供动态的Perl或Bash脚本。ScriptAlias/cgi-bin//var/www/gentoo.lan/cgi-bin/Options+ExecCGIAddHandlercgi-script.cgi.plDirectoryIndexindex.cgiindex.phpindex.htmlindex.pl13.对于SSI(服务器端嵌入),在Options上添加+Includes语句并添加.shtml文件扩展名。<目录"/var/www/gentoo.lan">OptionsIndexes+ExecCGI+IncludesAddHandlercgi-script.cgi.plAddTypetext/html.shtmlAddOutputFilterINCLUDES.shtmlDirectoryIndexindex.shtmlindex.cgiindex.plindex.phpindex.htmlAllowOverrideAllOrderallow,denyAllowfromall14.要在ApacheCGAGateway上测试一些简单的.cgi和.pl脚本,请在虚拟主机DocumentRoot(/var/www/gentoo.lan/)中创建以下脚本。Perl脚本$sudonano/var/www/gentoo.lan/env.pl添加以下Perl内容。#!/usr/bin/perlprint"内容类型:text/html\n\n";foreachmy$keys(sortkeys%ENV){print"$keys=$ENV{$keys}}
\n";}Bash脚本$sudonano/var/www/gentoo.lan/run.cgi添加以下Bash内容。#!/bin/bashecho"Content-type:text/html"echo""echo"---------------------------------------------------------------------------"./env.plecho"--------------------------------------------------------------------------------"15.上述文件创建完成后,让它们成为可执行文件,重启Apache守护进程,将浏览器指向以下网址。$sudochmod+x/var/www/gentoo.lan/run.cgi$sudochmod+x/var/www/gentoo.lan/env.pl$sudo/etc/init.d/apache2restarthttps://gentoo.lan/run.cgi或https://gentoo.lan/env.pl验证CGI配置现在,您可以将Gentoo变成一个强大的虚拟主机平台,您可以通过一些设置微调系统性能,并最大限度地控制您的整个环境.原文地址:http://www.tecmint.com/create-apache-virtual-hosts-in-gentoo/