Gallery:多站点(Multisite)

来自站长百科
(重定向自Gallery:Multisite
跳转至: 导航、​ 搜索

介绍[ ]

多站点(Multisite)作为G2的一个安装选项,可以节省磁盘空间并使得管理同一服务器上的多个独立G2的安装和升级更加轻松。独立意味着多站点G2不会共享相册,相片,用户数据等。它们均使用各自的数据库及存储目录。

术语[ ]

代码库(codebase) – 代码库是含有gallery2安装文件的目录,大小约若干MB。对于任意数量的多站点安装只需一个代码库就够了。代码库必须是能够通过Internet进行访问的。代码库是所有多站点进行安装的中央位置。如果你想安装一个新的多站点G2,请浏览代码库,然后运行安装程序并在安装程序的多站点安装步骤中选择多站点。

多站点(multisite) – 一个多站点就是一个轻量级的(浓缩的)依赖代码库的G2。一个多站点仅含有6(7)个文件(main.php,index.php,embed.php,upgrade/index.php,lib/support/index.php + config.php(,.htaccess))。

一个G2多站点安装就是一个独立代码库的安装以及不限数量的多站点。

优点[ ]

  • 相对于一般G2来说,多站点最大的优势就在于节省磁盘空间,这是每个Gallery2文件夹都需要的(所需空间根据硬盘分区的簇的大小为50到100 MB不等)。仅单个真正的gallery2文件夹(代码库目录)是必要的,每个多站点只需要几KB的空间(包括所含相片)。
  • 你只需要升级一个代码库即可。一旦代码库为新的G2版本所替换,只要对多站点进行一下访问,它们就会自动开始升级。每个多站点都需要单独地进行升级,但你只需要对它们共同依赖的代码库进行一次升级就够了
  • 多站点之间不会共享用户数据,相册/相片或从用户角度来看的所有不该共享的东西。多站点之间是完全独立的,它们唯一共享的就是同一个代码库。

可以将多站点与multiroot模块进行一下比较。

缺点[ ]

  • 敏感性的可下载插件维护 – 如果某个多站点的管理者通过可下载插件升级了某插件(模块和外观主题)的话,那么其他站点的管理员也必须升级该插件。
  • 所有多站点共享同一套的插件(模块和外观主题)。如果你为某站点创建了某自定义外观主题的话,其他所有站点都必须也使用此外观主题。
  • 在多站点中无选项可以使用本地.tpl覆盖。(复制整个外观主题而不是修改模板。)
  • G2.2之前的版本在多站点文件夹中不含有lib/support/文件夹(可以很简单地进行添加)。
  • 无mod_rewrite自动检测-URL重写模块无法再模块配置中进行自检。

初始安装 – 安装代码库[ ]

在安装任意数量的G2多站点之前,你有必要先获取gallery2应用程序将其置入web服务器中。这就是代码库。

代码库文件夹(默认为"gallery2")必须可以通过web进行访问。代码库接纳所有多站点的所有静态内容(theme.css文件,小图标,gallery标志等)。因此,仅仅可通过局域网访问代码库是不够的,它应该可以通过web被访问。

举例: 你在某文件夹中解压了gallery2应用程序,而安装程序可以通过URL:http://www.example.com/gallery2/install/被访问。 因此相应的文件系统路径就应该是指这个样子的:/var/www/example.com/public_html/gallery2/

如何安装新的多站点[ ]

一旦代码库安装到了web服务器上并可通过web访问后,就可以开始安装任意数量的多站点了。代码库安装程序即是所有新建多站点的中央公用设备。

1. 浏览代码库[ ]

你要安装新的多站点的URL是http://www.example.com/gallery2/

要开始一个新站点的安装,使用web浏览器浏览代码库并进入安装程序,如浏览http://www.example.com/gallery2/install/。

2. 系统检查步骤[ ]

要留意安装程序所推荐的任何设定,尤其是在初次使用安装程序时。这些设定应对代码库和所有多站点都适用。如果你在代码库目录下的.htaccess文件中做改动(如放宽PHP内存限制)的话,那么即使对于不适用于某将被安装的多站点设定,安装程序也会报告"通过"的。

3. 多站点步骤[ ]

在安装类型的步骤中,选择多站点的选项并输入新的G2多站点安装的路径。 例如 /var/www/www.example.com/public_html/。

安装程序需要在此多站点目录下创建四个文件(index.php,main.php,embed.php,upgrade/index.php)。你有两个选择:

  • 修改多站点目录的文件系统权限,这样web服务器就具有读,写和执行的权限了(chmod 777),或
  • 用以上给出的四个文件名创建四个空文件并chmod这些文件的权限为666。

还有一个可选的第五种文件,即lib/support/index.php。安装程序仅当可能时才会写此文件(如果dir为777的话,就一直会有这种可能性;如果你选择自己创建空文件的办法的话,此文件的添加与否完全取决于你的偏好)。

一旦安装程序知道了多站点的目录并具有文件写权限的话,你就可以点击"选择目录(Select Directory)"继续了。接着安装程序将会生成某代码并将其粘贴到文件中去,这样多站点就知道代码库文件的位置了。

如果你完成了此步骤的话,你可以将文件及多站点目录的文件系统权限重新恢复为之前的755(即用户可读,可写,可执行;组及公共则具有可读可执行权限)。

警告:多站点目录下的文件(index.php,main.php,embed.php,upgrade/index.php及 lib/support/index.php)与代码库中的具有相同名称的某些文件是不同的。它们的尺寸稍小些,如果你把它们与代码库中的文件交换使用,结果就是无法运行。

警告:请勿把你的多站点目录当作代码库的目录来输入。因为这会将代码库中的文件替换为较小尺寸的多站点文件,这会导致G2无法运行。如果你不慎执行了此操作的话,请将你下载下来的gallery2应用程序文件重新复制并替换代码库目录下的对应错误文件。

4. 存储安装步骤[ ]

在存储安装步骤中,为各多站点选择一个新的g2data目录。每个多站点都必须具有各自的存储目录。 在我们的例子中,就是/var/www/e-photos.com/g2data/ .

警告:请勿为某已有尚运行的G2(多站点)选择存储目录。如果你为多个多站点选择了相同的存储目录的话,就会对其他多站点造成损害。

5. 数据库安装步骤[ ]

在数据库安装步骤中,为各多站点选择一个新的数据库(或一个新的表格前缀)。每个多站点都需要具有各自的数据库表格。

警告:请勿为多个G2多站点选择相同的数据库配置。如果你为多个(多站点)选择相同的数据库+表格前缀(database + table prefix)的话,就会损坏已有的多站点。


如果你具有mysql的shell访问权限的话,就以数据库根目录用户的身份登入mysql,接着使用如下命令新建一个mysql数据库:

CREATE DATABASE dbname; GRANT ALL ON dbname.* TO username@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;

当然,你要将dbname,username和password替换成适当的数值。

6. 完成剩下的安装步骤[ ]

完成剩余的安装步骤来完成此次安装。

如何升级一个多站点[ ]

早做备份,经常备份。当然在升级之前也要做备份。

1. 升级代码库[ ]

按照一般的升级指导来升级你的代码库(gallery2/文件夹下的)文件。

注: 你无需运行代码库的升级向导而只需将应用程序我文件(gallery2/文件夹)替换为最新发布的版本即可。

简单说来就是: 获取最新的代码将其上传到web服务器并将其解压并覆盖到已有的代码库中(或使用svn而不进行代码升级)。

改变代码库目录 对于某些人来说,他们更希望能够依靠第二个代码库来逐个地对多站点实体进行升级。这种升级方案将减少其他多站点实体的故障时间。依靠一个单独的代码库进行升级,你必须对multisite的config.php中galleryBaseUrl的值进行编辑并编辑embed.php,index.php,main.php和upgrade/index.php中的必要路径使其指向新的代码库。

警告:如果你使用PHP加速器/缓存(如Turk mmCache,Ioncube PHPA,eAccelerator,Zend Studio等)的话,请清除加速器的缓存。忽略此步骤的话有时会导致在升级过程中或升级完成之后出现问题。

2. 将每个多站点都升级[ ]

一旦代码库为新的应用程序文件所替换,当你浏览某个多站点时升级过程就会自动开始。你需要分别将各个多站点的升级过程都如是激活。

  • 1. 当提示时,为数据做好备份(g2data文件夹和数据库)!
  • 2. 浏览升级程序并遵照指导进行操作。
  • 3. 现在新版本的Gallery2就整装待发了。

案例[ ]

Internet服务提供商(ISP)[ ]

ISP为其客户提供G2。每个客户都拥有各自的domain或home:

:代码库无须运行一个实时的gallery2应用程序。因此,它只是作为应用程序的中央存储库和中央安装工具并且接纳多站点的静态内容。

为好友进行G2托管[ ]

在你的domain中为好友进行G2托管:

:为各多站点使用不同的数据库或不同的表格前缀。每个多站点都需要有各自的数据库表格。

:此情况下,代码库也被用作一个G2安装。与多站点不同,代码库是一个普通的G2安装,也被用作同一服务器上多站点安装的安装工具。

管理及维护[ ]

插件管理[ ]

  • 所有的多站点都共享同一套模块和外观主题(插件)。
  • 要允许多站点的管理员在服务器上安装(转移或复制)新插件的话,请修改代码库的 modules/themes/文件夹的权限,这样web服务器才能对这些文件夹进行写操作。
  • 要允许多站点的管理员将现有插件升级到更新的版本的话,将modules/themes/文件夹下所有的文件和文件夹的权限设置为web服务器可写。
  • 要组织多站点的管理员添加新插件或更新现有插件的话,请确保modules/themes/文件夹为不可写。
  • 多站点的管理者可以像普通G2的管理员一样打开站点管理(Site Admin) -> 插件(Plugins)以及站点管理(Site Admin) -> 插件(Plugins) -> 获取更多插件(Get More Plugins)
  • 唯一不同之处在于,多站点的管理员永远无法删除一个插件。他们只被允许进行插件的安装,卸载,激活,禁用和配置的操作。

如何将一个独立的G2转为一个多站点[ ]

Sections which need expansion (i.e. more detail, clarification, etc...) 这些指导的来源:http://gallery.menalto.com/node/35733#comment-130428

仅当你确实希望将已有g2与代码库分离开--即将代码库移至另一个目录或将已有的G2移植新的目录—你需要做的就是按照以下步骤进行操作。

  • 数据库:
    • 你当然可以保留已有的数据库。
  • URL重写模块(短url):
    • 如果你使用url重写模块,请在坐任何修改之前禁用它并删除已有的.htaccess文件。在完成整个过程之后你可以重新对这些模块进行安装或激活。
  • 存储目录(g2data):
    • 如果你希望将g2data dir移动到另一个目录,请作为第一步来操作。接着请确保g2data文件夹及所有子目录和文件的权限的设置正确(chmod -R 777 g2datachown -R webserveruser g2data)。

A) 保持文件夹中安装的位置不变,将gallery2文件移动到另一个目录:

  1. 将config.php复制到另一个文件夹中,这样你就不会忘记/丢失你的数据库连接信息了。
  2. 将gallery2目录移至新的位置。如果g2data目录位于gallery2目录之下的话,a) 请勿将其与gallery2目录一起进行移动并b)为未来安装起见,将其置于web根目录之上为佳(只有这样G2的图片防火墙才能运行(安全性))。确保移动操作完成之后的原安装文件夹为空。
  3. 浏览新的gallery2所在的目录并启动安装程序(gallery2/install/index.php)。
  4. 在安装类型步骤中,选择多站点并输入G2原先所在目录的文件系统路径。有必要的话,可以创建一个新的(为空的)gallery2目录。权限chmod为777,好似安装一个普通多站点一样。
  5. 在存储目录步骤中,输入已有g2data目录的路径。它可能已处于适当的位置了(在这些步骤进行的准备阶段就已指出)。
  6. 在数据库安装步骤中,输入以前的数据库连接信息。如果不慎忘记的话,可以参看之前做好备份的复本config.php。点击保存。
    • 应会显示3个选项:清除,保存和"重使用现有数据库表格"。请选择"重使用(Reuse)"选项!
  7. 在管理员用户步骤中,点击保存。
  8. 在配置文件步骤中,会显示已成功创建了配置文件。
  9. 此时你就可以停止安装进程了。你的多站点此刻应可正常运作了。


B) 保持文件夹中的代码库位置不变,将已有安装移动到一个新的目录:

1) 以下过程中的大部分步骤与一个正常多站点的安装极为相像。你的代码库已在适当的位置,因为你现有的gallery2就如一个代码库。 使用web浏览器浏览gallery2/install/index.php页面
2) 在安装类型步骤中,选择多站点并为gallery2安装的新目录选择文件系统路径。有必要的话,尅创建一个新的(为空的)文件夹并为其正确进行chmod。继续到下一步。
3) 在存储目录步骤中,输入已有g2data目录的路径,并继续到下一步。
4) 在数据库安装步骤中,为现有g2数据库输入以前的数据库连接信息。点击保存,和"重使用数据库表格"。
5) 在管理员用户步骤中,点击保存。
6) 在创建配置文件步骤中,会显示已成功创建了配置文件。 7) 此时你就可以停止安装进程了。你的多站点此刻应可正常运作了。
8) 删除代码库目录(请勿删除新建多站点目录下的config.php和.htaccess文件)下的config.php和.htaccess文件(如果它们存在的话)。

C) 此部分标题未知!
1) 将config.php复制到另一个文件夹中,这样你就不会忘记/丢失你的数据库连接信息了。如果你使用URL重写模块的话,请确保.htaccess文件没有丢失并将其复制到你的多站点home中。如果你拿不准的话,就在做修改之前禁用此url重写模块。稍后可以重新激活它的。
2) 将gallery2目录移至新的位置。如果g2data目录位于gallery2目录之下的话,a) 请勿将其与gallery2目录一起进行移动并b)为未来安装起见,将其置于web根目录之上为佳(只有这样G2的图片防火墙才能运行(安全性))。 确保移动操作完成之后的原安装文件夹为空。
3) 浏览新的gallery2所在的目录并启动安装程序(gallery2/install/index.php)。
4) 在安装类型步骤中,选择多站点并输入G2原先所在目录的文件系统路径。有必要的话,可以创建一个新的(为空的)gallery2目录。权限chmod为777,好似安装一个普通多站点一样。.
继续到下一步。
5) 在存储目录步骤中,输入已有g2data目录的路径。它可能已处于适当的位置了(在这些步骤进行的准备阶段就已指出)。继续到下一步。
6) 在数据库安装步骤中,输入以前的数据库连接信息。如果不慎忘记的话,可以参看之前做好备份的复本config.php。点击保存。
应会显示3个选项:清除,保存和"重使用现有数据库表格"。请选择"重使用(Reuse)"选项!
7) 在管理员用户步骤中,点击保存。
8) 在创建配置文件步骤中,会显示已成功创建了配置文件。
9) 此时你就可以停止安装进程了。你的多站点此刻应可正常运作了。

如何将一个多站点Gallery转成一个独立的Gallery[ ]

这是很直截了当的。

  1. 为multisite gallery/文件夹下的config.php文件夹做好备份(即将其复制到计算机中)
  2. 如果在你的multisite gallery/文件夹下有一个.htaccess文件(在你选择显示隐藏文件之前,此文件在FTP客户端中处于隐藏状态)的话,也为其做一个备份
  3. 如果多站点的存储文件夹处于gallery/文件夹之下的话,将其移动到类似gallery/文件夹的上一级的位置
  4. 现在就可以删除multisite gallery/文件夹了
  5. 将codebase gallery2/文件夹复制到multisite gallery/文件夹原先所在的位置
  6. 复制config.php的备份(以及.htaccess的备份)至新的gallery/文件夹之下
  7. 编辑config.php文件:找到此行:$gallery->setConfig('galleryBaseUrl', ...); (请不要与'baseUri'相混淆了)并将逗号之后的部分修改为'' (即$gallery->setConfig('galleryBaseUrl', '');)。 保存config.php文件夹并将其置入multisite gallery/文件夹下。
  8. 如果在前面的步骤中指示你必须对multisite g2data/文件夹做移动的话,就请将此文件夹置于其原先所在的位置。
  9. 完成了。你的多站点现在就是一独立的Gallery了。如果没有其他的多站点的话,你可以将codebase gallery2/文件夹删除。
  • 如果当尝试删除旧的多站点文件夹及其下文件时出现文件系统权限方面的问题的话,请尝试将文件权限先chmod为777。如果其他办法都失败的话,请要求webhost帮你移除此文件夹。另见Gallery中进行chmod的工具(对Gallery2.2版本之前安装的多站点不可用)。

Gallery多站点的安装及迁移/升级。[ ]

如果你已有一个Gallery1相册的话,第一件要做的事就是确保现有的Gallery站点已更新到最新的G1版本。 http://sourceforge.net/project/showfiles.php?group_id=7130&package_id=7239&release_id=358363

  1. 备份你的gallery相册。
  2. 没有下载备份的话就请先进行下载。
  3. 在你的相册中运行孤立查找脚本(find orphans script)。修复所找到的任何问题。
  4. 将你的gallery文件夹重命名为"g1"。
  5. 打开新的g1位置,并对config.php文件进行编辑,这样你的gallery就能在新的位置运行了。(即将旧位置文件夹名称修改为新的g1文件夹名称)
  6. 对g1相册中的每个相册都进行至少一次的访问以确保其能够正常运行。如果出问题的话就修复它(们)。

接下来要做的就是安装一个Gallery 2的"标准安装"来作为你所有 相册的主代码库。指导是简单并直截了当的,如 Gallery 2中运行安装程序一般。

注意如果此安装不打算作为gallery自身所用的话,就请勿安装所有的这些模块。参见以下的第九步中来看看不能这么做的原因。一旦你安装完了一个主代码库,就请至少创建单个的至少含有一张相片(可通过web查看)的相册来进行测试。如果没有问题的话就可以继续了。

一旦完成了就回到G2安装程序页面并重新运行它。

即:your_domain/html/gallery2/install/

在第三步选择多站点类型并:

1.) 在新的gallery中插入路径。这在同一服务器上为公共可查看的。

即: another_domain/html/gallery

2.) 在点击下一步之前,确保此gallery文件夹存在并且其权限设置为777。

mkdir another_domain/html/gallery
chmod 777 another_domain/html/gallery

3.) 在公共可查看的html文件夹外创建"g2data"文件夹。 如果是'another_domain/g2data'。请确保将其chmod为777。

mkdir another_domain/g2data
chmod 777 another_domain/g2data

4.) 点击安装程序中的下一步并输入你所创建的g2data文件夹的路径,点击下一步。
5.) 在安装程序的此第五个步骤中你将要输入数据库连接信息。

提醒一下。如果你是由Gallery1.5.1升级上来的话,你就需要为Gallery2创建一个数据库
创建一个数据库供其使用。因此有必要的话,现在就做好。
如果你已在使用Gallery 2的话,就为其做好备份!


注: 你可以让多个gallery使用同一个数据库。如果你想这么做的话,就必须对表格前缀进行修改以防止产生冲突。

即为 'your_domain'你可以
"Table Prefix: g2_your_domain_
 接着为'another_domain'你可以 
"Table Prefix: g2_another_domain_

6-8.) 这些很简单,照着屏幕上显示的指示做就可以了。
9.) 选择你要安装的模块。

注意这是独立于主安装之外的,因此对于
此新的"子"安装就必须进行重新安装。在gallery管理页面中,这些模块可以
被安装,卸载,激活以及稍后被禁用。

10-11.) 很简单,照着做很快就完成了。

要完成剩余升级部分。
打开你新的gallery页面。
以管理员身份登录。
通过左手边的链接来到导入页面。如果没有看到此链接的话,就打开模块控制(Modules Control)接着安装并激活此模块。
它会要求你提供旧相册的路径。它会对此路径进行检查,一切都没问题的话就会询问你要导入的内容。

注意,如果你的相册过大,那么导入就可能会失败,尤其是在创建缩略图时。
这是由于内存限制所致。至少在导入中建立所有缩略图并通过
维护会失败都是此原因所致。但这并没有太大影响的,因为
所有相片在初次被查看时,缩略图就会被建立。

导入相片就完成了。
检查以确保你的相片被上传了。在一切圆满完成之后,你就可以将旧的g1从服务器上移除了。 有了相册备份这些都是轻而易举的事情!

祝你愉快!

.: Flipc

缺失的特点[ ]

某些特点缺失不可用

  • 自动化安装过程的安装脚本。例如,一个命令行界面PHP脚本接受类似多站点目录路径,存储目录路径,数据库配置以及待安装模块列表之类的参数。
  • 中央升级过程/脚本/管理器进行一次性多个/所有多站点的升级。
    • 注:如其他G2多站点一样,你已经升级了多站点。但通过点击单个链接或运行单个脚本就能同时升级多个多站点会更棒的,不是吗?: )
  • URL 重写无法测试mod_rewrite是否能用于某个多站点的地址,这是由于没有能够被测试所依赖的文件。你可以尝试激活此模块,但如果出现了坏URL地址的问题的话,就得禁用URL重写模块。即使对代码库的测试通过了也无法保证mod_rewrite模块对多站点也同样有效。