Articles of httpd.conf

有没有办法增加Apache HTTPd传入请求的最大允许URL长度?

我正在Apache HTTPd上运行一个Web服务站点,并且每当我收到一个错误,指出传入的URL太长(HTTPError:HTTP Error 414:Request-URI太大)。 我的网站是服务程序而不是浏览器,所以我不担心2K浏览器的限制。 有什么办法来增加可接受的URI长度? 谢谢,波阿斯

Ubuntu PHP5 / Apache2 – 显示500错误而不是错误信息

以下脚本不会向浏览器输出错误消息。 相反,它会导致HTTP错误500响应。 <?php error_reporting(E_ALL); ini_set('display_errors', 'On'); phpinfo(); echo "test" asdf // This should error ?> 想法? 这是在ubuntu上安装一个基本的php5 / apache2。 httpd.conf是空白的,没有.htaccess文件。 error.log文件显示错误消息: 语法错误,意外的T_STRING,期待','或';' 哪个是对的。

使用<Directory>指令为别名设置单独的权限

我正在试图设置一个别名的权限不同于根,比如 www.restricted.com – 一个用户 www.restricted.com/alias – 另一个用户 这可能吗? 我已经在一个单独的目录(不是子目录)中使用自己的<directory>条目和单独的authentication设置在httpd.conf中设置了别名。 但是,在尝试访问/别名时,对于这两个部分,我都会得到两个密码请求。 我不确定是因为我的错误还是devise错误。 例: <VirtualHost *:443> ServerName www.restricted.com DocumentRoot /var/www/site/main/ <Directory /var/www/site/main/> AuthUserFile /var/www/site/.htpasswd AuthGroupFile /dev/null AuthName "main site" AuthType Basic Require user joe </Directory> Alias /alias /var/www/site/subsite/ <Directory /var/www/site/subsite/> AuthUserFile /var/www/site/.htpasswd AuthGroupFile /dev/null AuthName "subsite" AuthType Basic Require user admin </Directory> </VirtualHost> 由于虚拟主机根和别名位于服务器上的不同目录中,我认为<Directory>指令比<Location>更合适。

Subversion Checkout Yields无法打开请求的Subversion系统

我在我们的RHEL服务器上安装了Subversion,并且安装了dav_svn_module。 我在httpd.conf中的位置标签如下所示: <Location /subversion> DAV svn SVNPath /subversion AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/svn-auth.htpasswd Require valid-user </Location> 我已经为svnuser设置了一个密码 htpasswd -c -m /etc/svn-auth.htpasswd svnuser 重新启动httpd后,我尝试将文件从Subversion版本库签出到我的本地计算机,并收到上面的错误消息。 请注意,当我尝试通过HTTP查看存储库时,我也收到HTTP 500错误。 httpd错误日志显示以下条目: error: Can't open file /subversion/format No such file or directory Could not fetch resource information [500, #0] Could not open the requested SVN filesystem [500, #2] 请注意/ […]

简单的查询关于Apache包含指令

我理解使用Include指令将外部文件Include到httpd.conf的原理,但是我只是想仔细检查一下,我是否已经理解它是如何工作的。 在我们的服务器上,我们已经使用了一些类似的configuration文件 Include /etc/httpd/conf.d/*.conf 现在我也有一堆IP地址,我知道我将需要指定多次(限制访问)。 目前我有: <Directory "/var/www/html/foo"> Order deny,allow Deny from all # IP block 1 Allow from 1.1.1.1 Allow from 1.2.3.4 # IP block 2 Allow from 2.3.4.5 Allow from 7.8.9.10 </Directory> 等等 我可以把所有这些Allow语句放到一个外部文件,以便它读取如下所示: <Directory "/var/www/html/foo"> Order deny,allow Deny from all Include /path/to/iplist.conf </Directory> <Directory "/var/www/html/bar"> Order deny,allow Deny from all Include /path/to/iplist.conf […]

如何在Apache上进行Proxypass?

我GOOGLE了,我不能碰到任何指令configurationApache的代理通行证。 我设法find过渡域到新的Web主机,而不等待DNS传播,但我不明白他们在说什么,特别是以下内容: 1)我怎么能启用代理,proxy_http和重写模块 2)在哪里可以findapacheconfiguration文件和这一行? RewriteEngine on ProxyPassReverse / http://<your-fqdn-here>/ ProxyPass / http://<your-fqdn-here>/ 我的意思是你可以指导我通过configurationProxyPass? 更新 我在CentOS上运行Apache版本: Server version: Apache/2.2.22 (Unix) Server built: Feb 10 2012 16:45:29 Cpanel::Easy::Apache v3.9.1 rev9999 我尝试通过以下教程来安装代理模块:http://www.hackersgarage.com/install-mod_proxy-apache-module-on-whmcpanel-ceentos-linux-server.html 但是我得到这个错误: ./configure –enable-mods-shared="proxy proxy_http proxy_connect" -bash: ./configure: /bin/sh: bad interpreter: Permission denied 所以我只是忽略它,继续其余的命令。 当我尝试重新启动apache时: root@db [/tmp/httpd-2.2.22]# /etc/init.d/httpd restart httpd: Syntax error on line 36 of /usr/local/apache/conf/httpd.conf: […]

Apache httpd.conf仅对子域使用SSL,并为其他https URL使用404

我有我的网站邮件客户端的当前configuration: NameVirtualHost *:443 <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key <Directory /var/www/mailclient> AllowOverride All </Directory> DocumentRoot /var/www/mailclient ServerName mail.* ServerAlias mail.* </VirtualHost> 当我尝试达到https:// mail.domain1.com或https:// mail.domain2.com这工作正常。 但是,当我尝试达到https:// domain1.com或https:// sub.domain1.com我仍然看到Web邮件客户端,但我不想看到什么,但404或类似的东西。 那么我怎样才能限制这个virtualHost只为特定的子域?

按字母顺序排列的Apache2默认虚拟主机,或用_default_虚拟主机覆盖?

我在Apache Web服务器上有多个命名的虚拟主机(CentOS 5,Apache 2.2.3)。 每个虚拟主机在/etc/httpd/vhosts.d都有自己的configuration文件,这些虚拟主机configuration文件包含在主httpd conf中, Include vhosts.d/*.conf 这里有一个虚拟主机的例子 NameVirtualHost *:80 <VirtualHost *:80> ServerName www.domain.biz ServerAlias domain.biz www.domain.biz DocumentRoot /var/www/www.domain.biz <Directory /var/www/www.domain.biz> Options +FollowSymLinks Order Allow,Deny Allow from all </Directory> CustomLog /var/log/httpd/www.domain.biz_access.log combined ErrorLog /var/log/httpd/www.domain.biz_error.log </VirtualHost> 现在,当任何人试图直接通过公共IP地址访问服务器时,他们会得到在聚合configuration中指定的第一个虚拟主机(所以在我的情况下,它是从vhosts.d目录的字母顺序)。 任何人通过IP地址直接访问服务器,我想他们只是得到一个403或404。 我发现了几种设置默认/全部虚拟主机和一些相互矛盾的观点的方法。 我可以在vhosts.d中创build一个叫做000aaadefault.conf的新的虚拟主机configuration文件,但是这有点令人讨厌。 在包含vhosts.d目录之前,我可以在主httpd.conf有一个<VirtualHost>块。 我可以在我的主httpd.conf指定一个DocumentRoot 那么在httpd.conf中用_default_ http://httpd.apache.org/docs/2.2/vhosts/examples.html#default指定默认虚拟主机 在Include vhosts.d/*.conf之前,在我的httpd.conf有一个<VirtualHost _default_:*>块是否是最好的方式?

让Apache2跳过有问题的configuration?

有没有办法让Apache2跳过configuration文件或段,如果他们导致错误? 例如,如果我指定了一个<VirtualHost></>但定义的path不再存在。 有什么让Apache在重启/重载时跳过网页?

Apache HTTPd – rotatelogs不起作用

我已经编辑了我的conf.d / ssl.conf文件,并从以下版本更改了TransferLog指令: TransferLog logs/ssl_access_log 至 TransferLog "|/usr/sbin/rotatelogs logs/ssl_access_log.%Y-%m-%d.log 60" (我正在使用60秒进行testing) 由于这一变化和httpd重新启动我的原始ssl_access_log没有更新,并没有生成一个新的日志。 我错过了什么? 在我的错误日志中,我正在收到此消息 Could not open log file 'logs/ssl_access_log.2014-05-30.log' (No such file or directory) piped log program '/usr/sbin/rotatelogs logs/ssl_access_log.%Y-%m-%d.log 60' failed unexpectedly