Articles of magento

Solrsearch – java.util.Map $ Entry无法parsing

我有Solr 3.6.2运行和search一个Magento企业网站,它都运行良好,启动时没有错误等。 但是,当试图访问以下pipe理页面: /solr/admin/stats.jsp /solr/admin/registry.jsp /solr/admin/analysis.jsp /solr/admin/distributiondump.jsp 我收到以下错误: Problem accessing /solr/admin/stats.jsp. Reason: PWC6033: Unable to compile class for JSP PWC6197: An error occurred at line: 41 in the jsp file: /admin/stats.jsp PWC6199: Generated servlet error: The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files org.apache.jasper.JasperException: PWC6033: Unable to compile class […]

使用Magento进行4个或更多的并发请求时,100%的CPU

目前我在运行Magento的服务器上遇到麻烦,速度令人难以置信。 这是一个用于开发的几个Magento安装VPS,所以我是唯一使用它们的。 当我每隔两秒钟完成4次请求后,我在10秒内完成。 慢,但仍然在我的耐心范围之内。 当我做4个“并发”的请求,但是(很快就打开4个标签),所有的四个核心都去100%,并留在那里一分钟。 这怎么可能? 我知道这里有很多的可能性,所以如何使Apache / PHP服务器更快的提示也是受欢迎的。 它曾经快很多,我也尝试过APC,但它一直在导致问题(PHP错误,内存池的东西),所以我已经禁用它。 顺便说一句,Magentocachingclosures,编译也closures。 我知道这使得Magento比平常慢,但我不认为任何Magento安装60秒的响应时间是正常的。 虚拟硬件: 4核和4096MB RAM 从不使用交换(使用htop检查)100GB磁盘空间,其中10%正在使用 软件: Debian 6 DirectAdmin和apache的custombuild PHP 5.2.17(CLI) 如果你需要更多的信息,请告诉我如何得到它,因为我可能不知道如何。 我知道如何在Linux中使用命令行以及使用相当多的命令,但是我pipe理服务器的经验是有限的。

在nginx中缺less尾部斜线

我使用这个configuration在Nginx上运行Magento: http : //www.magentocommerce.com/wiki/1_-_installation_and_configuration/configuring_nginx_for_magento 。 现在我想301所有的url都没有跟踪斜线到包含斜线的对方。 例如:/ contacts to / contacts /。 我试过几乎所有的nginx指令,我都能find,但无济于事。 例如,在nginx中指定的指令 – 使用拖尾斜杠重写URL会导致redirect到/index.php/。 我应该添加哪个指令?

删除Magento MySQL数据库后回收磁盘空间

我需要回收一些磁盘空间,所以我从我的服务器上删除了旧的Magento数据库。 数据库大小约为16 GB。 我很惊讶,一旦数据库被删除,它并没有真正释放该磁盘空间。 我试过重新启动MySQL服务器,但仍然占用这个空间。 如果重要的话,一个Magento数据库使用innoDB相当厉害。 有什么我可以做得到这个磁盘空间回来?

从上游读取响应头时,nginx recv()失败(104:由对等方重置连接)

我最近把我的magento从1.5升级到1.9,并且当我添加某个产品到购物篮时,我开始收到这个错误: 502 Bad Gateway var / log /文件夹中没有日志条目: 所以,我看看我的nginx错误,并在nginx-errors.log中find以下条目: 2015/04/09 10:58:03 [error] 15208#0: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: "http://dev.my-domain.co.uk/tinti-bath-painting-soap-70ml.html" 2015/04/09 11:04:42 [error] 15208#0: *13 recv() failed (104: Connection reset by peer) while reading […]

Magento托pipe预算

我必须为Magento做一个设置。 我的约束主要是便于安装和容错/故障切换。 而且成本是一个问题。 我有三个相同的物理服务器来完成这项工作。 每个服务器节点在软件RAID 1configuration中都有一个i7四核,16GB RAM和2x3TB HD。 每个节点运行Ubuntu 12.04。 马上。 我有一个额外的IP地址可以路由到任何这些节点。 Magento商店有最大。 1000个产品,其中50%是捆绑产品。 我估计,最大。 10个用户同时激活。 这使我得出结论,performance不是这里的重中之重。 我的第一个设置想法 一个节点(lb)运行nginx作为负载均衡器。 附加IP与域名一起使用,并默认路由到此节点。 Nginx将负载平均分配给另外两个节点(shop1,shop2)。 Shop1和Shop2configuration相同:每台服务器运行Apache2和MySQL。 Mysqlsconfiguration了主/从复制。 我的故障转移策略: Lb失败=>将IP路由到shop1(MySQL master),继续。 Shop1失败=> Lb会自动处理,在shop2上升级MySQL从属掌握,重新configurationMagento使用shop2进行写入,继续。 Shop2失败=> Lb会自动处理,继续。 这是一个理智的战略? 有没有人做过与Magento类似的设置? 我的第二个设置想法 另一种方法是使用drbd在shop1和shop2上存储MySQL数据文件。 我明白,在这种情况下,只有一个节点/ MySQL实例可以是活动的,而另一个被用作热备份。 所以如果shop1失败,我会在shop2上启动MySQL,将IP路由到shop2,然后继续。 我喜欢这一点,因为MySQL设置更容易,节点可以configuration99%相同。 所以在这种情况下,负载平衡器变得毫无用处,我有一个备用服务器。 我的第三个设置想法 第三种方式可能是MySQL数据库的主 – 主复制。 然而,在我的select中这可能是棘手的,因为Magento不是针对这种情况构build的(例如,新行的冲突ID)。 直到听说过一个实例,我才会这样做。 你能给我一个build议,哪条路要走? 似乎没有一个“好”的方法来做到这一点。 例如,我读博客文章描述Magento的MySQL主/从设置,但在其他地方,我读到,当奴隶落后于主人(例如,当订单被放置,顾客可能被创build两次)时,数据可能被重复。 我有点迷路了

我怎样才能防止Apache崩溃?

我有一对服务器托pipe一个单一的Magento电子商务网站与中等stream量(每天从谷歌分析报告60k的页面浏览量,我认为约80k报告在服务器本身)。 数据库服务器运行平稳而迅速,除了偶尔出现的一个小问题,但是Apache服务器每隔一段时间就会崩溃。 我已经设置了magento来使用推荐的PHPcaching(APC),以及在1.5 gig的tmpfs中保存自己的caching文件(这个tmpfs经常变得非常满,而且当tmpfs是超过80%满)。 我从amazon cloudfront服务大多数图像。 我最近设置了nginx作为apache的反向代理(nginx也提供了静态文件)。 我已经尽我所能configuration了apache – keepalives和hostnamelookups已closures,preforkconfiguration如下: <IfModule prefork.c> StartServers 50 MinSpareServers 50 MaxSpareServers 100 ServerLimit 512 MaxClients 256 MaxRequestsPerChild 400 </IfModule> 我没有closures.htaccess文件,并打开访问日志logging。 我知道有一些模块可以closures。 如果有的话,我不确定这三个变化会有什么影响。 apache服务器是一个带有6个RAM的VPS。 到编写的时候,服务器报告的load average: 17.77, 18.27, 49.76是load average: 17.77, 18.27, 49.76 ,但是大约有load average: 17.77, 18.27, 49.76 RAM是免费的。 当它真的很糟糕,负载达到120+,并停留在那里 – 重新启动Apache将站点备份和负载回落。 vmstat是(而服务器正在报告上面的负载),我认为,显示一个CPU空闲值在0和70之间波动。 iostat显示0到0.2%之间的iowait值。 我有点卡住了 我所知道的是告诉我,问题在于由于正在运行的代码和用户数量的组合导致CPU过载。 但是我没有足够的经验来确定这是问题所在。 如果这是问题,我认为解决scheme是要么改善代码,要么分割托pipe在两个VPS上的负载平衡器的站点。 所以,我想我的问题是: 我还能做些什么来发现服务器上的问题或瓶颈? […]

现场部署新的代码

在现场(电子商务)网站上部署新代码的最佳做法是什么? 现在,当重新命名public_html_new为public_html ,旧的为public_html_old时,我已经停止了apache的+/- 10秒。 这会造成一个短暂的停机时间,然后再次启动Apache。 如果使用Git来将新的repo拉到实时目录中,也会出现同样的问题。 在网站活跃的时候,我可以拉回购回吗? 那么如果我需要复制一个数据库呢? 在活动站点的tar(备份目的)压缩过程中,我注意到媒体目录中发生了变化。 这表明文件不断变化。 如果这些更改可能会干扰,如果部署期间没有停止Apache。