Articles of apache 2.2

为什么限制Apache用户执行脚本?

当Apache用户被允许通过PHP执行bash脚本 – 为什么它被认为是危险的? 我知道用户可以遍历整个文件系统,甚至可以看到机器上托pipe了哪些用户。 他们也可以读取conf/httpd.conf的设置。 但是,这些信息将如何帮助他们破解系统? 考虑suexec是活跃的。

Ubuntu上的Apache + LDAP auth认为ldapsearch是完美的,“不能联系LDAP服务器”

我正在从现有的apache + LDAP + mysql + php服务器迁移到新的硬件平台。 旧的服务器运行Debian Lenny,我没有可用的configuration文件(由以前的系统pipe理员完成); 新的服务器运行Ubuntu 10.04.2 LTS 32位。 在新服务器上安装了Apache并configuration了LDAP客户端之后,LDAP主服务器(另一个专用服务器)的ldapsearch返回结果就好了。 但是,使用https与https时,日志抱怨“不能联系LDAP服务器”。 我使用ldaps进行身份validation,并可以确认636端口在LDAP主服务器上是打开的。 我不明白为什么apache会失败,而正常的ldapsearch工作! 以下是虚拟主机configuration的一部分: <Directory /> Options FollowSymLinks AllowOverride None #AuthLDAPEnabled on AuthType Basic AuthBasicProvider ldap AuthName "Private" AuthLDAPURL ldaps://master.ldap.organisation.com:636/ou=people,dc=organisation,dc=com?uid AuthzLDAPAuthoritative off require valid-user AddType application/x-httpd-php .php .phtml <IfModule mod_php4.c> php_flag magic_quotes_gpc Off php_flag track_vars On php_value include_path . </IfModule> </Directory> […]

在APC + PHP中,多lessRAM太多了? 可以将apc.shm_size设置为很多GB吗?

在我们的服务器上,我们有很多内存供我们的stream量(16GB)使用。 HTTP进程经常吃掉所有的CPU,需要重新启动,甚至没有接近使用交换内存,所以我正在寻找方法来花费内存来缓解Apache的负载(和/或帮助可能是单独的MySQL服务器打破了Apache)。 我在HTTPD实例上安装了很多WordPress,因此APC有时会使用多达900MB的内存(根据apc.php图表)。 以防万一我apc.shm_size设置为1600MB这是超过它的需要,但不能超过我可以备用。 这意味着APC通常有很多额外的内存,但是很less的周转率和碎片也不会超过1%。 这是危险的吗? 原则上,我应该把APC减less到小于1GB吗? 我是否应该期待APC内的一些营业额以降低整体占地面积的名义? 拥有如此多的内存专用于APC意味着在顶层/顶层,每一个httpd进程在VIRT内存列中显示〜1.9GB。 显然这是共享内存,并不是每个进程使用,但它可能会伤害我们的服务器? 注意:服务器的问题仍然不清楚,但效果是每天大约60次,所有8个CPU的容量都达到100%,一切都停止运行,直到Monit发现Apache损坏并重新启动(Monin也保存了MySQL服务器)。 我不确定APC是否是问题的一部分,但我正在努力优化一切以防万一。

在“隐藏”“www”域名前缀时redirectvs重写是否有优势?

使用虚拟主机,我已经习惯了使用这个: <VirtualHost: *:80> ServerName www.example.com Redirect permanent / http://example.com/ </VirtualHost> 但我常常看到重写使用: RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 一种方法比另一种更有优势吗?

阿帕奇将一个位置列入白名单,但需要对其他所有内容进行基本身份validation

我相信这很简单,但Google今天早上不是我的朋友。 目标是: / public …是公开访问的 其他一切(包括/)都需要基本的身份validation。 这是一个WSGI应用程序,只有一个WSGI脚本(这是一个Django站点,如果这很重要..) 我有这个: <Location /public> Order deny,allow Allow from all </Location> <Directory /> AuthType Basic AuthName "My Test Server" AuthUserFile /path/to/.htpasswd Require valid-user </Directory> 有了这个configuration,基本的身份validation工作正常,但Location指令完全被忽略。 我并不感到惊讶,因为根据这个 (请参阅如何合并章节), Directory指令首先被处理。 我确定我错过了一些东西,但由于Directory适用于文件系统的位置,我真的只有一个Directory在/ ,它是一个Location ,我希望允许访问,但Directory总是覆盖Location … 编辑 我正在使用Apache 2.2,它不支持AuthType None 。

如何通过我的代理服务第三方网站,但在显示之前更改内容?

我想取得一个远程网站,稍微修改内容,然后显示最终用户更改的内容。 这是可能的,什么是最好的方式去做这个? 我们正在运行Apache。 是否有可能使用mod_proxy完成这个? 它并不是如此。 什么关于Squidcaching? 你可以提供关于这个主题的任何提示,将不胜感激。

是否有可能获得404错误加内容回来?

使用Apache,是否可以发送一个404状态头,但然后发送有效的内容? 因为现在在a2hosting.com上的http://doubleabody.com正在发生这种情况。 networking日志显示除了主页之外的所有连接都是404状态,但之后浏览器正在接收有效内容。 这会导致一些奇怪的事情发生。 在IE中,当它开启了Friendly HTTP Errors时,它显示了404。在IE中,closures了友好HTTP错误,它不显示404,并且正在显示内容。 在所有其他浏览器中,他们似乎正在看到有效的内容,并忽略服务器正在logging的404错误。 这个问题以前不会发生,直到2个星期前,网站上唯一一个在14个月内发生了变化的系统更新就像正常的Apache系统一样。 (我承认客户要求我编辑主页模板,并向IE用户显示有关这个问题的消息。) 我想certificate这是一个错误configuration的Apacheconfiguration。 我已经下载了这个WordPress网站的数据库和托pipe文件,现在我要排除故障,看看相同的代码在我的工作站上是否也有问题。 但问题仍然存在 – Apache可以返回一个404状态头,然后返回有效的XHTML吗?

RewriteRule 对Apache / mod_php没有影响

我试图阻止PHPparsingPOST请求。 当它看到相应的MIMEtypes时会自动执行。 为此,我正在考虑遵循RewriteRule hack: RewriteCond %{HTTP:Content-Type} ^(multipart/form-data\s*;.*)$ RewriteRule mime.php – [E=CONTENT_TYPE:no/parsing;old=%1] 但CGI环境仍然包含原始的[CONTENT_TYPE] => multipart/form.. 我可以设置例如ALT_CONTENT_TYPE troublefree,但这对我没有用处,因为PHP仍然在原始上运行。 同样,更改大小写[E=ContEnt_Type]不会删除旧的标题值,它只是真正改变了大小写。 CONTENT_TYPE env var是在后期构build的吗? 因为我也无法像%{CONTENT_TYPE}那样访问它。 但是再次看,文档http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond没有提到它。 有没有另一种方法来重写这个CGIvariables? 本地testing服务器: Server version: Apache/2.2.14 (Ubuntu) mod_php, not fastcgi Linux snig 2.6.32-29-generic #58-Ubuntu SMP, 2011 x86_64 GNU/Linux

Apache不生成访问日志。 CentOS的

出于某种原因,Apache不会在/ var / log / httpd / access_log中生成日志。 如何查看是否启用了日志logging?

htaccess拒绝访问当前目录?

我想拒绝访问目录/富/秘密。 如果我在/ foo / secret中创build一个.htaccess文件,使用… <Directory ./> Order deny,Allow Deny from all </Directory> …我得到一个“500内部服务器错误”,虽然达到了预期的效果,但并不是我期待的“403禁止”消息。 我知道你应该在Directory指令中放置一个绝对path,但是我将它提交到一个代码库中,远程客户端不一定会在同一个path上运行。