Articles of Apache的2.2

PHP的MySQL扩展无法正常工作

在Debian服务器中,在安装和删除SquirrelMail(一些降级和升级php5,mysql …)之后,PHP的MySQL扩展已经停止工作。 我已经安装了php5-mysql,当我尝试通过php-cli连接到数据库时,我连接成功,但是当我尝试从Apache服务器连接时,我无法连接。 这个脚本,由php5-cli运行: echo phpinfo(); $link = mysql_connect('localhost', 'user, 'password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); 打印phpinfo,其中包括“/etc/php5/cli/conf.d/mysql.ini”,以及所有configuration的MySQL部分:SOCKET,LIBS …然后打印“Connectes successfully”。 但是当通过web浏览器访问的apache运行时,它显示phpinfo,其中包括“/etc/php5/apache2/conf.d/mysql.ini”,但MySQL部分丢失,并且脚本死亡打印“致命错误:调用未定义的函数mysql_connect()“。 请注意,“/etc/php5/cli/conf.d/mysql.ini”和“/etc/php5/apache2/conf.d/mysql.ini”实际上是相同的configuration,因为我已经在debian的结构: /etc/php5/apache2 /etc/php5/cgi /etc/php5/cli /etc/php5/conf.d 而且都指向同一个目录: /etc/php5/apache2/conf.d -> ../conf.d /etc/php5/cli -> ../conf.d /etc/php5/conf.d/mysql.ini由一行组成: extension=mysql.so 所以我的问题是:为什么PHP的MySQL扩展不能正常工作,如果我的configuration包含在php-cli中,正在工作? 非常感谢!

configurationmod_proxy_html正确?

我有一个apache2 Web服务器,处理在另一台机器上运行的Rails3应用程序的反向代理。 除了在webapp中生成的URL之外,安装程序不会被mod_proxy_html的configuration重写。 “反向代理场景”正是我想要做的,所以我完全按照我所知道的完成了教程。 我应用或尝试在这里提供的答案在stackoverflow,没有效果。 根据“反向代理scheme”,您需要加载多个模块。 所有这些说明都在我的httpd.conf文件中,当我检查输出 apactectl -t -D DUMP_MODULES 所有预期的模块显示在列表中。 我的外部Web服务器做的反向代理是在www.ourdomain.org和Rails应用程序可以在apphost.local(服务器是Mac OS X Server 10.6,Rails应用程序服务器是Mac OS X 10.6)在内部提供。 现在正在运行的是通过反向代理访问webapp,如下所示: http://www.ourdomain.org/apphost/railsappname/controllername/action 但没有一个JavaScript文件,CSS文件或其他资产被加载,内部链接到Web应用程序出来的URL缺lessapphost部分,就好像我的重写规则configuration不正确(所以当然,我已经把重点放在并且似乎无法得到任何东西在从主机传递到Apache服务器的过程中添加或删除)。 例如,将鼠标hover在由Web应用程序返回的HTML中的操作链接上,您将获得: http://www.ourdomain.org/railsappname/controllername/action 这是我的Apache指令的样子: LoadModule proxy_html_module /usr/libexec/apache2/mod_proxy_html.so LoadModule xml2enc_module /usr/libexec/apache2/mod_xml2enc.so ProxyHTMLLogVerbose On LogLevel Debug ProxyPass /apphost/ http://apphost.local/ <Location /apphost/> SetOutputFilter INFLATE;proxy-html;DEFLATE ProxyPassReverse / ProxyHTMLExtended On ProxyHTMLURLMap railsappname/ apphost/railsappname/ RequestHeader unset Accept-Encoding </Location> 在我对httpd.conf做出的每一个改变之后,我虔诚地检查apachectl […]

apache在哪里存储mod_proxy_balancer的初始化状态

我在Ubuntu上运行apache2作为一组应用程序服务器前面的caching负载平衡反向代理。 我已经注意到,平衡器为/balancer-manager可见的某些属性维护一些状态,例如IP是否启用/禁用,加载因子等。 我的网站使用时间很长(和较低),最近当我向工作组添加一个新的服务器时,我注意到负载平衡器拿起了新的服务器,但设置为“ Disabled 。 我很好奇数据存储在哪里,以及/或者它是如何初始化的。 平衡器configuration(名称更改为保护无辜: SSLProxyEngine On <Proxy balancer://main> BalancerMember https://10.10.1.1 BalancerMember https://10.10.1.2 BalancerMember https://10.10.1.3 </Proxy> ProxyRequests Off ProxyPass /balancer-manager ! ProxyPass / balancer://main/ ProxyPassReverse / balancer://main/ 更新:代码spelunking显示存储在内存中的平衡器状态仅在v2.2.0作为结构ap_scoreboard并在启动时重新初始化。 我想我所看到的事情是没有办法的。 感谢@ShaneMadden对v2.4的深入了解。

当使用允许限制访问URL与显式IP和SetEnvIf时,间歇403错误

我们在Solaris 10环境中运行Apache 2.2.22。 我们有一个特定的URL,我们想限制IP访问。 我们最近实施了一个CDN,现在又增加了一个复杂的问题,那就是请求显示来自的IP实际上是CDN服务器,而不是最终的最终用户。 在我们需要将CDN退出的情况下,我们要处理CDN正在转发请求的情况,或者最终客户端直接发送请求的情况。 CDN在HTTP报头中发送最终用户IP地址(对于这种情况,报头称为“用户IP”)。 这是我们已经到位的configuration: SetEnvIf User-IP (\d+\.\d+\.\d+\.\d+) REAL_USER_IP=$1 SetEnvIf REAL_USER_IP "(10\.1\.2\.3|192\.168\..+)" access_allowed=1 <Location /uri/> Order deny,allow Allow from 10.1.2.3 192.168. allow from env=access_allowed Deny from all </Location> 这似乎一次正常工作,但在某些时候,Web服务器开始向最终用户提供403错误 – 所以由于某种原因,它限制了访问。 奇怪的是,Web服务器的反弹似乎解决了这个问题,但只是一段时间 – 然后行为回来了。 值得注意的是,这个URL是通过mod_jk委托给JBoss服务器的。 然而,拒绝访问是; 证实是在Apache层,这个问题似乎只发生在服务器运行一段时间后。

用重写规则将“/”转换为“ – ”

我有我的服务器中的以下重写规则: RewriteEngine On RewriteBase / RewriteCond $1 !^(index\.php|static) RewriteRule ^(.*)$ /index.php?$1 [L] 主要的function是将请求的每个文件夹转换成一个参数 。 例如,请求example.com/foo战士转换为example.com/index.php?foo战士。 很酷,是吧? 那么,有一个问题。 如果有人input,例如AC / DC,由于额外的斜线。 有什么办法可以重写/到 – , 使其适用于当前的重写规则?

修改apache中POST参数的名称

我想使用apache将POST参数的名称从“SURNAME”更改为“LASTNAME”。 原因是我们有传统的客户端在传统的服务器上发布信息。 既不能修改,这就是为什么我想在Apache中进行翻译。 我用mod_rewrite来翻译一些查询string值,但是post超出了mod_rewrite的范围。 那么,有没有人知道如何操纵post参数的名字?

Apache – 进程没有死后得到超时

如何自动杀死一个进程,它超时。 我有一个configuration已被设置如下: – # # Timeout: The number of seconds before receives and sends time out. # Timeout 300 在查看服务器状态时,我可以看到一个进程仍在运行,正在99633 secs超过99633 secs (即超过一天(27小时))的服务器响应(也可能在两者之间停留)。 尽pipe我已经将conf设置为5分钟,但它仍然停留在两者之间。 如果超过5分钟,我将如何杀死这个过程? 我在Debian OS中使用Apache2版本。 我的configuration文件放在/etc/apache2/apache.conf

服务器过载时的Apache2状态

如何检查apache2过载时的状态? 也就是说,当它不响应HTTP请求? apache2ctl status基本上是状态页面上的wget 。 我需要一些可以在命令行中工作的东西而不需要这个页面。

Apache造成巨大的负载,如何确定原因?

Apache正在使用我的2核心VPS的100%以上,请参阅http://fs1.directupload.net/images/141215/g9s3t8mi.png因为该服务器上有50多个网站,什么将是最明智的方式来确定原因/现场? 暂停他们一个一个,等待是不是我想做的事…. 有没有办法看到哪一个获得最多的stream量? 设置是nginx在statit前面和apache获取一切dynamic这是一个standart的vestaCP设置,如果你熟悉这个控制面板大多数的网站是WordPress的小到中等stream量。

SSLProtocol ALL-SSLv2-SSLv3是否也禁用这些协议,以便从Apache传出连接

首先,我不是一个Apache Web服务器pipe理员,我支持客户试图通过Apache连接到的应用程序作为反向代理和负载平衡器。 客户有两个版本的应用程序运行在两个不同的服务器上。 两个服务器在版本和更新方面是相同的。 该软件的一个版本已针对POODLE漏洞进行修补,并禁用所有SSLv2和SSLv3传入连接,而另一个版本允许这些连接。 客户指出他们的Apacheconfiguration中有SSLProtocol ALL-SSLv2 -SSLv3,但是他们可以连接到仅支持SSLv2和SSLv3的旧版本应用程序,但无法连接到最新版本,因为Apache返回404错误。 鉴于客户已经设置了SSLProtocol ALL-SSLv2 -SSLv3属性,任何人都可以确认,如果这些属性只是禁用这些协议的传入连接,Apache仍然会使用这些协议的传出连接?