我在testing是否存在%{REQUEST_FILENAME}的mod_rewrite RewriteCond条目中遇到了文件testing操作的问题。 看来,而不是%{REQUEST_FILENAME}是一个绝对path,我得到一个根源于DocumentRoot的path。 组态 我在我的apache 2.2.9configuration中有一个<VirtualHost>块: RewriteEngine on RewriteLog /tmp/rewrite.log RewriteLogLevel 5 #push virtually everything through our dispatcher script RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/([^/]*)/?([^/]*) /dispatch.php?_c=$1&_m=$2 [qsa,L] 诊断试图 该规则是通过脚本为不存在的文件或目录路由请求的常见惯用语。 麻烦的是,即使文件存在,它也会被触发。 如果我删除规则,我可以请求正常的文件就好了。 但是随着规则的到来,这些请求被定向到dispatch.php 重写日志跟踪 这是我在rewrite.log中看到的 init rewrite engine with requested uri /test.txt applying pattern '^/([^/]*)/?([^/]*)' to uri '/test.txt' RewriteCond: input='/test.txt' pattern='!-f' => matched RewriteCond: […]
我遇到了Linux输出缓冲区在我的Linux Web服务器上刷新的问题。 输出缓冲区保持正确,所有正确的数据被推送到我的代码中,但通常的冲洗机制不会刷新到浏览器。 我已经尝试一切张贴在这里: http : //php.net/manual/en/function.flush.php但迄今没有成功。 我从php.net得到一个小脚本来testing它: <?php ob_start(); for($i=0;$i<70;$i++) { echo 'printing…<br />'; ob_get_flush(); flush(); usleep(300000); } ?> 这应该打印“打印…”70次,每三秒一行。 这对我的另一个基于Windows的testing环境(仍然使用apache,XAMPP包)工作得很好,但在我的Linux服务器上却没有。 在给浏览器提供任何东西之前,它等待脚本完成,基本上忽略了整个刷新命令。 如果任何人以前经历过这个,或者知道任何可以帮助的东西(无论是服务器configuration还是调整代码),都将不胜感激!
我有休耕问题:阿帕奇每个孩子吃很多公羊。 下面的评论显示: cat / etc / redhat-release – Fedora release 8(狼人) 免费-m: total used free shared buffers cached Mem: 3566 3136 429 0 339 1907 -/+ buffers/cache: 889 2676 Swap: 4322 0 4322 我知道你会说没有什么可担心的,因为swap不是用的,但是我觉得现在不用了。 3.httpd -v: 服务器版本:Apache / 2.2.14(Unix) 4.httpd -l: 以模块编译: core.c mod_authn_file.c mod_authn_default.c mod_authz_host.c mod_authz_groupfile.c mod_authz_user.c mod_authz_default.c mod_auth_basic.c mod_include.c mod_filter.c mod_log_config.c mod_env.c mod_setenvif.c […]
在过去的几个月里,我一直在试图find跨多个运行Apache + PHP的Web服务器(12+)共享多个网站内容的最佳方式。 我面临的最大挑战之一是我们需要能够随时读写文件系统,因为各种各样的好坏原因(例如,应用程序不在我们的控制范围内,通过networking界面pipe理的WordPress网站等) …)。 以下是我尝试过的一些结果: Rsync / duplicity/csync2:每分钟只运行一次,这意味着某些更改不会在整个群集中共享,从而避免出现严重问题。 inotify / incron:考虑到大量的文件和目录来监视太复杂。 而且,新文件的效果也不好。 GlusterFS:我们有一个4服务器gluster后端和性能,虽然明确缓慢,是可以容忍的。 不幸的是,在每台Web服务器上运行的gluster客户端不断崩溃,然后冻结2个到15分钟之间的4个文件服务器中的一个。 我们联系了Gluster Inc.,让他们的一些工程师帮助我们,但是他们无法弄清楚问题所在。 使用3个月后,我们不得不放弃。 有关我们设置的一般信息: 在Amazon EC2上主办 运行Ubuntu Maverick 运行Nginx(2) – > Varnish(2) – > Apache(12+) 禁用.htaccess以获得最佳性能。 我们直接将指令添加到网站configuration文件 我们运行的大多数网站/应用程序不是我们的,不幸的是,只读环境是不可能的 具有自动故障转移function的高可用性对于我们考虑这些Web服务器正在处理的任务非常重要 所以我认为这涵盖了一切:)。 预先感谢您的时间和回应。
我有一个WebDAV用户设置,目前从我的MySQL数据库获取用户名和密码。 我给用户select使用WebDAV进行大file upload(这是为我正在开发的文件共享服务),但我已经达到了我似乎无法弄清的一个小问题。 首先 – 如何让每个用户拥有自己的WebDAV根目录,以便他们不能查看其他用户的文件? 我已经运行了一个cronjob来检查任何启用WebDAV的用户,并自动创build具有适当权限的目录。 我只需要一些告诉Apache这个方法。 感谢您的帮助,我真的很感激。 我也知道我可以每分钟运行一个cronjob来生成一个apacheconfiguration并重新加载apacheconfiguration,但是这只是有点太多的开销,我想要更多的灵活性。
我们有一个巨大的disk_cache(> 500.000条目,> 50 GB磁盘空间使用)的Apache设置。 caching每天增长16 GB。 我的问题是,caching似乎正在增长几乎一样快,可以从caching文件系统中删除文件和目录 ! caching分区是iSCSI存储上的ext3文件系统(100GB,“-t news”)。 Apache服务器(充当caching代理)是一个虚拟机。 disk_cacheconfiguration了CacheDirLevels = 2和CacheDirLength = 1,并且包含变体。 典型的文件path是“/htcache/B/x/i_iGfmmHhxJRheg8NHcQ.header.vary/A/W/oGX3MAV3q0bWl30YmA_A.header”。 当我尝试调用htcacheclean来驯服caching(非守护进程模式,“htcacheclean-t -p / htcache -l15G”)时, IOwait将会经过几个小时的时间 。 没有任何可见的行动。 只有几小时后,htcacheclean才开始从caching分区中删除文件,这需要花费几个小时。 (2009年在Apache邮件列表中提出了类似的问题,但没有解决方法: http : //www.mail-archive.com/[email protected]/msg42683.html ) 高IOwait会导致Web服务器的稳定性问题(通往Tomcat后端服务器的桥梁有时会停滞)。 我想出了我自己的修剪脚本,它从caching的随机子目录中删除文件和目录。 只是发现脚本的删除率略高于caching增长率 。 该脚本需要大约10秒的时间来读取一个子目录(例如/ htcache / B / x),并释放一些5 MB的磁盘空间。 在这10秒内,caching又增长了2MB 。 与htcacheclean一样,在连续运行修剪脚本的时候, IOwait会上升到25% 。 任何想法? 这是(特别慢)iSCSI存储的特定问题吗? 我应该为一个巨大的disk_cacheselect一个不同的文件系统吗? EXT2? EXT4? 有没有这种情况下的内核参数优化? (我已经尝试了截止日程安排程序和一个较小的read_ahead_kb,没有效果)。
为什么?? <VirtualHost *:80> ServerAdmin [email protected] DirectoryIndex index.php <If "%{SERVER_PROTOCOL} != 'HTTPS'"> Redirect / https://www.mydomain.com:443/ </If> ….. </VirtualHost> 保存,然后重新启动: sudo /etc/init.d/apache2 restart Syntax error on line 4 of /etc/apache2/sites-enabled/000-default: Invalid command '<If', perhaps misspelled or defined by a module not included in the server configuration Action 'configtest' failed. The Apache error log may have more information. […]
好吧,所以我刚开始一个新的Ubuntu服务器11.10,我添加了虚拟主机,一切似乎好…我也重新启动Apache,但是当我访问浏览器,我得到一个空白页 服务器IP是http://23.21.197.126/,但是当我尾日志 tail -f /var/log/apache2/error.log [Wed Feb 01 02:19:20 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs [Wed Feb 01 02:19:24 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs 但我唯一的网站启用文件是这样的 <VirtualHost 23.21.197.126:80> ServerAdmin [email protected] ServerName logicxl.com # ServerAlias DocumentRoot /srv/crm/current/public ErrorLog /srv/crm/logs/error.log <Directory "/srv/crm/current/public"> Order allow,deny Allow from all </Directory> </VirtualHost> 有什么我失踪…..文件根目录应该是/srv/crm/current/public而不是/etc/apache2/htdocs的错误build议 有想法该怎么解决这个吗 […]
我在我的机器上有一个虚拟主机,我正在访问本地。 我在Windows 7下运行apache2。 当访问这个主机,我看到在Fiddler,该服务器redirect到不同的远程站点的响应 301 Moved Permanently 但我绝对找不到它在哪里configuration。 我search目标网站的URL的所有.htaccess文件,给定的虚拟主机中的所有文件的这个URL,所有的Apache目录… 如何跟踪导致Apache执行此redirect的原因?
我在一个Karaf托pipe的应用程序(Apache和Karaf在不同的服务器上)前部署Apache。 我希望Apache可以作为反向代理运行,也可以隐藏部分URL。 直接从应用程序服务器获取应用程序login页面的URL是http://app-server:8181/jellyfish 。 页面由在Karaf内运行的Jetty实例提供服务。 当然,除了反向代理服务器以外,这种行为通常会被防火墙阻止。 在防火墙closures的情况下,如果您点击此URL,Jetty将加载login页面。 浏览器的地址栏正确地更改为http://app-server:8181/jellyfish/login?0 ,一切正常。 我想要的是http://web-server (即从根目录)映射到应用程序服务器上的Jetty与应用程序( jellyfish )的名称压制。 例如,浏览器将更改为在地址栏中显示http://web-server/login?0 ,所有后续的URL和内容将与Web服务器的域一起提供,并且不会出现jellyfish混乱。 我可以使用下面的configuration(snippet)让Apache作为一个简单的反向代理来运行: ProxyPass /jellyfish http://app-server:8181/jellyfish ProxyPassReverse / http://app-server:8181/ …但这需要浏览器的URL包含jellyfish和去根URL( http://web-server )给出了404 Not Found。 我花了很多时间试图使用mod_rewrite和没有[P]标志来解决这个问题,但没有成功。 然后我尝试了ProxyPassMatch指令,但我似乎无法得到相当正确的。 这是当前的configuration,正如加载到Web服务器上的/etc/apache2/sites-available/ 。 请注意,有一个本地托pipe的图像目录。 我也保留了mod_rewrite代理漏洞保护,并且压制了一些伪造的错误mod_security规则。 <VirtualHost *:80> ServerAdmin admin@drummer-server ServerName drummer-server ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /images/ "/var/www/images/" RewriteEngine On RewriteCond %{REQUEST_URI} !^$ RewriteCond […]