Articles of apache 2.2

Apache2,使我的网站公开可用

我想让我的apache 2开发服务器公开到互联网上,这是一个基于Django的网站。 这是我的apache2configuration: <VirtualHost *:80> Alias /media /home/user/myproject/statics Alias /admin_media /home/myuser/django/Django-1.1.1/django/contrib/admin/media WSGIScriptAlias / /home/myuser/myproject/myproject_wsgi.py WSGIDaemonProcess myproject user=myuser group=myuser threads=25 WSGIProcessGroup myproject </VirtualHost> 当我做netstat -lntup 我得到: Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN – tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN – tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN […]

Alias指令…可能永远不会匹配,因为它与早期的Alias重叠

我从Apache获得这个警告: 第10行的/etc/httpd/conf.d/foo.conf中的Alias指令将会 可能永远不会匹配,因为它与早期的Alias重叠。 但是,别名与完全不同的虚拟主机重叠。 这可能是因为一个别名在基于名称的虚拟主机上,而另一个别名在基于IP的虚拟主机上? 一切工作正常,只是警告有点烦人…

匹配URL时,我可以让Apache删除连接吗?

使用mod_rewrite我可以构造一个规则来响应一个干净的错误代码(例如,404没有find,410没有或403未经授权),当一个页面被请求,我不想服务。 但是我经常得到来自黑客扫描我的网站漏洞或可能跨站脚本尝试的完全错误的请求。 对于这些客户,我不想返回一个干净的错误 – 我宁愿做一些其他事情,如立即删除连接没有响应,或者,保持连接打开很长一段时间挫败自动化过程。 任何想法如何用Apache来实现这个? 我读过nginx能够立即终止一个特定的模式匹配连接。

Apache2 – 通过CGI下的SetEnv设置PERL5LIB

我的设置如下:我有一个运行不同虚拟主机的Apache2networking服务器,一个虚拟主机用于生产网站,另一个虚拟主机用于登台/预览系统。 这两个虚拟主机有不同的DocumentRoot和不同的(Perl)CGI文件夹。 每个虚拟主机使用的模块应该在不同的目录中,所以我做了以下几点: <VirtualHost…> ServerName production SetEnv PERL5LIB /home/production/modules </VirtualHost> <VirtualHost…> ServerName staging SetEnv PERL5LIB /home/staging/modules </VirtualHost> 不过,我只注意到,在我的Perl CGI脚本中,两条path都被填充到我的@INC中,所以我不能将生产模块与生产模块分开,例如SetEnv指令不仅限于单个虚拟主机,而且似乎全球工作。 我该如何解决这个问题? 谢谢! 乔纳斯

build议使用非标准SSL端口

在我们的服务器上,我有一个IP,并需要托pipe2个不同的SSL站点。 站点拥有不同的所有者,因此具有不同的SSL证书,并且不能与SAN共享相同的证书。 因此,作为最后的手段,我已经修改了Web应用程序,以便为安全页面使用指定的端口。 为了简单,我使用了端口200.但是我担心一些访问者可能无法看到该站点,因为他们的防火墙/代理阻止了端口的SSL连接。 听说有人无法看到这个网站,一个家庭用户和一个企业公司的人,不知道是不是这个原因。 那么,对于非标准SSL端口号(其他站点使用443端口号)的任何build议都可能比端口200更适合访问者? 也许像8080或8443? 谢谢!

如何删除Apache拥有的文件?

我已经在运行Apache的共享主机上安装了CMS,现在当我尝试删除根目录时,一些子目录留下了“Permission denied”错误,我无法更改它们的属性。 我得到的最好的解释是,CMS安装程序已经放置了文件,并已将其所有权分配给Apache服务器,而不是我的用户名。 那么如何删除这些目录?

Ubuntu上的Apache&SVN – Post-commit挂钩失败,预挂钩“Permission Denied”

过去几天我一直在努力争取在我的SVN服务器(在Ubuntu 9.10上通过HTTP与Apache2运行)上工作后提交电子邮件通知。 SVN提交工作正常,但由于某种原因,钩子没有正确执行。 这里是configuration设置: – 用户通过HTTP访问repo与apache dav_svn模块(我创build用户/密码通过dav_svn.passwd文件中的htpasswd)。 dav_svn.conf: <Location /svn/repos> DAV svn SVNPath /home/svn/repos AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location> 我创build了一个post-commit钩子文件,它将一个简单的消息写入到存储库根目录中的一个文件中: /家庭/ SVN /回购/挂钩/后提交: #!/bin/sh REPOS="$1" REV="$2" /bin/echo 'worked' > ${REPOS}/postcommit.log 我将整个资源库设置为由www-data(apache用户)拥有,并为后提交脚本分配了755个权限 当我在空的环境中使用www-data用户testingpost-commit脚本时,它是有效的: sudo -u www-data env – /home/svn/repos/hooks/post-commit /home/svn/repos 7 但是当我在客户端机器上提交时,提交是成功的,但后提交脚本似乎并没有被执行。 我也试着为pre-commit钩子运行一个简单的脚本,即使有一个空的pre-commit脚本,我也会得到一个错误: “提交失败(详情如下):不能为hook'/ home / svn / repos / hooks […]

Apacheconfiguration访问目录

我在Ubuntu 9.10上。 我的web应用程序位于我的/ home / me / app目录中。 我想以这样一种方式configurationApache,以便通过目录访问我的应用程序。 例如: 人们可以通过domain.com访问我的机器。 我想要做的是通过一个目录访问我的web应用程序(位于/ home / me / app),使用类似于:domain.com/myapp。 我怎样才能build立这种行为的Apacheconfiguration? 当然,我不想将所有的应用程序移动到/ var / www / myapp。 Alias指令并没有解决我的问题。 如果尝试input像mydomain.com/recommender/somedir。 它不会find任何东西。 因为别名只包含“/推荐者”path 我想,就像一个VirtualHost,而不是指向一个ServerName,我想指向一个目录名称。 谢谢

Apache HTTP的部分客户端证书请求

我有一个启用SSL的Apache HTTP服务器并请求客户端证书。 如何将Apache设置为仅在用户点击某个网站的某个部分时才请求证书? 例: / myapp /不应该要求证书 / myapp2 /应该请求证书 注意:这些应用程序正在使用mod-jk服务

将Linux MIT Kerberos与Windows 2003 Active Directory链接起来

问候,我想知道如何将Linux MIT Kerberos与Windows 2003 Active Directory连接起来,以实现以下目标: 用户[email protected]尝试loginApache网站,该网站与Linux MIT Kerberos在同一台服务器上运行。 如果用户通过该名称或领域了解用户,则Apache模块首先询问本地Linux Kerberos。 MIT Kerberos发现它不负责这个领域,并将请求转发给Windows 2003 Active Directory。 Windows 2003活动目录积极回应,并将这些信息提供给Linux MIT Kerberos,然后将这些信息告诉Apache模块,授权用户访问其文件。 这是一个形象的情况: 我已阅读有关此问题的文档通常不同于此问题: 一些人讨论了将MIT Kerberos与Active Directory连接起来以访问Active Directory服务器上的资源; 而另一个使用链接通过 Windows 2003 Active Directory向Windows KerberosvalidationWindows用户。 (我的问题是相反的。) 所以我的问题归结为: 是否有可能让Linux MIT Kerberos服务器通过对Active Directory域的请求,然后让它接收到答复并将其提供给请求的服务? (尽pipe如果请求服务和Windows 2003 Active Directory直接通信,这不是问题。) build议和build设性的批评非常感谢。 🙂 后期编辑 我有这个问题。 我已经成功configurationmod_auth_kerb与MIT Kerberos(在我的情况下,EINDWERK.LAN)进行协商,如果我在Ubuntu上用kinit获取本地MIT Kerberos的票据,我可以浏览到Apachenetworking服务器,login。 但是,如果我从Active Directory服务器(在我的情况下是WINDOWS.LAN)获取票据,并冲浪到Apachenetworking服务器,则会收到login提示。 通过Wireshark查看数据包,看起来Apache Web服务器错误地尝试使用WINDOWS.LAN的EINDWERK.LAN的TGT。 我已经上传了Wireshark输出: Active […]