hmphu / magemulti
类似于 Magento Go 服务的某些功能 :). 此扩展允许您在同一 Magento 代码库上托管多个客户
Requires
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. 服务器设置
CLIENT_CODE
环境变量
为了使 Magento 能够使用正确的数据库和客户的文件夹,我不得不修改 index.php
和 Mage.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());
- 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;
- 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.php
和 mcron.sh
文件。这将查找 clients
文件夹中的文件夹,这些文件夹是 CLIENT_CODE
因此,您需要设置 crontab 以运行 mcron.php
和 mcron.sh
而不是默认的 Magento 文件(它们是 cron.php
和 cron.sh
)
示例
*/5 * * * * sh /var/www/mcron.sh
V. 待办事项
- 测试和 CI
- Shell 脚本
- 使其与 Aoe_Scheduler 模块一起工作
- 用于创建新客户站点的 Bash 脚本