Articles of Apache的2.2

Apache2不能正确地提供PHP脚本

我遇到了Apache 2.2.16configuration的问题,运行在Debian Squeeze上。 问题是,它完全停止提供PHP5脚本。 当我尝试使用Google Chrome访问网站时,它会下载一个名为“download”的文件,其中包含脚本的内容。 这当然不是一件好事。 它确实服务于常见的html文件… 我已经在这一段时间了,毕竟这是一个search和排除故障的问题,我认为现在是问问你们的好时机。 这是我得到的: 安装了php5和libapache2-mod-php5软件包 / etc / apache2 / mods-available同时包含php5.load和php5.conf,并且这些从mods-enabled目录中链接 自安装以来,/ etc / php5 /目录保持不变。 这是/etc/apache2/mods-available/php.load的内容: LoadModule php5_module /usr/lib/apache2/modules/libphp5.so 和/etc/apache2/mods-available/php.conf: <IfModule mod_php5.c> <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule> </IfModule> 我错过了什么? 这是一个修改虚拟主机等服务器,所以我可能已经改变了一些导致这个问题的设置,但只是清除和重新安装是不是一个选项,因为configuration是相当广泛的。 任何帮助将是伟大的。 谢谢。 编辑:我试图访问在/ var […]

Apache(httpd)服务器日志是否同步存储?

是否将日志存储为阻止操作? (请求阻塞,直到写入日志)? 或者他们是asynchronous的? 如果写入日志文件失败,或者需要很长时间,会发生什么情况?

在前面的服务器崩溃,Apache2访问日志显示控制字符和乱七八糟的gobs,没有在错误日志

服务器被冻结了,我不在的时候没有反应。 重新启动修复它。 Apache错误日志根本没有显示任何内容,但是在重启之前,apache访问日志上的最后一件事是一堆乱七八糟的字符,大约有一百个重复的^ @字符,然后几KB(我猜)二进制有效载荷 – 诸如“80”,“80”,“8”,“9”,“9”,“9”,“ 这是什么意思? 我该怎么办?

有没有适当的文件回避模仿?

mod_evasive20是我的httpd服务器上加载的模块之一。 我读了关于如何阻止DOS攻击的好消息,并想在我的本地主机上尝试一下。 searchmod_evasive的作者发现了一篇博文,简要描述了它的function。 除此之外,我似乎无法findapache模块网站上的参考或文档。 我想知道这是否是Apache认可的模块,因为它的网站上没有提到它。 我有一个位于/etc/http/conf.d文件夹中的mod_evasive.conf文件,其中包含以下几行: LoadModule evasive20_module modules/mod_evasive20.so <IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 </IfModule> 我从设置的理解是,如果我点击刷新或在一秒钟内发送一个表单两次以上,apache将发出一个403 error并禁止我从站点10秒。 但是这不是我的本地主机上发生的。 我想知道原因。 谢谢。

如何匹配类似于Apache 2 <Files>指令的MIMEtypes?

有没有一种方法来匹配类似于Apache 2 Files指令的MIMEtypes? 例如,我可能想要对所有text / plain MIMEtypes应用几个定制; 有意不使用文件扩展名或其他标准来匹配(这可以很容易地与Files完成)。

Drupal考虑到兄弟网站?

在我的Mac OSX Apache服务器上,有两个站点,学校和俱乐部,在www / school和www / club上有web根目录。 Apache通过虚拟主机进行configuration,以在school.domain.edu和school.domain.edu/club俱乐部为学校服务。 这两个网站最显着的区别是俱乐部使用Drupal安装,而学校是在自定义的Coldfusion框架中编写的。 直到最近,这个configuration还是很好用的,看来www / club的Drupal安装突然开始把school.domain.edu/index.cfm作为一个节点来处理,试图在学校网站的时候加载俱乐部网站的模板CSS和模块索引被访问,导致页面非常混乱。 www / school的其他页面不受影响,只有索引页似乎被Drupal吃掉了。 我没有太多的Drupal经验,而且我完全不知道在虚拟主机设置的一个站点中的Drupal安装如何劫持其他站点。 有没有人有任何想法,我应该改变告诉Drupal留在自己的网站?

即使MaxClients已满,我可以获得本地主机/服务器状态吗?

我正在build立监测系统,将检测当前正在处理多less(空闲)请求。 我用来检测这个方法是通过连接到http:// localhost / server-status。 问题是,如果Apache不能再服务更多的新连接(例如: MaxClients达到顶端),那么我怎么能够检测Apache统计呢? Apache是​​否有足够的智能来忽略来自本地主机的连接的MaxClientsconfiguration? 任何帮助表示赞赏。

dynamic虚拟主机在Apache中使用www和非www子域名

我不太了解apache,而且在configurationmod_vhost_alias遇到了问题 这是我的httpd.conf文件: UseCanonicalName Off LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon <Directory /var/www/sites/> Options FollowSymLinks AllowOverride All </Directory> <VirtualHost *:80> CustomLog logs/access_log.sites vcommon ServerAlias *.domain.com UseCanonicalName Off VirtualDocumentRoot /var/www/sites/%1/ </VirtualHost> 子域名没有www工作正常。 但我也需要使他们与www一起工作。 这是一个例子: something.domain.com – site is loading www.something.domain.com – Not Found 我该怎么办?

在Apache中添加随机标题

我想为Apache的响应添加一个“X-Slogan”头文件,将其设置为从string列表中随机select的值。 到目前为止我所能想到的最好的解决scheme是基于TIME_SEC旋转string,例如 UnsetEnv HEAD_X_SLOGAN_1 UnsetEnv HEAD_X_SLOGAN_2 UnsetEnv HEAD_X_SLOGAN_3 UnsetEnv HEAD_X_SLOGAN_4 RewriteCond %{TIME_SEC} <15 RewriteRule . – [env=HEAD_X_SLOGAN_1:%{TIME_SEC},last] RewriteCond %{TIME_SEC} >14 RewriteCond %{TIME_SEC} <30 RewriteRule . – [env=HEAD_X_SLOGAN_2:%{TIME_SEC},last] RewriteCond %{TIME_SEC} >29 RewriteCond %{TIME_SEC} <45 RewriteRule . – [env=HEAD_X_SLOGAN_3:%{TIME_SEC},last] RewriteCond %{TIME_SEC} >44 RewriteRule . – [env=HEAD_X_SLOGAN_4:%{TIME_SEC},last] Header set X-Slogan "Palm trees" env=HEAD_X_SLOGAN_1 Header set X-Slogan "Oranges" env=HEAD_X_SLOGAN_2 […]

为什么REMOTE_ADDR有时只能作为Apache环境variables使用?

为了避免必须parsingX-Forwarded-For in Varnish,我试图在SSL终结器(当前为Apache)上设置一个标头,用于存储直接客户端IP。 在我们的开发机器上,这个工作: RequestHeader set X-Foo %{REMOTE_ADDR}e 然而,在舞台上它不。 具体而言,标题为空,如varnishlog : 13 TxHeader b X-Foo: (null) (在开发机器上,这显示了预期的IP地址。) 同样,loggingREMOTE_ADDR显示它似乎只在开发机器上填充: # Config LogFormat "%{X-Forwarded-For}i %{REMOTE_ADDR}e" combined CustomLog "/var/log/httpd/access_log" combined # Log file, staging <my ip> – # Log file, development <my ip> <my ip> 由于开发机器是开发机器,因此在很多方面都有所不同; 但是,我无法find哪个区别造成这种情况。 Apache的版本是相同的(2.2.22),并且在任何标准configuration文件或/etc/sysconfig/httpd都没有看到任何相关的东西。 而系统的其余部分是相当相似的,因为它们是由相同的CentOS 5基础镜像构build而成的。 我甚至无法从Apache文档中知道REMOTE_ADDR是否存在或不存在作为一个环境variables ,但无论是通过侥幸还是devise,它显然在一台机器上工作,这种不一致使我发疯。