Articles of apache 2.4

DirectoryIndex对于重写的URL不能正常工作

我有domain.com和sub.domain.com指向相同的服务器,我使用mod_rewrite重写sub.domain.com到sub子目录的URL。 我在文档根目录中有以下.htaccess文件: DirectoryIndex index.html index.php # Prevent infinite rewrite loop. RewriteCond %{ENV:REDIRECT_STATUS} ^$ # Send all requests addressing sub.domain.com… RewriteCond %{HTTP_HOST} =sub.domain.com [NC] # …to the /sub directory. RewriteRule ^ /sub%{REQUEST_URI} [QSA] 在sub我有index.php和没有index.html ,但请求http://sub.domain.com似乎完全忽略index.php并返回404。如果我有index.html那里,但是,它是提供服务。 我能得到index.php服务的唯一方法就是设置 DirectoryIndex index.php 但是这不是我想为整个网站做的事情。 奇怪的是,文档根以外的URL显示正常的DirectoryIndex行为。 例如, http://sub.domain.com/search //sub.domain.com/search试图在返回404之前查找sub/search/index.html然后是sub/search/index.php 。 如果我从父域http://domain.com/sub查询sub ,我能够看到index.php ,这让我完全傻眼的问题。 我会包括Apache错误日志,但我使用共享主机,并没有办法增加日志冗长。 另外,我无法在本地重现此错误。 networking托pipe服务器使用Apache 2.4.3,我的本地服务器是Apache 2.4.9。

安装后没有mod-mono.so或mod_mono.conf

(我为“垃圾邮件”事先道歉,我问“请问Ubuntu”,但是没有人在5天内回答,我不认为这很难,因为我确定很多人在Ubuntu 12.04上安装了Webmin的Mono。 在Ubuntu 12.04上,我有webmin和apache2。 与webmin,我没有apt-get安装单声道完成,一切似乎安装好。 我在httpd.conf中放置了“MonoAutoApplication enabled”这一行,然后重新启动了apache2,但是它失败了“Invalid command'MonoAutoApplication',可能是拼错的或是由未包含在服务器configuration中的模块定义的” 我读过的所有post都提到了mod-mono.so和mod_mono.conf,但是我似乎没有。 我试图find模块或configuration文件 # find / -name "*.so" | grep -i mono /usr/lib/libmono-profiler-iomap.so /usr/lib/libmono-profiler-aot.so /usr/lib/libmono-profiler-cov.so /usr/lib/libmono-profiler-log.so /usr/lib/libmono-2.0.so /usr/lib/libMonoPosixHelper.so /usr/lib/libMonoSupportW.so # find / -name "*.conf" | grep -i mono /etc/fonts/conf.avail/53-monospace-lcd-filter.conf /etc/fonts/conf.d/53-monospace-lcd-filter.conf 我确定我在这里错过了一些东西,但是不知道它是什么。 任何帮助不胜感激。

在什么情况下,Apache允许不匹配的HTTP_HOST通过?

有人设法将未定义的HTTP_HOST服务器variables传递给我的应用程序脚本,从而触发一系列错误。 我很困扰,但无法复制这种行为。 我的httpd服务器使用以下参数使用基于名称的虚拟主机: ServerName example.com:80 UseCanonicalName On <VirtualHost *:80> ServerName example.com ServerAlias ftp.example.com service.example.com ErrorDocument 404 /error/404.html.var … </VirtualHost> <VirtualHost *:80> ServerName notfound.example.com ServerAlias * RedirectMatch 404 ^/(?!error) ErrorDocument 404 /error/404.html.var </VirtualHost> 我试图使用wget复制请求与以下内容: wget -dS –header='Host: ' http://example.com/?x0a/x04/x0a/x04/x06/x08/x09/… –2014-07-30 03:00:00– http://example.com/?x0a/x04/x0a/x04/x06/x08/x09/… Connecting to example.com:80… connected. —request begin— GET / HTTP/1.1 Accept: */* Host: Connection: Keep-Alive […]

Apache负载均衡器mod_proxy_wstunnel?

我们正在开发一个JavaEE 7应用程序来部署在JBoss / Wildfly上,它将广泛使用Web Sockets。 我们使用mod_proxy_wstunnel来支持web套接字,并且我们设法通过在Apache 2.4上使用mod_cluster来启动并运行代理configuration: Internet – > Apache HTTPD – > Wildfly 我们现在正面临着这个应用程序集群化的问题。 我们将至less有4个节点启动并运行,以实现性能可扩展性和高可用性。 我试图用2个成员服务器创build一个<Proxy />元素来完成这个任务。 它看起来像这样: <VirtualHost *:80> … <Proxy balancer://myBalancer> BalancerMember ws://localhost:9080 BalancerMember ws://localhost:19080 </Proxy> <Location /ws> … ProxyPass balancer://myBalancer/MyContextPath/myWebSocketEndpoint ProxyPassReverse balancer://myBalancer/MyContextPath/myWebSocketEndpoint </Location> </VirtualHost> 但是,这是行不通的。 尝试打开path为http://localhost/ws的Web套接字时,我总是收到JavaScript中的连接错误。 我快速浏览了mod_proxy_balancer的文档,注意到它声明了对HTTP,FTP和AJP13协议的支持。 有没有办法负载平衡Web套接字和WS协议? 或者这是完全不受支持的configuration? 我可以利用其他什么方法来实现这个目标? 显然,将单个networking套接字服务器作为我们的生产端点是不可接受的,因为它代表了单点故障。 我非常感谢你的build议!

如何防止盗链只有子目录?

我想防止链接到/var/www/store所有子文件夹,但同时允许链接到它的索引页面。 我试过这样做: <Directory "/var/www/store"> DirectoryIndex index.html </Directory> <Directory "/var/www/store/*"> SetEnvIfNoCase Referer ^http://example.com/ accept Require env accept </Directory> 但是,当我尝试从外部链接访问时,index.html被禁止。 接下来我尝试追加一个尾部的斜杠。 <Directory "/var/www/store/*/"> 这也不起作用。 这是Apache的错误吗? 不是<Directory>指令只能匹配目录吗?

虚拟主机本地子域

我在我的本地开发服务器上激活子域名时遇到了一些麻烦。 服务器的名字是janemba,我可以通过访问http://janemba来访问它。 我想能够有domain.janemba,但我似乎无法得到它的工作。 这是我拥有的VirtualHost: <VirtualHost *:80> ServerName domain.janemba ServerAdmin admin@janemba DocumentRoot /var/www/domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 我也试过把它设置为domain.example.com,并设置我的主机文件,使example.com指向我的本地开发服务器。 Example.com加载正常,但子域名不会。

Apache重写规则

我已经把我的网站从一个Wiki移到了Wordpress,在这个过程中,我意识到我的网站已经打破了一些热门网页的链接。 有没有可能解决这个重写规则? 我需要规则来redirect以“^ / wiki /(.+)$”开头的所有内容到“/ $ 1”,同时也将MediaWiki中使用的“_”字符replace为Wordpress中的“ – ”。 例如: http://example.com/wiki/An_Example_Page 应该指出: http://example.com/an-example-page 有没有可能写出这样一个重写规则? 编辑:似乎Wordpress甚至不在乎如果“/ wiki /”部分被删除 – 提供了slu matches匹配,而且这似乎是不区分大小写的。 所以我需要做的就是把“_”字符改成“ – ”。

在Apache安装的什么条件下是AddHandler应用程序/ x-httpd-php .php所需的?

我是一名安全研究人员,已经遇到多种情况,可以利用这些file upload表单,允许攻击者控制的PHP代码被服务器parsing,从而导致远程执行代码。 此漏洞的根本原因似乎是默认情况下在以下Linux Distros的Apacheconfiguration中启用的传统设置: CentOS 5.8 CentOS 6.5 RedHat 5.10 RedHat 6.5 可能还有其他的。 设置是: AddHandler application/x-httpd-php .php 这个设置的效果是告诉服务器名称与\ .php匹配的文件应该被解释为PHP代码。 如果攻击者上传一个名为shell.php.jpg的图像,并在其中embeddedphp代码,并导航到该页面,则服务器将以服务器用户的身份执行该脚本。 我build议的补救措施是通过发表评论来禁用此设置。 我的推理是.php文件已经有一个隐含的处理程序内置到Apache,它告诉服务器解释代码为PHP,所以这个设置在我看来是多余的。 我觉得这是旧版本的CentOS和RedHat所带来的遗留设置,最新版本没有这个设置。 我的问题是: 什么情况下会禁用此设置中断function?

CentOS 7,SELinux,PHP,Apache:如何将默认权限设置为目录中的新文件或更新文件?

服务器信息: CentOS Linux release 7.0.1406 (Core) PHP 5.4.16 (cli) (built: Sep 30 2014 09:44:39) SELinux enforcing Apache/2.4.6 (CentOS) 我的PHP脚本需要从主目录中读取文本文件。 这些文件每30分钟更新一次。 (来自可信用户)。 通常这些文件的权限设置为-rw—-r–. 所有者和组是来自上传文件的用户。 现在有一个情况是他人的读取权限丢失了。 (我不知道为什么..)和PHP脚本不能读取的内容: file_get_contents(/home/someuser/some_dir/subdir1/subdir2/file.txt): failed to open stream: Permission denied (2) 由于组读取权限也是缺less的,我不能只是将apache -user添加到someuser -group。 我只需要确保在任何时候给出apache进程的读取权限。 最好和最可靠的方法是什么? 也许设置umask 173到目录或文件?

Apache 24不在FreeBSD 10上提供PHP

我已经在这个几个小时了。 我无法弄清楚我的configuration有什么问题。 当我导航到任何PHP文件(WordPress的安装是意图),它打开文件下载,而不是渲染/服务它。 我build(按顺序)Apache24,PHP55,PHP55扩展,mod_php5。 我在httpd.conf中添加了以下内容 LoadModule php5_module libexec/apache24/libphp5.so LoadModule rewrite_module libexec/apache24/mod_rewrite.so 我也像这样添加了index.php: <IfModule dir_module> DirectoryIndex index.php index.html </IfModule> <IfModule mod_php5.c> DirectoryIndex index.php index.html index.htm AddType application/x-httpd-php .php </IfModule> 当Apache启动时,它启动时没有任何错误或警告,这是我的整个错误日志: [Sat Nov 22 10:28:53.125634 2014] [core:notice] [pid 17892] AH00094: Command line: '/usr/local/sbin/httpd -D NOHTTPACCEPT' [Sat Nov 22 10:43:03.724529 2014] [mpm_prefork:notice] [pid 17892] AH00169: caught SIGTERM, shutting […]