hmphu/magemulti

类似于 Magento Go 服务的某些功能 :). 此扩展允许您在同一 Magento 代码库上托管多个客户

安装: 14

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 0

开放性问题: 0

类型:magento-module

0.1 2016-11-29 04:28 UTC

This package is auto-updated.

Last update: 2024-09-05 17:42:32 UTC


README

类似于 Magento Go 服务的某些功能 :)

此扩展允许您在同一 Magento 代码库上托管多个客户。每个客户都有自己的 local.xml 和 modules/*.xml 目录。这意味着您可以针对每个客户设置单独的数据库、缓存服务和模块。

I. 安装

通过 modman

modman clone https://github.com/hmphu/magemulti.git

通过 composer

{
    "require": {
        "hmphu/magemulti": "*",
    },
    "repositories": [
        {
            "type": "vcs",
            "url":  "https://github.com/hmphu/magemulti.git"
        }
    ]
}

II. 结构

每个客户将在 clients 目录下拥有独立的 config, media, cache, report, ... 目录。这可以防止文件冲突,并允许您使用单个 CDN 域名。

配置目录

{root}/clients/client1/etc
{root}/clients/client2/etc
...

媒体目录

{root}/clients/client1/media
{root}/clients/client2/media
...

Var 目录

{root}/clients/client1/var
{root}/clients/client1/var/cache
{root}/clients/client1/var/report
{root}/clients/client1/var/...

{root}/clients/client2/var
{root}/clients/client2/var/cache
{root}/clients/client2/var/report
{root}/clients/client2/var/...
...

III. 服务器设置

  1. CLIENT_CODE 环境变量

为了使 Magento 能够使用正确的数据库和客户的文件夹,我不得不修改 index.phpMage.php 文件。这是通过在此存储库中的两个 git 补丁完成的,它将检查 CLIENT_CODE 变量以确定访问的网站是哪个客户。

请参阅 index.php,Mage::app()/Mage::run() 的初始化。

require_once MAGENTO_ROOT . '/app/MageMulti.php';
Mage::run(MageMulti::getRunCode(), MageMulti::getRunType(), MageMulti::getRunOptions());
  1. NGINX 配置
server {
  listen 80;
  server_name foostore.dev;
  root /var/www;
  location ~ .php$ {
    fastcgi_pass  unix:/var/run/php5-fpm.sock;
    fastcgi_param CLIENT_CODE foostore;
  }
  .....
}

这大部分是典型的 Magento Nginx 配置。重要的行是:fastcgi_param CLIENT_CODE foostore;

  1. APACHE 配置
<VirtualHost *:80>
  ServerName foostore.dev
  DocumentRoot /var/www
  SetEnv CLIENT_CODE foostore
</VirtualHost>

这大部分是典型的 Magento Apache 配置。重要的行是:SetEnv CLIENT_CODE foostore

当您设置新域名并访问网站时,它将打开 Magento 安装页面,您可以继续 设置您的 Magento 网站。该模块将在 clients 文件夹下创建新的目录和新的 local.xml 文件

IV. CRON 配置

由于 Magento 需要知道 CLIENT_CODE 才能精确运行站点,因此我不得不创建新的 mcron.phpmcron.sh 文件。这将查找 clients 文件夹中的文件夹,这些文件夹是 CLIENT_CODE

因此,您需要设置 crontab 以运行 mcron.phpmcron.sh 而不是默认的 Magento 文件(它们是 cron.phpcron.sh

示例

*/5 * * * * sh /var/www/mcron.sh

V. 待办事项

  • 测试和 CI
  • Shell 脚本
  • 使其与 Aoe_Scheduler 模块一起工作
  • 用于创建新客户站点的 Bash 脚本