Articles of apache 2.2

当使用超过128M的PHP分段错误

我有一个SugarCRM的安装。 记忆力很重,这是一个需要处理的问题。 与此同时,任何尝试使用超过128M内存的页面都会导致Apache(mod_php)进程因分段错误而停止运行: [notice] child pid 6852 exit signal Segmentation fault (11) 如果我将PHP内存限制设置为128M,那么我永远不会收到信号11; 我只是得到正常的PHP错误,告诉我它不能分配任何更多的内存。 如果我将PHP内存限制设置为大于128M(甚至稍微高于此值),则任何进入该内存的进程都会导致分段错误和用户的白屏/断开连接。 我在Atomic资源库的CentOS 6.2服务器上使用PHP 5.3.21。 这是一个生产服务器,所以不存在编译器,所以重新编译Apache进程来做核心转储是不可能的。 我们已经安装了APC 3.1.13,并且需要一些站点。 这是(我相信)我的SugarCRM网站禁用。 我不确定需要其他哪些详细信息来诊断此问题? 我希望能看到一些明显的东西,如果这里有人遇到类似的东西。 如果内存使用率超过了128M,会导致崩溃的是什么? 编辑: 情节变厚了。 运行此testing脚本,将256M设置为memory_limit,直到PHP进程耗尽大约256M的内存为止。 它不会导致分段错误; 它运行并正常终止: <?php phpinfo(); $array = array(); while (true) { $array[] = str_pad('', 1024*512, '0'); echo " " . memory_get_usage(); } 所以我们可以看到SugarCRM(一个普通的PHP / MySQL应用程序)导致了分段错误,但是只有当memory_limit被设置为大于128MBytes并且达到了超过128MByte阈值的页面。 这将是非常棘手的缩小范围。 无论是由一行特定的PHP代码或应用程序中的构造引起的,还是由应用程序碰巧发生的整个系列事件造成的结果(例如,执行触发垃圾收集器开始整理的东西,或者取消设置有数据库连接打开,或者像我可以想象的各种各样的事情)来触发PHP的错误,目前还不清楚。 如果事实certificate这是一个服务器问题,也许是编程方法,我不会感到惊讶。 […]

颠覆HTTP – 可以读取但不能写入

我试图build立一个Subversion服务器。 在启用了SELinux的Fedora上。 我创build了一个仓库,并在Apache中configuration了mod_dav_svn以进行远程访问。 svn ls按预期工作 – 我得到一个密码提示,我看到回购中没有文件。 但是,当我试图svn import ,我得到一个错误。 从Apache的error_log: [Wed Jan 30 18:03:09 2013] [error] [client 127.0.0.1] could not begin a transaction [500, #13] [Wed Jan 30 18:03:09 2013] [error] [client 127.0.0.1] Can't open file '/var/svn/testing/db/txn-current-lock': Permission denied [500, #13] Apache应该能够读写这个文件,所以我不知道什么是错的: $ ls -Z /var/svn/testing/db/txn-current-lock -rw-rw-r–. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 /var/svn/testing/db/txn-current-lock

apache短路mod重写条件

这是我的问题 我的简单的正则expression式工作得很好,我只是想确保正则expression式的效率第一部分短路,我把我的问题在线 1-这个东西应该做的是,如果文件存在,那么带有列表扩展名的文件不应该被重写,如果文件不存在,我们重写请求到我们的PHP文件,所有其他文件types总是重写,不pipe文件是否存在。 第一个条件,该文件是否有以下任何扩展名? 例如: RewriteCond %{REQUEST_FILENAME} \.(php|gif|jpg|png|ico|swf|flv|avi|mpg|jpeg|gz|ram)$ 第二种情况,如果文件是我们的扩展之一,它是否存在于文件系统上? 对这个声明的评估是昂贵的,我想确保我们在以前的RewriteCond上短路,并且只有在上述评估为真的情况下才会检查这个值。 还需要知道如果操作系统或Apache将caching文件的存在的结果(例如PHP的cachingis_file()的结果) 例如: RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ my_index.php?q=$1 [L,QSA] 目录和文件独自一人….因为如果他们通过 文件存在testing,他们不应该被重写 例如: RewriteRule \.(php|gif|jpg|png|ico|swf|flv|avi|mpg|jpeg|gz|ram)$ – [L] RewriteRule ^robots.txt$ – [L] RewriteRule ^(.*)$ my_index.php?q=$1 [L,QSA]

apache2指向非www而不是网站文件夹

我有几个不同的虚拟主机创build,每个人都有自己的文件夹在/ var / www /像这样 /var/www/example1/ /var/www/example2/ 现在,当我用www www.example1.cominputurl时,它指向/var/www/example1/index.html所以工作正常,但是当我input没有www example1.com它指向/var/www/和我可以看到所有的文件夹,我没有/var/www/ index.html。 我在这里查看并在/ var / www /中创build.htaccess: RewriteEngine On RewriteBase / RewriteCond % ^example1.com [NC] RewriteRule ^(.*)$ http://www.example1.com/$1 [L,R=301] 但它不工作。 这就是所有虚拟主机的样子: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName *example1* ServerAlias *.*example1* DocumentRoot /var/www/example1 <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/example1/> Options Indexes FollowSymLinks MultiViews AllowOverride All […]

在htaccess重写规则中使用SetEnvvariables

在我们的httpd.conf虚拟主机块中 SetEnv MAGE_RUN_CODE "v2_us_es" 是否有可能在.htaccess文件中使用该variables 就像是 RewriteRule ^sitemap\.xml$ /media/sitemaps/%{MAGE_RUN_CODE}/sitemap.xml [L] 这可能吗? 谢谢! 杰夫 编辑:我查看了以下链接,但他们没有做我想做的事情 在 https://stackoverflow.com/questions/2008123/how-to-use-getenv-in-php-and-setenv-in-a -htaccess-a-compiled-php-cgi-on https://stackoverflow.com/questions/3638637/how-to-use-the-setenv-variable-in-apache

在.htaccess中设置mp4和png文件的权限

首先,我是Apache .htaccess的全新function。 我有一个服务器,必须允许用户只能潜入mp4和PNG文件。 所以,我一直在阅读Apache HTTP Server文档,根据它说的,我已经把这个添加到了我的.htaccess中: <filesMatch "\.(png|mp4)$"> Order Allow,Deny Allow from all </filesMatch> 因为据我所知,这意味着“对于每个文件,如果它的扩展名是PNG或MP4,允许每个人抓住它,否则拒绝访问”。 很明显,我错了,因为这禁止我访问任何文件/文件夹允许我访问文件夹和HTML文件(以及当然PNG和MP4文件)无论如何。 那么,如何才能访问只有PNG和MP4文件? 另外,我想知道如何使filter忽略大小写。 谢谢。 编辑:首先 – 忘了说,我需要允许本地访问一切(即拒绝必须只为非本地主机)。 我真的不知道这是默认行为还是需要以某种方式表示。 而且,当我进行testing的时候,我有一个损坏的文件,这就是为什么我总是被禁止访问所有的东西。 我已经更新了这个post。

两个相同的文件; 阿帕奇说一个是禁止的

我有这个文件,favicon.ico。 这实际上是一大堆嵌套文件,但是纯粹就是这个。 如果我做的cp favicon.ico favicon2.ico ,Apache可以读取第二个就好了。 如果我做mv favicon.ico favicon3.ico ,Apache会在favicon3.ico上抛出一个403。 如果我su apache ,我可以读取文件为apache。 stat说这两个文件是相同的,除了inode号码。 有一些隐藏的国旗或者我失踪的东西吗? 我从来没有见过这样的事情。 error_log说(13)Permission denied: access to /favicon3.ico denied

Apache mod_ssl – 你可以拒​​绝回应主机名不正确的请求吗?

过去,我使用旧的DNS条目(属于其他人)指向服务器时遇到了问题。 为防止服务器响应,并使这些主机名显示为保存我的内容的确切副本,我使用NameVirtualHost并使默认虚拟主机总是响应503禁止。 这似乎很好地工作。 现在,我想知道如何用SSL实现同样的function。 显然,如果客户端在使用无法识别的主机名时通过HTTPS请求一个页面,他们会得到SSL警告,因为证书不匹配。 但是,他们可以select绕过这些警告。 即使客户端select忽略SSL警告,我也想阻止服务器提供内容。 看来我不能使用相同的NameVirtualHost技巧,因为使用SSL的基于名称的虚拟主机需要SNI,这与旧客户端存在潜在的兼容性问题,我宁愿避免。 相反,我必须使用基于IP的虚拟主机。 SSLRequireSSL似乎没有帮助 – 无论证书是否工作,都很高兴。 谷歌是这样的一个例子,虽然大概不使用Apache。 如果你编辑你的/ etc / hosts并在谷歌IP地址上指定一些随机的名字,当你通过SSL访问它时,你首先会得到一个警告,但是如果你继续,你会得到一个503错误 – “服务错误-27。我们所知道的“。 我不确定这真的很重要。 由于之前的stream浪的DNS条目导致的明显的重复网站实际上导致我们的内容在search引擎中出现在错误的域名下。 在这种情况下,假设(希望!)search引擎将不索引的内容,如果SSL证书是无效的。 不过,如果有一个标准的方法,我想这样做。

负载均衡器Apache什么是错的

我试图做一个负载平衡使用Apache,但是当我到我的(本地)主机“负载” 没有find 我已经加载了这些mods LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule status_module modules/mod_status.so 这是我的虚拟主机: ServerName load ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Proxy balancer://wwwCluster> BalancerMember http://localhost:1001 loadfactor=1 BalancerMember http://localhost:1002 loadfactor=5 BalancerMember http://localhost:1003 loadfactor=3 Order Deny,Allow Deny from none Allow from all ProxySet lbmethod=byrequests </Proxy> ProxyPass /balancer balander://wwwCluster 平衡器pipe理器工作得很好SetHandler balancer-manager允许所有

Apache高CPU使用率,设置超载限制

在一台Ubuntu服务器上,我使用APC运行LAMP环境,使用fast-cgi作为php mod,来托pipe2个WordPress站点,并且这两个站点都configuration了Wordpress Total Cache(W3TC)插件。 服务器的规格是:2GB内存和1个CPU(CPU MHz:2100.076,caching大小:2048 KB)。 其中一个站点在服务器上产生相当大的负载,并且由于高负载,服务器通常会停止响应。 我已经停用未使用的Apache模块 我已经设定了所有从W3TCcaching到APC的内存 我做了一些阿帕奇调整 但是,从php-cgi ,没有一个真正帮助我处理残酷的CPU使用。 虽然我实现了清漆,并尝试在另一台服务器上有一个副本我有我也可以做一些负载平衡,我想知道如何设置一些负载限制的php-cgi或自己的apache ,并显示一个自定义消息如: Sorry, the server is under heavy load, please try again later 不得不提,我也用,cloudflare。 任何其他的提示,也非常欢迎。