Articles of apache 2.2

Apache2 No Listening套接字,尝试configuration虚拟主机时无法打开日志

我正在尝试在Apache2中使用虚拟主机设置多个域。 当我尝试浏览到我的网站时,当前正在收到“无法连接”错误,并且每当我尝试重新启动Apache2时,都会收到有关“没有可用的套接字,closures无法打开日志”的错误。 最初,configurationapache2.conf和我的/apache2/sites-enabled/domain1.com后,我得到一个500服务器错误,并从apache2警告“NameVirtualHost *:80没有VirtualHosts”。 然后我在ports.conf文件中注释了一个额外的(我认为)NameVirtualHost *:80,现在无法连接,也没有套接字错误。 以下是我的apache2.conf的底部: NameVirtualHost *:80 #<VirtualHost *:80> <IfModule mod_ssl.c> NameVirtualHost *:443 </IfModule> 和我的/apache2/sites-enabled/domain1.com: # domain: domain1.com # public: /home/demo/public_html/domain1.com/ <VirtualHost *:80> # Admin email, Server Name (domain name) and any aliases ServerAdmin [email protected] ServerName domain1.com ServerAlias domain1.com # Index file and Document Root (where the public files are located) DirectoryIndex index.html […]

从RHEL 5.6迁移到6.1后,httpd性能下降

我们最近用RHEL 6.1取代了一个RHEL 5.6networking服务器。 对于这两种环境,已经使用Apache httpd的(库存)Redhat(即yum install httpd)。 服务器正在为PHP内容提供服务,并处于忙碌状态(每分钟提供大约2500 – 4000页的请求)。 两个服务器的规格在内存,存储和networking连接方面是相同的。 我们所看到的是RHEL 6.1盒子的负载平均值要高得多 – 负载平均值(有时)会超过40(所有httpd进程),导致网站的性能大幅下降。 我们监视了RHEL 5.6环境,并且平均负载不超过约5个并发httpd。 我们如何调查这个问题? 请记住,这是一个生产环境,但是我们可以通过在5.6和6.1服务器之间切换来比较“苹果与苹果”。

Fail2Ban:什么是apache溢出?

我正在尝试为我的服务器configurationfail2ban,并遇到:.config中的apache-overflows 它做什么/保护?

有没有办法在“mod_ssl”之前访问“mod_rewrite”?

场景: 我有2个域名: thinkingmonkey.me和thinkingmonkey.com 。 整个网站是通过https访问。 从通用名为thinkingmonkey.me的CA购买证书。 对于http : www.thinkingmonkey.com , thinkingmonkey.com和www.thinkingmonkey.me有一个虚拟主机,并使用_mod_rewrite_规则redirect到https://thinkingmonkey.me 。 thinkingmonkey.me有其独立的虚拟主机。 一切工作正常。 https : 即www.thinkingmonkey.com , thinkingmonkey.com和www.thinkingmonkey.com有一个虚拟主机,并使用_mod_rewrite_规则redirect到https://thinkingmonkey.me 。 thinkingmonkey.me有其独立的虚拟主机。 问题 现在,如果https://www.thinkingmonkey.com或https://thinkingmonkey.com被访问, 在mod_rewrite执行https://thinkingmonkey.me重写之前, mod_ssl会发生作用,并且发生TLS握手。 由于证书中的通用名称是在thinkingmonkey.me中 , 因此此连接是不受信任的警告在浏览器中显示。 除非我通过接受证书完成握手,否则不会被redirect到thinkingmonkey.me 。 这是非常烦人的。 所以, 有没有办法在mod_ssl之前访问mod_rewrite ? 要么 我必须购买一个单独的证书来摆脱这个?

Apache:具有多个文档根目录的多个位置的虚拟主机:有可能吗?

好吧,这是我的问题:我已经设置了一个适当的服务器名称的虚拟主机。 例如,我也在同一台机器上安装了Squirrelmail和SVN。 我想通过键入http:// mydomain进入默认页面,通过inputhttp:// mydomain.no-ip.org/svn键入http:// mydomain / mail和我的svn来到我的邮件前端。 我的虚拟主机定义如下: <VirtualHost *:80> ServerName mydomain.no-ip.org #Default site, accessible by http :// mydomain.no-ip.org/ <Location /> DocumentRoot "/var/www/alias" DirectoryIndex index.php </Location> #Squirrelmail, accessible by http :// mydomain.no-ip.org /mail <Location /mail> DocumentRoot /usr/share/squrrelmail Options FollowSymLinks <IfModule mod_php5.c> php_flag register_globals off </IfModule> <IfModule mod_dir.c> DirectoryIndex index.php </IfModule> <Files configtest.php> order deny,allow […]

如果虚拟内存过低,请自动重新启动服务器

我的服务器上有相当多的软件运行:httpd,varnish,mysql,memcache,java .. 他们每个正在使用虚拟内存的一部分,并configuration清漆分配3GB的内存运行。 由于100K的高stream量负载,我们的服务器耗尽了内存,并且调用了杀手锏。 我们必须重新启动服务器。 我们有8GB的虚拟内存,由于某种原因,我们无法扩展到更大的内存。 我的问题是 – 是否有任何自动化的脚本,它会监视剩下多less虚拟内存,并根据一定的标准,可以说,如果500MB左侧比自动重启服务器? 我知道这不是正确的解决scheme,但我们必须这样做,否则我们不知道什么时候服务器将获得OOM,当我们知道并重新启动服务器时,我们失去了我们的访问用户。

php.ini的变化没有任何影响

当我对位于/ usr / local / lib中的php.ini进行任何更改时,这些更改似乎没有应用,例如,当我清除php.ini的所有内容并重新启动Apache时,一切正常。 .. 我search了php.ini,并在系统中的一个地方…有什么问题? 我怎样才能解决这个问题?

64位Windows上的Apache SSL(不是有效的Win32应用程序)

我已经创build了一个可移植的(相对path)Apache安装。 它在我的32位系统上完美工作,但是当我尝试在64位系统上运行它时,会出现以下错误: >httpd -t httpd: Syntax error on line … of …/httpd.conf: Cannot load …/modules/mod_ssl.so into server: %1 is not a valid Win32 application. 如果我注释掉包含SSL.conf的行,那么服务器在64位系统上运行,但是当然没有SSL支持。 我试图寻找这个,但找不到任何有用的东西。 有谁知道如何让Apache在64位系统上使用SSL(最好是以一种与32位系统兼容的方式)?

更改php错误报告,只隐藏特定网站的警告

想象一下,可以从/etc/apache2/sites-available sites-enabled一些sites-enabled 。 (只有基于Debian的发行版才能这样工作。) 是否有可能从一个特定的站点的 PHP脚本静音warning消息,而不触及实际的htdocs ? 通常有几个解决scheme来实现相关的: 添加一个error_reporting()指令,例如error_reporting(E_ERROR); 到执行的脚本。 在.htaccess文件中设置php_flags,如下所示: php_flag display_errors off 在脚本中使用ini_set : ini_set('display_errors', 'Off'); ini_set('display_startup_errors', 'Off'); error_reporting(0); 将@预先标记为引发警告或错误的函数。 改变php.ini实际上说 error_reporting = E_ALL ^ E_WARNING display_errors = 1 但是,这些都意味着触及全球或者有所改变。 想象一下, htdocs是只读的。 我将如何压制某些网站的警告(或通知)? 我假设Debian / Ubuntu有a2ensite特定的configuration,有一个原因,我希望我可以改变这些。 示例“站点可用”configuration中有一个log_level指令,但是这处理了logging的消息数量。 不是由PHP脚本输出的消息。 手动添加部分在php.ini或apache2.conf或httpd.conf也将工作。 如果可能。 也可以看看: http://www.php.net/manual/en/function.error-reporting.php

如何从一个Apache服务器传递请求到另一个

我有两个启用了mod_proxy的Apache服务器。 我想知道如何使用相同的端口(80)将“请求”从“Apache服务器A”传递到“Apache服务器B”。 在“服务器A”与内部IP:192.168.0.5我configuration了DNS,我也用它作为我的邮件服务器。 在“服务器B”与内部IP:192.168.0.10我有我自己的云服务器。 今天当我访问wwww.mydomain.com或www.mydomain.com/webmail一切正常,因为内容都在“服务器A”,我需要的是当有人试图访问owncloud.mydomain.com他们可以访问我的服务器B而不会将它们redirect到owncloud.mydomain.com:81等其他端口,我只想使用端口80。 其实我得到一个redirect循环,因为当我尝试redirect,我猜“服务器A”是由自己得到相同的请求。 我已经设置我的虚拟主机在同一个“服务器A”工作,我想要“redirect”到另一台服务器使用相同的端口和URL(owncloud.mydomain.com)。 我不想使用另一个端口redirect。