标签: magento

实时部署新代码

在实时(电子商务)站点上部署新代码的最佳做法是什么?

现在重命名目录时,我已经停止阿帕奇+/-10秒public_html_newpublic_html老来public_html_old。在我再次启动 Apache 之前,这会造成短暂的停机时间。

如果使用 Git 将新的 repo 拉到 live 目录,也会出现同样的问题。我可以在站点处于活动状态时拉出 repo 吗?如果我还需要复制数据库呢?

在对实时站点进行 tar(备份目的)压缩期间,我注意到媒体目录中发生了变化。这向我表明文件会定期更改。如果 Apache 在部署期间没有停止,这些更改是否会干扰。

httpd centos magento

30
推荐指数
5
解决办法
3356
查看次数

在 nginx 中缺少斜杠时添加斜杠

我使用以下配置在 Nginx 上运行 Magento:http : //www.magentocommerce.com/wiki/1_-_installation_and_configuration/configuring_nginx_for_magento

现在我想将所有 URL 301 不带尾随斜杠到包含尾随斜杠的对应物。例如:/contacts 到 /contacts/。

我已经尝试了几乎所有我能找到的 nginx 指令,但无济于事。例如,nginx-Rewrite URL with Trailing Slash 中指定的指令会导致重定向到 /index.php/。

我应该添加哪个指令以及在哪里添加?

rewrite url nginx magento

10
推荐指数
2
解决办法
2万
查看次数

如何防止 Apache 摔倒?

我有一对服务器托管一个流量适中的 Magento 电子商务网站(谷歌分析报告每天 60k 页面浏览量,我认为服务器本身报告了大约 80k)。数据库服务器运行平稳快速,除了偶尔偶尔打嗝外,但 apache 服务器经常发生故障。

我已将 magento 设置为使用推荐的 PHP 缓存 (APC),并将其自己的缓存文件保存在 1.5 gig tmpfs 中(此 tmpfs 经常变得非常满,我有一个脚本运行以在 tmpfs 为超过 80% 已满)。我提供来自亚马逊云前沿的大多数图像。我最近将 nginx 设置为 apache 的反向代理(nginx 也提供静态文件)。我已经尽我所能配置了 apache - keepalives 和 hostnamelookups 都关闭了,prefork 配置如下:

<IfModule prefork.c>
    StartServers      50
    MinSpareServers   50
    MaxSpareServers  100
    ServerLimit  512
    MaxClients   256
    MaxRequestsPerChild 400
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我没有关闭 .htaccess 文件,并且访问日志是打开的。我知道有些模块我可以关闭。我不确定这三个变化中的任何一个会产生什么影响,如果有的话。

apache 服务器是一个 VPS,有 6 gig 的 RAM。截至撰写本文时,服务器正在报告load average: 17.77, 18.27, 49.76,但大约有 2 gig 的可用 RAM。当它变得非常糟糕时,负载会增加到 120+ 并保持在那里 - 重新启动 apache 会使站点重新启动并重新降低负载。

vmstat是(当服务器报告上面的负载时),我认为,显示 CPU …

php performance nginx magento apache-2.2

8
推荐指数
1
解决办法
3173
查看次数

预算有限的 Magento 托管

我必须为 Magento 进行设置。我的限制主要是易于设置和容错/故障转移。此外,成本也是一个问题。我有三个相同的物理服务器来完成工作。每个服务器节点在软件 RAID 1 配置中都有一个 i7 四核、16GB RAM 和 2x3TB HD。每个节点都运行 Ubuntu 12.04。马上。我有一个额外的 IP 地址,可以路由到这些节点中的任何一个。

Magento 商店有最大。1000个产品,其中50%是捆绑产品。我估计最大。10 个用户同时处于活动状态。这使我得出结论,性能不是这里的重中之重。

我的第一个设置想法

一个节点 (lb) 将 nginx 作为负载均衡器运行。附加 IP 与域名一起使用并默认路由到此节点。Nginx 将负载平均分配给其他两个节点(shop1、shop2)。Shop1 和 shop2 配置相同:每个服务器运行 Apache2 和 MySQL。Mysqls 配置了主/从复制。

我的故障转移策略:

  • Lb 失败 => 将 IP 路由到 shop1(MySQL 主站),继续。
  • Shop1 失败 => Lb 将自动处理,将 shop2 上的 MySQL 从站提升为 master,重新配置 Magento 以使用 shop2 进行写入,继续。
  • Shop2 失败 => Lb 会自动处理,继续。

这是一个明智的策略吗?有没有人用 Magento 做过类似的设置?

我的第二个设置想法

另一种方法是使用 drbd 将 MySQL 数据文件存储在 shop1 和 shop2 上。我知道在这种情况下,只有一个节点/MySQL 实例可以处于活动状态,另一个用作热备用。因此,如果 shop1 失败,我会在 shop2 …

failover drbd magento master-slave master-master

7
推荐指数
1
解决办法
4103
查看次数

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

我最近将我的 magento 从 1.5 升级到 1.9,当我将某个产品添加到购物篮时,我开始收到此错误:502 Bad Gateway

var/log/文件夹中没有日志条目: 在此处输入图片说明

因此,我查看了我的 nginx 错误,并在nginx-errors.log 中发现了以下条目:

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 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: …
Run Code Online (Sandbox Code Playgroud)

linux php nginx magento

7
推荐指数
1
解决办法
4万
查看次数

为小型 VPS 优化 MySQL

我正在尝试为一个小型 VPS 优化我的 MySQL 配置。VPS 还运行 NGINX/PHP-FPM 和 Magento;所有这些都限制为 250MB 的 RAM。

这是 MySQL Tuner 的输出...

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.41-3ubuntu12.8
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster 
[--] Data in MyISAM tables: 1M (Tables: 14)
[--] Data in InnoDB tables: 29M (Tables: 301)
[--] Data in MEMORY tables: 1M (Tables: 17)
[!!] Total fragmented tables: …
Run Code Online (Sandbox Code Playgroud)

mysql optimization cache magento

5
推荐指数
1
解决办法
4354
查看次数

使用 Magento 执行 4 个或更多并发请求时 CPU 为 100%

目前我在运行 Magento 的服务器上遇到了问题,它慢得令人难以置信。

这是一个 VPS,上面有一些 Magento 安装用于开发,所以我是唯一一个使用它们的人。当我在 2 秒后执行 4 个请求时,我在 10 秒内完成。缓慢,但仍在我的耐心范围内。但是,当我执行 4 个“并发”请求时(非常快地连续打开 4 个选项卡),所有四个核心都会达到 100% 并在那里停留一分钟。

这怎么可能?

我知道这里有很多可能性,因此也欢迎任何有关如何使 Apache/PHP 服务器运行得更快的提示。

以前它运行得更快,我也试过 APC,但它一直导致问题(PHP 错误,内存池问题),所以我禁用了它。

顺便说一句,Magento 缓存已关闭,编译也已关闭。我知道这会使 Magento 比平时慢,但我认为任何 Magento 安装的 60 秒响应时间都不正常。

虚拟硬件:
4 核和 4096MB RAM
Swap 从未使用(使用 htop 检查)100GB 磁盘空间,其中 10% 正在使用

软件:
Debian 6 DirectAdmin 和 apache custombuild PHP 5.2.17 (CLI)

如果您需要更多信息,请告诉我如何获取,因为我可能不知道如何获取。我知道如何在 linux 中使用命令行以及很多命令的使用,但是我管理服务器的经验有限。

magento cpu-usage

5
推荐指数
1
解决办法
1万
查看次数

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

我需要回收一些磁盘空间,所以我从我的服务器中删除了一个旧的 Magento 数据库。数据库大小约为 16 GB。我很惊讶一旦数据库被删除,它并没有真正释放磁盘空间。

我尝试重新启动 MySQL 服务器,但它仍在占用该空间。

如果重要的话,Magento 数据库会大量使用 innoDB。

我能做些什么来恢复这个磁盘空间吗?

mysql innodb magento

5
推荐指数
1
解决办法
5162
查看次数

mysql 每天在同一时间变得无响应

我的服务器每天都在同一时间停机。我发现问题是由于mysql。

我试过显示进程列表;并发现数据库正在进入睡眠模式。我看到 log_url 表中有很多插入,如下所示

mysql> show processlist;
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| Id    | User          | Host      | db               | Command | Time | State        | Info                                                                                                 |
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| 72962 | sonicsense_db | localhost | sonicsense_db    | Query   |    1 | Sending data | SELECT `log_url`.* FROM `log_url` LIMIT 2381 OFFSET 2992917                                          |
| 74069 | sonicsense_db | localhost | sonicsense_db    | Query   |    4 | Updating     | UPDATE `cron_schedule` SET `job_code` = 'captcha_delete_expired_images', `status` = 'error', `messag |
| 74073 | …
Run Code Online (Sandbox Code Playgroud)

mysql magento memory-usage

5
推荐指数
1
解决办法
6391
查看次数

Solr 搜索 - 无法解析 java.util.Map$Entry

我运行了 Solr 3.6.2 并为 Magento Enterprise 站点的搜索提供支持,并且一切正常,启动时没有错误等。

但是,当尝试访问以下管理页面时:

  • /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 for JSP

PWC6197: An error occurred at line: 41 in the jsp file: /admin/stats.jsp
PWC6199: Generated servlet error:
The type …
Run Code Online (Sandbox Code Playgroud)

java magento solr

5
推荐指数
1
解决办法
1221
查看次数