我有一个Apache服务器设置为使用mod_perl。 我已经设置了使用Perl模块MyModule处理所有请求。 这是我的httpd.conf一部分: LoadModule perl_module modules/mod_perl.so <Directory /> Order Deny,Allow Allow from all </Directory> PerlModule MyModule <Location /> SetHandler modperl PerlResponseHandler MyModule </Location> 这似乎工作正常,除了顶级目录(即www.mysite.com/)没有被发送到MyModule 。 怎么了?
我在httpd.conf中为虚拟主机提供了以下目录语句。 <Directory c:/foo/bar/*/*/baz> <Files index.php> # something file specific </Files> </Directory> 这与“c:/ foo / bar / * / * /baz/index.php”匹配,而且在子目录中也是“index.php”。 我希望它只能在/ baz(例如绝对文件path)内直接匹配“index.php”,任何想法? 我相对较新的服务器configuration,所以它对我来说有点试错。 (在Windows 7 64位上安装Wamp) 编辑 我只是意识到我可以做一些事情; <Directory /foo/bar> <Files index.php> # something file specific </Files> <Directory /*> <Files index.php> # revert/undo something file specific </Files> </Directory> </Directory> 没有经过testing,但理论上应该是正确的? 编辑2 解决了! <Location /index.php>似乎有诀窍…
我正尝试在VisualSVN安装上安装WebSVN。 VisualSVN设置为使用Windows身份validation,来自域CLIENT和DEV的用户可以访问站点的不同区域。 CLIENT中的用户被拒绝根访问(通过SVN接口),并被授予访问存储库中特定path的权限。 DEV中的用户可以访问所有内容。 当通过它的Web界面或通过TortoiseSVN回购浏览器访问VisualSVN时,这工作正常。 我能够运行WebSVN,并在授予访问权限之前validation是否提供了有效的域用户凭据(来自任一域)。 但是,一旦提供了有效的证书,就可以向所有用户提供一切权限。 我在VisualSVN/conf/httpd-custom.conf文件中尝试了不同的设置变体,但是他们都不能解决这个问题。 理想情况下,WebSVN将提供与VisualSVN相同的访问权限。 但是,我确定阻止所有CLIENT域用户完全访问WebSVN。 conf文件的当前状态是: LoadModule php5_module "c:/php/php5apache2_2.dll" LoadModule authz_user_module bin/mod_authz_user.so LoadModule sspi_auth_module bin/mod_auth_sspi.so AddType application/x-httpd-php .php AddType application/x-httpd-php .php3 PHPIniDir "C:/php" <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> <Location /websvn/> SVNListParentPath on SVNParentPath "D:/Repositories/" AuthName "SVN Server" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIDomain DEV require valid-user </Location> (这个设置的目的是只允许访问DEV域的成员,隐式排除客户域 […]
我想通过httpd.conf通过用户代理文本string来阻止所有虚拟主机的一些蜘蛛和坏僵尸,但还没有find成功。 以下是我的http.conf文件的内容。 任何想法,为什么这是行不通的? 加载env_module。 SetEnvIfNoCase User-Agent "^BaiDuSpider" UnwantedRobot SetEnvIfNoCase User-Agent "^Yandex" UnwantedRobot SetEnvIfNoCase User-Agent "^Exabot" UnwantedRobot SetEnvIfNoCase User-Agent "^Cityreview" UnwantedRobot SetEnvIfNoCase User-Agent "^Dotbot" UnwantedRobot SetEnvIfNoCase User-Agent "^Sogou" UnwantedRobot SetEnvIfNoCase User-Agent "^Sosospider" UnwantedRobot SetEnvIfNoCase User-Agent "^Twiceler" UnwantedRobot SetEnvIfNoCase User-Agent "^Java" UnwantedRobot SetEnvIfNoCase User-Agent "^YandexBot" UnwantedRobot SetEnvIfNoCase User-Agent "^bot*" UnwantedRobot SetEnvIfNoCase User-Agent "^spider" UnwantedRobot SetEnvIfNoCase User-Agent "^crawl" […]
我试图运行一个很长的PHP过程,并以500内部服务器错误结束。 它执行罚款约8分钟。 更改php设置后,我重新启动了机器。 PHPconfiguration: max_execution_time:3600 大约10分钟后ps ax | grep php: 19007? S 0:08 / usr / bin / php /home/gypsy/public_html/index.php 我已经将ignore_user_abort设置为true。 该过程卡在00:08(第8分钟),不会进一步执行。 Apache错误日志显示错误: 在返回标题之前脚本超时:index.php 似乎不知何故max_execution_time不起作用。 任何build议将是一个很大的帮助。 更新: 我已经能够检测到这个问题。 防火墙阻止了这个过程。 服务器使用iptables和configserver作为防火墙。 禁用防火墙工作正常。 但是我不确定要更改哪些设置以允许防火墙中的长时间运行的进程
我正在寻找客户在办公室远程办公时使用的外部服务。 假设:我的办公室IP和客户办公室IP都是静态的。 我希望允许我的客户访问服务,例如HTTP基本身份validation安全pipe理应用程序。 在Apache Basic Auth中有没有办法创build基于User @ IP的限制? 我想要: 我@ my_office 我@ my_home client1 @ their_office1 client2 @ their_office2 为了testing,我尝试了这个代码: <Location /> Satisfy All AuthType Basic AuthName "Authorisation" AuthUserFile /etc/apache2/passwd Order deny,allow Deny from all Allow from 10.0.0.1/32 Require user me Order deny,allow Deny from all Allow from 10.0.0.2/32 Require user client1 </Location> 用[[email protected]]testing允许访问,成功。 用[[email protected]]testing允许访问,失败。 […]
我只是想知道是否可以在httpd.conf中为单个VirtualHost定义几个DocumentRoot并根据访问者的IP来提供它们?
例如,如果我的'/etc/apache2/httpd.conf'如下所示: <Directory /> AllowOverride None </Directory> <Directory /home> AllowOverride FileInfo </Directory> 后面的AllowOverride规则将覆盖/home目录的前任。 那部分是清楚的。 但是,如果我的httpd.conf文件看起来像这样会发生什么? <Directory /var/www/example.com/public> AllowOverride None Options -MultiViews <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / […] </IfModule> […] </Directory> <Directory /var/www/example.com/public/wp-content/cache/minify> <IfModule mod_rewrite.c> # WHY IS 'RewriteEngine On' REQUIRED? RewriteEngine On RewriteBase /wp-content/cache/minify/ RewriteRule […] </IfModule> </Directory> 问题: 是不是在第一个<Directory>部分中的RewriteEngine On也应用于第二个<Directory>部分,考虑到后者是一个子目录? 但是我注意到我需要在第二个<Directory>部分添加RewriteEngine On规则。 这是否意味着我也应该将第一个<Directory>部分的所有常用规则复制到第二个<Directory>部分? 例如, […]
有没有办法查看运行Apache实例正在使用解决任何/所有包括之后使用的最终“有效”configuration? 我正在查看一个configuration,它包含一个包含networking的Web,并且怀疑我遇到的一些问题与所有事情的顺序有关。 我认为这是apachectl,可以validationconfiguration没有语法错误,但我想知道如果我可以进一步,并以某种方式输出完全组装的configuration。 任何build议(清理这个混乱包括应该永远不会被允许发生)?
我试图在我的Apache(2.4.18)服务器(使用mod_proxy_fcgi )上dynamic确定用于不同分离的PHP“apps”(不同的套接字导致不同的PHP-FPM池)的Unix套接字 : <DirectoryMatch "/home/apps/app_(?<appname>[a-zA-Z]+)"> <FilesMatch \.php$> SetHandler "proxy:unix://var/run/app_%{env:MATCH_APPNAME}.sock|fcgi://localhost:42001" </FilesMatch> </DirectoryMatch> 不幸的是, Apache与SetHandler指令一起使用时, 似乎无法识别/评估 <DirectoryMatch>指令中由正则expression式匹配定义的variables 。 error.log说: [proxy:error] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/app_%{MATCH_APPNAME}e.sock (*) failed 如何将一个variables传递给SetHandler指令? 当我使用UDS的“刚性”path(例如"proxy:unix://var/run/app_someappname.sock|fcgi://localhost:42001" ,我的PHP-FPM正常工作,但似乎有在它使用一个variables时出现问题。 我也尝试使用几个variables连接在一起来构buildpath: <FilesMatch \.php$> Define one "proxy:unix://var/run/app_" Define two ".sock|fcgi://localhost:42001" Define final ${one}%{MATCH_APPNAME}e${two} Header set HANDLER_PATH ${final} </FilesMatch> […]