在Linux系统上使用Apache2有一种方法可以使用mod_vhost_alias来拥有多个VirtualDocumentRoot 吗?
这是我目前正在使用的命名约定,并希望继续使用:
host directory
127.0.0.1 domain domain.com
127.0.0.1 sub.domain domain.com_sub
Run Code Online (Sandbox Code Playgroud)
然后在我的httpd.conf的vhosts部分中:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
VirtualDocumentRoot /var/www/%0.0.com
</VirtualHost>
<VirtualHost 127.0.0.1>
VirtualDocumentRoot /var/www/%2.0.com_%1
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这个问题是当我访问sub.domain时,Apache错误日志显示它正在寻找/var/www/sub.domain.com而不是/var/www/domain.com_test这让我相信它只会读取第一个规则,然后失败,但我希望它做的是使用满足两个VirtualDocumentRoot规则之一的任何文档根.
这些是我启用的mods:
alias auth_basic authz_default authz_groupfile authz_host authz_user autoindex deflate dir env mime negotiation php5 reqtimeout rewrite setenvif status
我试图尽可能地减少Apache的内存占用.
任何人都可以指导我正确的方向,我绝对需要哪些,哪些是可选的?我计划运行Symfony,但我找不到任何关于symfony的要求让它全部运行.
谢谢!
我希望有人能帮助我.我有2个IP可用于执行此操作,需要在同一个Apache服务器上托管2个不同的安全(SSL)域.我已经读过Apache 2.2的内容,可以使用单个IP,使用某种加载项,但我希望尽可能简单,并且愿意使用这两个IP来完成这项任务.我已经拥有2个域名签名证书.
我在这里发布的这个设置有效,但我遇到的问题是,当我去domain2.net时,我收到一个浏览器警告告诉我证书与域名不匹配但匹配domain1.com
我正在使用CentOS 5和Apache 2.2.3.CentOS有一个ssl.conf文件,这些行是我认为给我带来的麻烦:
SSLCertificateFile /etc/pki/tls/certs/domain1.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/domain1.com.key
Run Code Online (Sandbox Code Playgroud)
我的印象是我可以在虚拟主机容器中覆盖这些值并引用我需要的键,但它不会出现这种情况.当我在ssl.conf文件中注释掉这两行时,Apache将不会重启.ssl_log暗示:SSLCertificateKeyFile
这些是我的虚拟容器:
<VirtualHost 2.2.2.2:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/domain2.net.crt
SSLCertificateKeyFile /etc/pki/tls/private/domain2.net.key
DocumentRoot "/var/www/domain2"
ServerName domain2.net
ServerAlias domain2.net
DirectoryIndex "index.php"
<Directory /var/www/html/domain2>
Options -Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 1.1.1.1:444>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/domain1.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/domain1.com.key
DocumentRoot "/var/www/html"
ServerName domain1.com
ServerAlias domain1.com
DirectoryIndex "index.php"
<Directory /var/www/html>
Options -Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
如何使用SSL使这两个域工作?我也试过为不同的IP使用相同的端口,但同样,Apache不会重启.
我真的迷失了,所以如果有人能伸出援助之手,我真的很感激.
我在Ubuntu 10.10(Maverick Meerkat)工作并在Apache下运行我的CGI脚本,但它显示以下错误...
[周六错误没有这样的文件或目录:'/usr/lib/cgi-bin/fst.cgi'的exec失败[2011年10月22日02:56:45] [错误] [客户端127.0.0.1]脚本标题过早结束:fst.cgi
我的剧本是
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "hello world";
Run Code Online (Sandbox Code Playgroud)
我已经设置了文件的权限......
我还在文件中添加了以下行apache.conf:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory /usr/lib/cgi-bin/>
Options +ExecCGI
</Directory>
AddHandler cgi-script .cgi .pl
Run Code Online (Sandbox Code Playgroud)
但它仍然向我显示同样的错误.我做了所有可能的改变,但我没有取得任何成功......
我在一个网站上看到我需要添加两行httpd.conf文件:
ServerSignature关闭
ServerTokens Prod
但是当我添加它们时没有任何改变.如前所述,我可以在浏览器中看到
Apache/2.2.16(Debian)
也许这很重要:当我打开文件时(我的意思是在添加上面的行之前)httpd.conf我看到它是空的.我用VPS.
谢谢!
我想在/ var/svn和存储库(项目)中实现一个svn-root.我可以让它在浏览器中工作(http:// domain/url给我"存储库集合")但是TortoiseClient给了我标题中提到的错误.
我通过执行以下操作(缩短)在我的ubuntu服务器上设置了一个subversion:
mkdir /var/svn
svnadmin create /var/svn/test
Run Code Online (Sandbox Code Playgroud)
我的dav_svn.conf看起来如下:
<Location /svn>
DAV svn
SVNParentPath /var/svn
SVNListParentPath On
</Location>
Run Code Online (Sandbox Code Playgroud)
我读到了可能导致问题的sym链接,所以我也会附上我的000-default网站(这是标准的btw):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, …Run Code Online (Sandbox Code Playgroud) 问题描述 - Apache日志
我在Apache日志文件中找到了与此类似的项目:
166.147.68.243 [24/Feb/2013:06:06:25 -0500] 19 web-site.com "-" 408 - "-"
Run Code Online (Sandbox Code Playgroud)
我有自定义日志格式,408这里代表状态.日志格式为:
LogFormat "%h %t %D %V \"%r\" %>s %b \"%{User-agent}i\"" detailed
Run Code Online (Sandbox Code Playgroud)
通常日志文件中的行看起来像
184.73.232.108 [26/Feb/2013:08:38:16 -0500] 30677 www.site.com "GET /api/search... HTTP/1.1" 200 205 "Zend_Http_Client"
Run Code Online (Sandbox Code Playgroud)
这就是为什么408错误行对我来说很奇怪.没有记录请求,我不知道应该优化什么.
问题
如何解决这个问题?我应该收集哪些其他信息或日志?什么可能导致这个问题?这是服务器上的错误吗?或者这绝对是一个网络连接问题?
我正在解决这个问题,因为我们的客户抱怨他的手机上有408错误.我在日志文件中发现了很多记录,但我不得不承认我不知道如何处理这个问题.
我自己的研究
这里有几个关于这个问题的问题.但人们更加具体.就像他们讨论某些特定客户端软件和脚本的问题一样.这里我在iPhone上打开一些页面时遇到错误.
例如,在HTTP,408请求超时中,建议在POST之前执行GET请求.如果我有自定义客户端,我可以这样做.但我无法控制用户浏览器的行为.
猜猜#1
在搜索互联网并思考问题时,我发现了https://serverfault.com/questions/383290/too-many-408-error-codes-in-access-log
建议是将Timeoutconfig参数更新回其默认值.
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300
Run Code Online (Sandbox Code Playgroud)
我首先尝试了30的值,因为我认为30秒就足够了.但即使有300秒的默认值,我仍然会在日志中得到错误.tail -f当我写这篇文章时,我做了几分钟后得到了超过10行.
对我来说,这看起来并不完整.
我正在配置我的apache2服务器,我想知道ServerName和ServerAlias之间的区别.
ServerName始终是没有www的名称,如google.de,ServerAlias是www.google.de
即使它是这样的,我也不明白:)对不起.
我不是专业人士(现在),谢谢你的帮助!每一个帮助都会立即投票.
我正在Windows上将我的本地版本的PHP升级到5.3.2.我现在正在运行Apache 2.2.
我从这里下载了压缩的VC6版本的PHP:http://windows.php.net/download/
令我沮丧的是,ZIP中的任何地方都没有php5apache2_2.dll文件,不幸的是谷歌没有帮助.如果ZIP内容中没有.dll可用,我不明白如何让PHP工作.为什么他们不包含这个基本文件,为什么没有地方可以下载它?
它让我有点心慌.
根据Alpine wiki,我必须rc-service apache2 start在安装Apache 2之后运行.但是,rc-service在容器内运行的Alpine中没有.如何让服务命令在Docker容器中运行?
apache2 ×10
apache ×3
php ×2
alpine-linux ×1
cgi ×1
docker ×1
http-error ×1
mod-dav-svn ×1
ssl ×1
svn ×1
symfony1 ×1
tortoisesvn ×1
ubuntu-12.04 ×1
vps ×1
webserver ×1