Gallery:常见问题

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

获取Gallery2[ ]

如何在我的WEB服务器上安装Gallery2?[ ]

将Gallery2的文件复制到WEB服务器上的一个目录之下。此步骤包含有若干种方法:

  • 最好的情况就是,你可以使用subversion直接在服务器上安装和更新Gallery2。但此方法的前提是你必须具有对服务器命令行的访问权限(ssh/telnet)。
  • 还有一种最好的方法就是使用FTP或其它客户端软件上传gallery2.tar.gz或gallery2.zip归档。上传完成后在命令行(ssh/telnet)中或使用小型PHP脚本解压归档文件,解压命令的对应关系是:.tar.gz归档文件对应tar -xzf gallery2.tar.gz,而.zip归档文件对应unzip gallery2.zip。某些网络托管公司提供一个带有web文件浏览器的控制面板,它就可以用来解压归档文件。如果可以的话,此方法值得一试。
  • 如果上述两种办法都没有的话,你就必须使用FTP程序将整个Gallery2归档文件的内容上传到web服务器上了。此过程相当耗时而且有可能会产生错误。在这种情况下,请在安装程序的系统检查步骤时特别留心,以确保没有文件丢失或被篡改。

拿到G2后,我该如何开始?[ ]

最好的起步点就是/gallery2/README.html(自述页面)。如果你想跳过此步并开始安装的话,你可以将浏览器指向/gallery2/install/。如果这是你第一次进行安装的话,最好访问一下README.html页面阅读一下数据库安装的相关指导。

安装G2有什么特别的要求吗?[ ]

Gallery2很多方面的要求与G1是一样的。一个WEB服务器,php和一些图像处理程序,你可能知道会需要这些东西…但G2要求一样新玩意儿,那就是数据库。目前,数据库的支持有MySQL 3,4,PostgreSQL和Oracle 9/10。其它的要求当然就是WEB服务器(apache,iis,zeus?),php(4或5)和一些图像处理程序包(netpbm,imagemagick,ffmpeg以及gd)。还有就是,你得有用来存放图片的地儿: )

我使用Fedora Core 6时无法在gallery中上传或查看图片。[ ]

目前在x86和x86_64下,GaphicsMagick整合包在Fedore Core 6上有些许瑕疵,创建缩略图的过程会导致分段错误。此Fedora的BUG有相关的细节参考信息(BugID 237803)。此FAQ页面将会在Fedora开发团队对此BUG进行评估并修正后进行相应地更新。这也会在Fedora Core 7中进行测试,并会适当地进行相应更新。

如何获取最新版本的Gallery2?[ ]

你可以从sourceforge下载页面中下载Gallery2最新的官方版本。官方发布整合包的频次一年顶多两次,因此它们可能不包含最新提交的特点和改进。
有两种方法来始终保持更新度,使用nightly builds或Subversion。
Chetan SarvaJesse MullanGallery2.EU都提供了nightly builds。
可以在此处查看有关Subversion的使用指导。你也可以在此找到有关TortoiseSVN的使用指导。

如需获取Gallery的SVN版本请参见下一大项。

我应该使用nightly builds还是Subversion?[ ]

这完全取决于你的偏好了。不过如果你觉得对Subversion很适应且不介意深入学习的话,我建议使用它。一旦你理解了Subversion的源码结构,更新之类的操作就如同打开G2目录输如"svn update"一样轻而易举了。

Subversion太占磁盘空间了![ ]

Subversion为每个文件都保留一个备份,因此类似"svn status"和"svn diff"的命令运行起来很快,而且不需要网络。此方式的确加倍了磁盘占有率…如果你偏好"svn update"的便捷,不怎么使用status/diff的话,那就为此特色投一票,将来subversion也许会支持的。就现在的情况来说,我们提供一个名为svnSlim的脚本。

如何升级Gallery2?[ ]

参见:Gallery 2的升级

如何在我的网站维护或升级时禁止用户进行访问?[ ]

Gallery 2.1+ 具有特有的"维护模式(Maintenance mode)"。使用文本编辑器编辑你的config.php文件并对照此部分。它含有相关打开此模式的指导。实例设定如下(选用其中一行即可):

 $gallery->setConfig('mode.maintenance', true);
 $gallery->setConfig('mode.maintenance', '/maintenance.html');
 $gallery->setConfig('mode.maintenance', 'http://myothersite.com/');

而网站管理者仍可以在维护模式下使用各类应用程序。

典型的升级步骤:

  1. 启用维护模式;
  2. 将新代码置入相应位置;
  3. 以管理员身份浏览网站,确保万无一失;
  4. 激活或配置任何你需要使用的新的模块/外观主题等;
  5. 关闭维护模式。

有关开发的特别说明[ ]

我很希望此特点能为G2所具有,这在计划中吗?[ ]

此特点有可能在计划之中。参看被请求的特点一览表。 还可以在sourceforge中参看有关的特点请求。如果你的请求没有见于其中,你可以在sourceforge上发表该特点请求,或者你可以在G2开发论坛上开一个关于该特点的讨论贴。但如果你的请求已在列表之中,那么它可能需要很久才能付诸实现。因此,如果你或你所认识的人可以帮助我们进行G2的开发改进的话,还有请你们的协助!

我想自己编写模块,可以从哪里获得一些帮助呢?[ ]

你可以从G2开发初学者工具包。在此你可以获知我们团队的工作方式及从何处能获取必要的资料。第一个链接是G2开发者指南,这是你开始之前必读的内容。尽管并非面面俱到甚至有些过时的信息在里面,不过你读过之后,应该能大致"了解"我们的架构了。所有类别的API是使用phpdoc在代码中进行自解释(self-documented)的,它被解压至G2 API资料中(初学者工具包里的最后一个链接)。 如果你使用Windows并困扰于Makefiles的生成的话,可以看看virshu的如何 在Windows上建立Gallery2

如何将G2整合到我的网站中去?[ ]

就基本的整合而言,你可以编辑外观主题模板来在页面的页头/页脚/菜单中显示Gallery2。 请参看可视化整合指导以及外观主题模板的相关资料。

就应用程序级的整合(嵌入的G2)而言,请参看整合相关指导嵌入及整合论坛版块来看看现有的整合,或是讨论你的看法和问题。

我有linux编译方面的经历,而且曾注意到一些makefiles和其它看起来需要进行编译的东西…G2中有这个必要吗?[ ]

Makefiles只是对gallery2模块开发者而言的。如果你只是单纯地使用G2,就没有必要"编译"任何东西。 对开发者而言,Makefiles将繁琐的工作自动化了,比如:

1) 从源语言文件(.po)生成编译过的翻译文件(.mo),
2) 从实体定义生成数据库架构, 
3) 生成界面以访问实体成员。 

如何"删除" G2的数据?如何能够简便地清除/g2data和数据库?[ ]

如果你是手动删除数据库的,或某些文件你不可删除(比如,它们为web服务器用户所有)的话,你可能需要看看Bharat的清除脚本。你也可以将浏览器指向/gallery2/lib/support/或/gallery2/lib/test/tools,前者除dev包之外的任何包,后者为dev包的一部分。

G2安装程序也可以"清除"g2data目录。即,它会移除所有内容并再次添加进基本的结构,其下仅有空的子目录。如果是这样的话,你要确保g2data目录下有一个versions.dat文件,接着继续到数据库安装步骤(Database Setup Step) (第五步),点击保存后,你就应该能看到"清除"选项了。

Gallery2的一般常见问题[ ]

G2可以在PHP安全模式下运行吗?[ ]

Gallery无法再安全模式下运行。你可以参看G2开发论坛的置顶贴中有关的深入探讨。还可以参看这里这里来看看让G2运行于安全模式的相关尝试。总之,他们打算让G2先运行,如果可以在安全模式下运行,或是能够经过简单的修改就能在安全模式下运行的话,那早就可以了。

那么何为PHP安全模式呢?就官方的[PHP http://php.net/features.safe-mode 安全模式相关资料]来看:"PHP安全模式尝试解决共享服务器安全性方面的问题。就结构上来说,在PHP层面解决此问题是欠妥的。但是对web服务器和OS的取舍就不太现实了,因此很多人,尤其是ISP用户,目前使用的是安全模式。"
如果你不知道什么是PHP或如何关闭安全模式的话,那么你就不太适合负责web服务器上Gallery的托管了。如果是这样的话,请联系你的webhost/ 服务器管理员来解决问题。

为何我不能上传大文件(1MB或2MB的文件)?[ ]

上传文件大小的限制不是由Gallery2决定的,而是PHP/web服务器的配置。Craig Goranson发了一份很有信息量的(但可惜此文主要针对Gallery1)邮件,就是关于如何解决此问题的。Marcel Beemster则将此文升华到了Gallery2的范畴,可以参见他的blog

简单地说就是:管理员可以改变php.ini文件(PHP配置文件)中的upload_max_filesizepost_max_size 指令。你还可以在一个.htaccess文件中尝试覆盖系统默认设定。举个例子,你可将下面的句行加入gallery2/文件夹下的.htaccess文件中,这样就可以设置上传限制最大为10MB:

 php_value post_max_size 10M
 php_value upload_max_filesize 10M

这会导致在所有Gallery页面中出现"内部服务器错误"(error status 500))。如果是在作出上面的改变之后出现此错误的话,请移除上述作出的改变。因为这表明你的webhost不准许在.htaccess中做这样的改变。

对某些用户有效的另外的办法:在gallery2/文件夹下添加一个php.ini文件,含有如下内容(请注意这里的区别,在此我们用的是= 而没有php_value):

 post_max_size = 12M
 upload_max_filesize = 12M

此方法有可能奏效,但也可能无效。你可以浏览add items -> from browser page来检查一下这些改动是否改变了上传限制。

将"memory_limit ="的值设定稍大一些也可能有效。注意memory_limit没必要超过上传文件的大小。当使用GD作为图片工具包模块时,memory_limit所起的作用就更大了。相关此话题的更多信息可以在其它的常见问题中找到。

如果你使用的是Apache 2,尤其是使用类似RedHat操作系统时,你有必要编辑一下指令LimitRequestBody此帖中有相关描述。将此指令设定为0(即LimitRequestBody 0),这将允许你(在达到upload_max_filesize 和/或post_max_siz之前—从上面的email链接中可获取更多信息)上传任意大小的文件。

Dreamhost的用户(也可能是其它主机用户)应当查找相应的指导来完成此事。就Dreamhost来说,他们提供一个wiki页面,用来具体描述解决办法,可以参看这里。我个人进行了测试,实际可行。这个办法说到底就是创建一个cgi-bin目录,复制cgi php处理器并将其设定为你默认的php处理器。他们也指导如何创建一个脚本用以保持php.ini和php.cgi的更新,但需要使用的你设定而不是他们的。

还有一种办法,就是使用ftp添加一个本地服务器上的文件夹,使用"Add Item" -> "From Local Server"选项。你可能需要重建该项目的缩略图。

PHP memory_limit – 为何出现这的错误:被允许的XxxB的存储容量被耗尽?[ ]

这说明PHP可访问的可用记忆濒临枯竭。在php.ini中有一个名为memory_limit的配置变量,默认设置为8MB。解决方法就是编辑php.ini中的这个变量,为其设置一个稍大的值(稍后需要重启Apache)。如果你无权访问php.ini,你可以在gallery2文件夹下的.htaccess文件中加入以下语句。一般来说,你必须具备管理员身份才能够访问php.ini并进行修改。如果不存在这么一个.htaccess文件,你可以自己创建一个(很简单,将一个文本文档命名为'.htaccess'即可)。

php_value memory_limit [新的存储容量限制]

若要将其改为24 MB,写为:

php_value memory_limit 24M

如果上述的修改.htaccess的办法不奏效,或添加完此行后发生内部服务器错误的话,请将此行语句从.htaccess中移除。另外,你可以尝试在nstall/index.php和main.php中的'<?php '之后添加以下的语句,以此来改变memory_limit:

ini_set("memory_limit","32M");

如果在phpinfo页面中无法找到"memory_limit"这一参量的话,那么就表明所有PHP/Web服务器进程都受限于所谓的按一个进程(分配的)最大记忆容量限制。如果是这样的话,你就得找一个管理员来帮你修改限制。在linux/unix中,你可以在shell中通过以下语句检查该限制:

ulimit -a

Or with PHP with a script check.php

<?php print system('ulimit -a'); ?>

gallery remote可用于G2吗?[ ]

应该是可以的,将gallery remote指向Gallery的基础URL。比如,我会将其指向 "http://my.gallery.domain/gallery2/"

注意:Gallery Remote不能用于Gallery 2.2.1 – iPhotoToGallery目前也不行...

我可以将G1升级为G2吗?[ ]

可以。基本上只要安装和配置好一个Gallery2复本即可,接着你就可以使用migration module(迁移模块)将所有Gallery1的数据(包括有用户,相册,相片和元数据)导入到Gallery 2中。此方法将在Gallery2中建立完整的数据复本,因此你可以在此操作完成之后删除Gallery1安装。它甚至会提供mod_rewrite 规则以使得你Gallery1中所有旧的url归位到Gallery2中正确的位置上。如果磁盘空间很紧张,你也可以分批转移相册数据。

如果有任何疑问的话,可以参考一下 有关迁移的详细指南

何处可以找到用于G2的NetPBM,jhead或ImageMagick二进制?[ ]

你可以在Gallery下载页面中找到NetPBM和jhead的链接。而ImageMagick的二进制可以在这里找到。一键安装完成后,在配置Gallery的时候,默认是将ImageMagick二进制安装在/usr/bin上的。

何处有适用于zip cart 模块的unzip/zip二进制?[ ]

你可以在这里找到它们,但切记这是不受Gallery管辖的第三方网站。

我自定义了一个*.tpl文件,稍后删除了…但我所作的自定义效果却仍然保留着。有什么地方不对吗?[ ]

如果你移除了一个local/*.tpl 文件,因smarty caching它不会再还原为*.tpl文件了。你可以手动清除文件系统中的smarty缓存来将其还原为以前的*.tpl文件;达成办法包括有:在Site Admin/Maintenance中运行Flush Template任务,使用/lib/support/ page中的缓存维护或操作'touch filename.tpl'以还原到上次修改之前的状态。

如何将存储文件夹移动到另一路径下?[ ]

这里有一个手把手指导:

  1. 在移动目录之前,请先考虑一下安全性的各方面问题,并确保此移动后存储文件夹在web根目录之外。
  2. 移动存储文件夹,如使用FTP程序的移动/重命名功能,或webhost管理面板和shell中的文件浏览器。
  3. 确认该目录和其中的文件权限为web服务器所有或可写(chmod 777)
  4. 手动编辑config.php。更新以下句行:
$gallery->setConfig('data.gallery.base', 'some/path'); 
(将'some/path'替换为正确值)

保存config.php,完成。

如何将Gallery的安装从一个文件夹移动到另一个中?[ ]

这里有一个手把手指导:

  1. 如果重写模块是活动的请禁用并卸载之(不仅要禁用重写规则,还要在site admin -> modules中禁用和删除整个模块(以及之后版本中的plugin))。
  2. 移动gallery文件夹(使用ftp程序,文件浏览器或shell,对其进行移动/重命名)。如果你选择是的将gallery从一个次目录移动到网站根目录下的话,请将gallery目录下所有的文件和目录移动移动到web根目录下。
  3. 手动编辑config.php。如果g2data在gallery目录下,而你进行了移动的话,请更新以下句行:
$gallery->setConfig('data.gallery.base', 'some/path'); 

如果使用的是multisite安装,你还需要更新:

$gallery->setConfig('galleryBaseUrl', );

保存config.php,完成。

如果你使用XCache或其它php加速器,需要先清除加速器缓存才能使新设定生效。旧的安装路径在被清除之前仍会保留。

如何将Gallery的安装从一个服务器移动到另一个中?[ ]

这里有一个手把手指导:

  1. 为安装进行备份
  2. 将老服务器上的G2版本升级到将在新服务器上安装的G2版本。
  3. 如果url重写模块处于活动状态,将其禁用并卸载。因为它会在执行移动之后生成不正确的url。
  4. 备份原host上的G2。备份数据库g2data文件夹。
  5. 复制g2data文件夹并将mysql数据库导入到新的host上。有必要的话,你可以跳过g2data/locks目录的复制这一步。
  6. 如果你使用MySQL并从windows基础的服务器转移到*nix(unix,linux...)基础的服务器,你必须将每个数据库表格的名称由lower case(如g2_albumitem)改为case-sensitive (此例就是g2_AlbumItem)。参见脚本文件:CaseSensitiveTables.zip来使此过程稍微简便一些。
  7. 在新的host中安装gallery2代码(解压gallery2.tar.gz/zip)。其版本应与旧host上的最后使用的G2版本相同(即执行第二步的原因)。
  8. 除非使用了php cgi + suexec,请要求网络托管方为你递归地修改g2data dir的所有权 (即所有文件和文件夹)给web服务器用户。如果你不明白的话,可以直接将其托付给网络托管方。而webhost只需做这么一次操作,因此他们没理由不帮一把的。如果他们没有这么做的话,请确保web服务器用户能够写/删除此目录下的文件(chmod 777)。
  9. 不要将config.php从旧host中复制到新host中,除非你愿意手动进行编辑。其实更简单的办法就是在newhost/gallery/install/中运行安装程序。请确定在数据库相关的步骤中选择了"重新使用已有数据库表格"。在适当的步骤中,将安装程序指向g2data文件夹(此时不为空),并完成此安装程序。如果你选择前面的复制config.php操作,而不是运行安装程序的话,你必须手动修改:
    • g2data的路径
    • galleryId(位于config.php的底部)
    • 必要的话可以修改数据库名称/用户
  10. 打开G2站点管理(Site Admin)并根据需要修改所有的路径。 imagemagick,zip,netpbm... 等所有依赖外部程序的模块必须进行测试和重新配置。另外还要确保G2的邮件功能在新host上仍能起效。

如何将G2中的数据导入到另一个中?[ ]

很遗憾,现在还没有工具用于G2安装之间的数据导出/导入。但有其他的办法可以达到此目的。

  • 如果在目标服务器上尚无G2安装,请复制已有的G2安装至目标服务器上。服务器间G2移动的相关信息可以参见常见问题(FAQ)的解答。
  • 如果目标G2安装是空的或含有很少的数据,我们建议将目标G2安装完全移除,接着将源G2安装复制到目标服务器,最后添加之前的相册数据,你可以手动添加或使用递归式的"自本地服务器(From Local Server)"的方法。
  • 如果源和目标G2安装都已含有很多数据了,你可以只导入相册/ 相片文件。描述,关键词,用户数据等就会被抛弃了,但导入的所有相册及项目的结构是正确的,这就足够了。同时,你可以只导入选定的相册并定义目标父族相册:复制源G2安装的g2data/albums/ directory到目标G2的某目录之下(不过不能是g2data/目录)。在目标G2中,打开"Site Admin" -> "Web/Server"并将/path/to/source/g2data/albums/目录设置为本地服务器上传路径。当然,实际的路径可能跟此用以举例的路径不一样。然后回到目标G2的顶层相册,点击"add item" -> "From Local Server"并选择刚刚在站点管理中输入的路径。选择你要导入的相册并开始此过程。它会递归式地添加所有相册/相片,即,包含所有子相册等。一旦此过程完成了,你就可以将目标服务器上的/path/to/source/g2data.albums/ 文件夹移除。

为什么随机图片或随机封面不遵循权限设置?如果这样的话,我私人相册中的图片如何得以显示?[ ]

权限是在一个项目接一个项目的基础上处理的,而不是在一个相册接一个相册的基础上。"album01"是私密的,并不意味着"album01/album02/image3"也是私密的。初衷就是如此设计的。但问题是界面中没有提及或对其进行任何解释。不过在未来会对权限UI进行改进的。

我使用NFS但Gallery无法运作,如何解决?[ ]

默认情况下Gallery2使用flock进行locking,而据悉,这在NFS中无法运作。你可以打开Site Admin/General然后调整为数据库locking即可。

是我的臆想吗,为什么我觉得G2比G1要慢呢?[ ]

你的直觉也并非完全是臆想。G2在三个主要区域的速度的确是比G1要慢。 Gallery2用以存储的是数据库。这就意味着,在细枝末节的操作都需要与数据库沟通并得到回应才能完成。相比较而言,Gallery1用以存储的是相当简单的文件系统,它由此读取所有的数据,然后再进行操作。或许拿3年前的硬件来支持小的Gallery安装,所产生的对Gallery1的感觉是稍快一些。但是,你接着就会发现,当5到10KB的相片登上舞台的时候,Gallery1就不是那么能屈能伸了,此时Gallery2的效率则更为突出。数据库的使用也允许了其他应用程序与Gallery数据的互动,这明显要比Gallery1的专有数据格式要有优势的多了。

Gallery2提供完整的图片安全性保障。比如你限制了一张照片的访问权限,外人就无法轻易看到了。而G1则只是为每张相片指定一个url,外人只要知道这个url地址就能随意访问浏览。但是G2如此的安全性肯定会影响性能的。我们正在探索各种方法来降低这种性能折损,可能会包括,比如允许你降低或移除此安全门槛来提升性能。

相对于G1来说,G2是一个更为庞大的框架。G2设计初衷就是要体现无以伦比的灵活性和可维持性。这样的结果就是需要更多的代码,这是没有办法的事情,这是有PHP的特性导致的。如此而来,页面的读取速度就会稍微减慢了。不过,这也就意味着如eaccelerator,ionCube PHPATurcke MMCachePear::APCXCache和Zend Accelerator(收费)这样的PHP加速器可能会被用于G2,这样加以合理地利用的话可以实质上地实现性能的提升。如果可以的话(即你完全掌控服务器上PHP安装),我们推荐此方法。eAccelerator Windows 下载.

性能对我们来说是很重要的。我们介绍了重要部分的缓冲措施,并着重探究上述问题的解决办法,最终提高性能表现。其次才是创造一个全面的产品,不过随着探究工作的完善和官方发布日期的推进,新产品的研发还是会成为我们开发团队首要目标的。

请关注Gallery2 性能调校技巧,将来肯定会有新的技巧提供给用户的。

:已知2.0版本中存在一个BUG,即当你自Gallery1导入大量相册的时候,权限表格优化可能会失败,最终导致性能颇低(读取页面需要2到3+ 秒多才能有反应)。如果出现了这种情况,你可以进行修复。即在G2中每处的权限。你可能需要多次进行此操作,因为每次修改一个权限,都会有50%的几率对权限表格进行重新优化。如果你需要事前/事后检查,你可以在权限变更前后运行此查询

  select count(*) from g2_AccessMap;

如果行数显著下降(比如从2000行骤降为30行)的话,那么修复操作就成功了。

当我上传一个图片的时候,G2似乎没有创建重设图或缩略图…而且当我首次进入一个相册时,总是要等待很长时间来进行载入。这是咋了?[ ]

G2与G1有很多本质上的区别。在G1中,缩略图和重设图在图片上传时就生成了。而在G2中,这些东西在被访问/需求之前不会被创建。意思就是你首次查看某个重设尺寸的图片或相册时,需要等待一段时间以供这些图片生成。当然,以后访问起来速度就会非常快了,因为这些图片已经生成并存在其中。在上传时,根据需要和用户意愿对特定图片进行即时生成,而无需是在首次查看这些图片的时候,我认为这个功能的开发应该被考虑到了。 补充:目前,在导入和上传时会有一个复选框以供缩略图/重设尺寸图片的生成。如果使用这个的话,可能会增加图片上传/转移的时间,但它会自动进行处理而无需等到用户亲自对图片进行请求。

求助,我在配置图像工具包(ImageMagick,NetPBM或ffmpeg)时遇到了问题。[ ]

首先- 配置询问路径并非询问gallery2模块的路径(不是指的这个gallery2/modules/imagemagick)。这些目录是G2中这些程序的界面而不是程序本身。你需要找到二进制并安装到系统上,确保它们都是可执行的,并在配置中输入有效的路径。 参见: http://codex.gallery2.org/Installing_an_Image_Processing_Library

能通过修改timezone以改变G2中日期/时间的显示吗?[ ]

config.php文件中在结尾的?>之前添加此行

 putenv('TZ=PST8PDT');

将其中的PST8PDT替换为合适的timezone字串。如需更多有关timezone字串的信息,可以参看Wikipedia中关于Zoneinfo的资料。实际可接受值得相关信息,可以参看Wikipedia中的这个列表

可以重命名main.php吗?[ ]

G2安装完成后,如需使用一个不同的main php文件的话,请遵照如下步骤:

  • 禁用并卸载URL-rewrite模块。
  • 将 main.php复制或symlink至新文件名。
    • 如果你需要index.php,请移除/删除index.php并将main.php重新命名为index.php
  • config.php文件中 结尾的?>之前添加此行:
define('GALLERY_MAIN_PHP', 'filename.php');

如2.0-rc-2,你也可以define('GALLERY_MAIN_PHP', ''); 来设置index.php 或main.php的默认文档,或隐藏所有的参照。 你也需要将baseUri,config.php中的倒数第二行,设置为'/'(比如gallery的某个domain-level安装)。

如果我的服务器仅允许.php4扩展名的php文件的话,还能安装吗?[ ]

如果你的系统不允许PHP文件扩展名为".php"而只能是".php4"的话,请遵照如下步骤进行操作:

  1. 重命名index.php,main.php,install/index.php 和upgrade/index.php,将它们的扩展名改为.php4。
  2. 浏览至install/index.php4并继续进行安装。注意安装末的"Go to Gallery"链接将无效。
  3. 安装结束后,请遵照上面的常见问题解答中的步骤,将main.php改为main.php4。
  4. 选择性地重命名config.php为config.php4并更新bootstrap.inc结尾参照config.php4(以保护config.php内容无法通过浏览器被查看到)。
  5. 现在你的G2应该能正常运作了。
  6. 为了能够支持升级,请在upgrade/index.php4中找到这一行:
 function generateUrl($uri, $print=true) {

并在其后添加:

 $uri = str_replace('index.php', 'index.php4', $uri);

并在main.php4中将upgrade/index.php 改为upgrade/index.php4。

为何你们不支持PHP 5.0.3?[ ]

PHP 5.x 版本系列中低于5.0.4的版本有一个很严重的bug(bug id 32290)。此Bug影响如G2这样的面向对象软件,以及G2所使用的库(Smarty和ADOdb)。目前我们已知的至少有两个G2特点因此bug而无法运作(高级搜素(advanced search)和publishxp)。可能也有其他的问题,包括有数据完整性的问题。

底线:PHP 5.0.3有一个严重的bug。Gallery将因此无法正常运作。PHP 5.0.3升级到PHP 5.0.4+ 应该能解决问题。

如果你坚持要使用PHP 5.0.3的话,你可以移除阻止你安装G2的PHP版本检测过程;只需在install/steps/SystemChecksStep.class 和upgrade/steps/SystemChecksStep.class中修改几个代码行就可以了。你也可以自己修复高级搜索(advanced search)和publishxp,相关信息在此论坛帖中有描述。

如何备份G2?[ ]

一份完整的备份包括有'g2data'目录,数据库,/gallery/config.php和/gallery/.htaccess。注意:如果你不使用URL重写模块的话,就没有这个.htaccess文件。

我Gallery的URL以/v/和/d/开头,为什么?[ ]

Gallery需要使用这些前缀(/v/,/d/...)来检测不同类型的请求。/v/ 代表的是相册和相片"view(视图)"页面,而/d/则代表download(下载)URL,诸如此类。 你可以在Site Admin(站点管理) -> URL Rewrite中修改前缀,甚至可以将视图页面(/v/)的前缀删除。但你要注意了,如果删除了/v/前缀,你的与Gallery目录中某目录同名顶层相册可能就不再存在了。换句话说,在拥有/v/前缀的情况下,创建一个顶层相册"lib","themes","modules","install"等等都是没问题的;但一旦此前缀被删除就会出问题。在Gallery中(Site Admin(站点管理) -> Maintenance(维护))有维护任务用以确保无此类的冲突问题。

如何在其他网站中使用Gallery2图片?[ ]

你的意思应该是在其他网站或论坛(公告栏)中显示你的Gallery2图片,或是希望在其他网站上显示一个链接,此链接将链接到Gallery2中某一特定的图片或相册。

  • 对于图片链接来说,在此图片上点击鼠标右键并复制该图片的地址(大多数浏览器都支持此操作)
  • 对于特定相册或项目的链接来说,浏览到相册或项目并将浏览器地址栏中的地址复制下来(如果地址中有g2_GALLERYSID= stuff,就将此段删除)
  • 如果你不知道为何项目链接看起来像main.php?g2_view=core.ShowItem&g2_itemId=35 而图片链接则是main.php?g2_view=core.DownloadItem&g2_itemId=35的话:这些链接看起来可能有点奇怪尤其是DownloadItem链接。因为你可能希望看到的图片URL的结尾应该是album/image.jpg这样的形式,但实际上这就是一个图片链接。如果你希望图片链接看起来正常点的话,比如以.jpg结尾的图片链接,那么就请激活Gallery 2 URL 重写模块(rewrite module)。 此激活操作可以通过登录Gallery2管理员帐号,点击站点管理(site admin),再点击插件(Plugins)就可以完成了。在列表的顶部你应该可以看到URL Rewrite,而在此行的右边可以点击激活(activate)。接下来就是按照给出的在线指导信息完成后续操作。当成功激活后,就能在插件名称的边上看到一个绿色的勾。
  • 有一个模块可以帮助你复制图片和项目链接而无需你亲自右击鼠标。请参见:预格式URL模块

如果将更新过的项目首先显示在一个相册中(如新项目一样)[ ]

Gallery疑难解答[ ]

出了问题该怎么办?[ ]

首先,将代码更新至最新版本是个不错的办法。它有可能已经经过修正了。其次你应该看看论坛中有无该问题已被解决的帖子。在论坛中使用查找功能或许能帮上大忙。如果仍没有解决的话,你可以到支持论坛中寻求帮助。在寻求支持的请求中提供尽可能多的信息会更好。

在论坛寻求帮助时哪些信息是必要的?[ ]

当你在支持论坛中发表新话题时,请提供如下信息:

  • G2/系统信息:将G2系统信息复制并粘贴下来,改信息可以在"站点管理(Site Admin) -> 维护(Maintenance) -> 系统信息(System information)"中找到(你需要点击"立即运行(run now)"来获取系统信息)。
  • 请在你所发的论坛帖子中提供一个能够连接到你的网站/G2的链接。
  • phpinfo链接大多数情况下也是需要的。要在你的服务器上创建一个phpinfo页面,你需要做的有:
1. 在桌面上新建一个文本文件
2. 打开新建的文本文件并将以下内容复制并粘贴到其中:
 <?php phpinfo(); ?>
3. 保存并将此文本文件重命名为phpinfo.php(或者其他扩展名为.php的任意名称)
4. 将此文件上传至服务器中gallery2目录下
  • 请确保你的文件完整无损(参见此指导)
  • 对问题的描述(以及让此问题重现的办法,因为这可能是个BUG)
  • 相关的错误消息和debug输出。
  • 有关安装程序中出现的问题,应将debug输出显示出来…将错误消息发表在顶部并在debug输出的底部查找错误。
  • 对于使用G2时出现的错误。你需要在config.php中打开缓冲debug输出,然后在该输出的底部查找错误消息。如果你不确定该错误消息的位置,你可以在帖子中为此debug输出给一个链接,请不要将整个输出直接粘贴在帖子里。

对于ERROR_STORAGE_FAILURE来说,由debug输出获取错误消息尤其重要,因为这是从数据库获取详细错误消息的唯一手段。

  • 你可以在config.php(相关指导信息在config.php中,你必须修改$gallery->setDebug(false); 这一行)中激活G2debug模式。

你提供的信息越详实,我们能帮你解决的问题的可能性就越大,问题解决的速度就越快。

如何确保安装文件完整无损?[ ]

浏览http://www.example.com/gallery/upgrade/index.phphttp://www.example.com/gallery/install/index.php并继续到系统检查步骤。确保此步骤没有得到任何警告,尤其要保证文件完整性检查顺利通过(无文件丢失/被篡改)。如果有文件丢失/被篡改的话,请阅读此常见问题解答来进行修复。

Gallery安装完成后,你仍可以在任何时候访问upgrade/或install/向导。不过只能继续到"系统检查步骤"就得打住了。此步骤会为的"完整性检查"中丢失被篡改的文件发出警告。如果出了问题的话,你可以点击"+"标记来看看哪些文件出了问题了。

缩略图/重设尺寸的图片无法正常生成,如何修复?[ ]

你根本无法看到缩略图或重设尺寸的图片或你看到一个"残缺的图片"占位符。

  • 如果你根本无法看到缩略图或重设尺寸的图片的话,就说明在你的G2中的图片工具包(image toolkit)模块不是活动状态。G2需要激活imagemagicknetpbmGD 模块之一以用于生产缩略图和重设尺寸的图片。
    • 请阅读:图片处理库的安装
    • 注:Imagemagick和netpbm除了G2模块外,还需要外部的二进制应用程序。如果对应的G2模块没有自动检测你的imagemagick/netpbm二进制,它们就很可能不存在于你的服务器中。参见上面的链接来看看如何获取二进制。
    • 注:你的PHP中可能有GD也可能没有。如果它可以运作的话,请确保你的PHP memory_limit设置得足够大(大于16 MB),因为GD是G2中唯一要使用PHP存储记忆的图片工具包了。如果PHP存储记忆限制(PHP memory_limit)不够宽松的话,就会导致残缺的缩略图/重设尺寸图片占位符。
  • 如果你看到了残缺的缩略图和重设尺寸图片的话(比如92x92像素的重设尺寸图片),就说明G2中图片工具包处于活动状态,但它们无法成功地生成缩略图或重设尺寸的图片。
    • 某些情况下,Gallery的图片工具包模块需要重新进行配置(比如,如果你的webhost进行了某些修改或你转移了服务器)。卸载图片工具包模块(imagemagick,netpbm,gd,ffmeg,jpegtran以及dcraw等),之后重新对它们进行安装并尝试将它们重新激活。注:禁用这些模块是不够的,你要将他们完全卸载才可以。
    • 如果你使用GD,那么你就有可能需要then you probably need to 放宽PHP的memory_limit限制。记忆存储限制需要放宽时是有征兆的,即小图片的缩略图正常但大图片(大指的是尺寸或文件容量)却显示残缺的缩略图或根本显示不出来。
    • 如果发生了这样的情况,一个或更多的图片工具包就会无法运行于你的系统中。可以尝试为G2安装其他某个图片工具包,这可能会有效果。
    • 如果你安装了多个图片工具包,可以尝试保留其中一个而其他的全部禁用。接着向G2中添加一张新图片看看能否运作。如果不能运作的话,就禁用当前的图片工具包,启用另一个,再看看能否运行。此操作一直重复。
    • 你也可以通过站点管理(site admin) -> 工具包优先级(toolkit priority)尝试修改图片工具包的优先级,这在多个图片工具包活动状态下可用。
    • 如果激活了,尝试禁用矩形缩略图模块(Square Thumbnails module).
    • PHP中可能存在某个bug。尝试向config.php中添加$gallery->setConfig('apacheSetenvBroken', 1);以禁用函数apache_setenv()的使用。
    • 如果上述所有办法都无效的话:对于netpbm和imagemagick,你可以通过检查debug输出来看看为何会出问题。启用缓冲debug模式并向G2中添加一个新项目,接着在debug输出中查看"executing"..."Regular output:"..."Error output:"。
  • 一旦重新开始运作,你可以使用站点管理(site admin) -> 维护(maintenance) -> 建立所有缩略图/重设图片(Build all thumbnails/resizes)生成并修复残缺的缩略图或重设尺寸的图片。
  • URL,"www"的问题:如果当你浏览(YourDomain.Ext)时Gallery2能够正常运作,但浏览(www.YourDomain.Ext)时却因残缺图片而无法正常运作的话,请禁用并卸载管理面板(插件)中的"Url重写(Url Rewrite)" 。这貌似是具有host-dependent(托管方依赖性)的。

我修改了语言但是没有效果,这是怎么回事?[ ]

将G2转换为其他非英语语言取决于G2运行的系统环境。G2需要具有gettext支持的php,而你的系统中必须安装了需要转换的语言。 如果你可以通过命令行(ssh/telnet)访问(unix,linux)服务器的话,你可以使用`locale -a`询问所能支持的语言。如果返回的是"C/POSIX",那么就无其他语言供支持。此时你需要重新配置区域设置并重启apache。

对应你需要的语言,也可以尝试多种不同的区域设置。比如,fr_FR.iso885915@euro看起来不为G2所支持,但fr_FR.iso88591却能够被支持。同样地,如果你安装了一个语言变体(比如fr_CA(加拿大法语)),请确保在系统中同时安装了此变体语言的"主"语系语言(即fr_FR,法国法语)。

另外,通过gallery.module模块来使用Gallery2和Drupal 4.6.x的话会有一个bug,具体请参看此处(此BUG在4.7.x整合中已被修复)。

为何使用MySQL 4.1或更高版本却不能进行安装?[ ]

如果安装程序显示类似"客户端不支持验证协议(Client does not support authentication protocol)"这样的错误的话,那么你的PHP内置MySQL支持对于MySQL数据库来说,可能使用的是一个较旧的密码方案。参见此处获取更详细的信息和变通的解决办法,省得重新编译PHP。

MySQL安装时出现了此错误"max key length",怎么回事?[ ]

如果你是在安装核心模块时出现此错误:

某特定键过长,键的最大长度为1000Byte(Specified key was too long; max key length is 1000 bytes )

那么你就得将数据库字符集设置为非utf8的其他字符集。目前在字符集为utf8的情况下,某些我们使用的索引会溢出默认的MySQL限制。

我可能碰上了某种MySQL查询限制,该怎么办呢?[ ]

某些host在你的MySQL数据库上设定了查询限制。这通常是一个按每小时计的限制(per hour limit),并会经时间的推移而恢复初始状态。Floridave认为此限制的合适值应该为50到70k,但某些host会将其设置为10k那么低。请询问你的host,看看他们能不能将此限制稍微放宽一些。 另一变通的办法就是创建若干个数据库用户,并随机使用其中的某个用户进行连接:

当我尝试查看gallery时却显示一个空白屏幕,怎么回事?[ ]

导致此现象的原因各种各样。首先你应该检查一些PHP存储记忆限制,以及其他PHP配置参量。在大多数情况下,G2需要至少16MB的记忆限制。而如果你使用的是GD,这个限制的要求就更高了。

参见:

当我点击项目缩略图时没有任何反应,这是怎么回事?[ ]

非常有可能的是,你的PHP记忆存储限制得太低了。请将你的PHP记忆存储限制设置为至少16MB。如果问题仍未解决的话,你应当启用config.php的debug模式,并将此问题反映到论坛上。

为何windows服务器上总是显示有NetPBM和cmd.exe进程?[ ]

如果NetPBM被给予一个它所不支持的文件的话,它就会尝试建立一个对话框并在继续运行之前告知你此错误。而你的服务器无法显示这些错误提示框,而剩下的图片处理进程一直等待你点击"OK"按钮,但是你却无法看到。这也会导致G2持续挂起30秒,因为它也在等待图片处理进程结束。而ImageMagick似乎不会出现此问题。

在安装程序和升级程序中出现的有关文件丢失和被篡改的警告是怎么回事?[ ]

如果在安装程序和升级程序中出现有关文件丢失和被篡改的警告的话,你应该给予足够的重视。安装或更新过程以及G2这样的应用程序都没有办法正确地处理丢失或被篡改的文件。 将被篡改的/丢失的文件重新上传到服务器上,直到这些警告不再出现为止。 文件丢失或被篡改的可能原因有:

  • FTP上传Gallery2文件时发生错误
  • 使用Winzip或其他有问题的归档文件程序对Gallery2.zip进行解压操作。
  • OSX上报告有问题的若干解压程序

如果你是svn用户,在安装/升级程序检查步骤中出现若干文件丢失或被篡改的警告是正常现象。但如果你碰上了任何问题,这里应当被作为问题的首发点来看待。

我在Windows/IIS下G2安装程序的模块步骤得到了许多"Warning: exec(): Unable to fork [cmd /c ...]"(ImageMagick模块)这样的警告提示,该怎么办?[ ]

你需要为IIS赋予权限,以使其可以读和执行命令解译器("cmd.exe")。没有了它,Gallery将无法呼叫外部可执行模块(如ImageMagick)。必要步骤有:

1. 通过"开始菜单","运行", 输入"cmd.exe"。接着按回车.,打开一个cmd-prompt。
2. 在prompt中,输入:
C:\> cacls %COMSPEC% /E /G %COMPUTERNAME%\IUSR_%COMPUTERNAME%:R 

上述操作为IIS用户添加cmd.exe"可读" 权限。关闭prompt并尝试重新激活imagemagick模块。更多信息见此处

我使用apache的mod_layout并注意到了一些奇怪的错误消息,这是什么问题?[ ]

如果你使用Apache的mod_layout,请保证其对gallery文件是禁用的。Gallery有时会从一个php文件中送回二进制数据,因此想这些请求添加一个header或footer会导致数据的崩溃!如果需要修复此问题,可以将如下语句行添加到你的apache配置文件或.htaccess文件中去。

# 禁用Gallery的布局header和footer
LayoutIgnoreHeaderURI /path/to/gallery2/*.* 
LayoutIgnoreFooterURI /path/to/gallery2/*.* 
 
# PHP Gallery2覆盖布局 
<Directory /path/to/gallery2/> 
LayoutHeaderOff 
LayoutFooterOff 
</Directory>

如何设置/使用Gallery的debug模式?[ ]

编辑你的config.php文件并以如下方式开启缓冲debug模式:

$gallery->setDebug('buffered');

然后再试一次。此时,一旦发生错误,你就可以得到大量debug输出了。看一看debug输出的底部,从这里开始反向检索任何疑似错误,并将它们发布到支持论坛中。一般来说,这么做可以为我们的工作提供更多信息。如果你看不懂的话,可以在其边上提供更多该错误的信息。如果输出多达30到40行的话,你应该将它保存为文本文件并发布在你自己的网站中,同时在支持论坛的相应帖子里给出此文件的链接(这样一来,论坛就不会受过长文本的影响变得难以阅读了)。

应该显示日期的地方我却看到"Wrong charset, cannot convert"或"Illegal character encoding"还有"Illegal recode request".. 这是怎么回事?[ ]

当试图将系统生成的内容(如日期中日/月名称)转换为UTF-8时,某些操作系统想PHP报告了无效的字符集,这样就会产生错误。可以在config/php中添加如下内容,来变通地解决该问题:

$gallery->setConfig('systemCharset', 'ISO-8859-1'); 

将'ISO-8859-1'替换为对应你的系统的适宜的字符集(其他常用字符集包括有'UTF-8')。

无效的区域设置一般会造成上传失败,在每个上传项目后都会显示Upload Applet错误消息Upload error: Upload failed: "。而From Web Browser上传项目显示的状态消息是Successfully added 1 file

注: 对于Gallery2.1之前的版本,请不要使用$gallery->setConfig(),而是使用:
require_once(dirname(__FILE__) . '/modules/core/classes/GalleryCapabilities.class'); 
GalleryCapabilities::set('systemCharset', 'ISO-8859-1');

我无法安装G2怎么办?[ ]

你尝试安装G2,但遇到了错误,可能发生在安装核心模块时。 可以参考常见的安装报错列表。

怎么会产生空白页面/网络/web服务器错误?[ ]

如果你使用的是PHP 5.0.3或更早些的PHP 5版本,那么这就有可能是因为产生了某个bug。因此,Gallery2不支持这些PHP 5版本。转为PHP 4.1+或PHP 5.0.4+也无济于事。

此bug会发生在G2的高级搜索,publishxp 模块以及其它的地方。

我怎么都无法登录了,怎么办?[ ]

"你的登录信息错误。请重试。"[ ]

如果你看到了这样的错误提示,就表明你输入的密码或用户名不正确。

  • 如果你忘记了密码,可以点击登录页面上的"忘记密码"链接并继续后续操作。
  • 如果你忘记了用户名,请联系管理员,他可以帮助你在数据库中找到你的用户名。

"该账户的登录已被禁止,原因是多次登录尝试失败。"...[ ]

是否显示你的用户帐户被 "禁用"了? (自 G2.2以来)

  • 点击登录页面上的"忘记密码" 链接来重新激活你的帐号。
  • 如果服务器的邮件系统失效的话,请联系管理员。管理员可以使用"login.txt"并修复email或重置用户帐户。参见http://www.example.com/gallery/lib/support/index.php -> "Reset User Password"(自Gallery 2.3以来),它指向http://www.example.com/gallery/main.php?g2_view=core.UserAdmin&g2_subView=core.UserRecoverPasswordAdmin

"你必须输入图片中出现的字符。"[ ]

如果你看到此错误消息,那么你就可能忽略了CAPTCHA图片或是你的CAPTCHA虽然被启用了但没有显示图片。

  • 请在下方的栏位中输入CAPTCHA图片中出现的数字和字母并尝试重新登录。
  • 如果没有显示CAPTCHA图片(=含有字符的图片),就表示CAPTCHA无法正常运行,你需要手动将其禁用

"错误字符。"[ ]

如果你没有正确转写CAPTCHA图片,就会出现此错误信息。

  • 请在其下输入CAPTCHA图片中的字母和数字并重新登录。

其他登录问题[ ]

  • 如果你是由低于beta4版本升级上来的话,请参读README.html。清除浏览器cookie缓存应该就能修复此问题了。
  • 如果你在站点管理选项中修改了cookie路径/domain设定的话,请先删除浏览器中的GALLERYSID cookie。如果没有解决问题的话,或是你可以登录但是当你浏览G2时却在所有URL中都显示GALLERYSID参量的话,那么你很有可能输入了错误的cookie路径/domain值。如果你再也无法登录了,请在浏览器中禁用cookie并登入G2。接着打开站点管理并修改cookie路径/domain的值。
  • 如果你使用低于Gallery 2.0 RC-1的版本,并且供G2运行的IIS web服务器低于IIS-6的话,请将G2升级为Gallery 2.0 RC-1或更新的版本。我们需要在Gallery中采取一个变通的手段来修复一个IIS-5的bug,因为MS无法再web服务器中对此bug进行修复。

进度条无法运作了,出了什么问题?[ ]

如果你对G2不够熟悉以致不知道进度条出现的规律的话,一旦发生此问题,解决起来很麻烦。拿升级程序和G1迁移做例子,如果根本没有显示进度条或当请求完成时只是在屏幕上快速地闪动的话,那么PHP的output_buffering 模式就可能被启用。检查php.ini并保证output_buffering设置为关闭并且不对output_handler 做任何配置。

如果你运行的是Apache,它就可以用deflate或gzip模块进行配置。这将对所有输出进行缓冲。你可以访问 http://www.whatsmyip.org/mod_gzip_test/ 做个测试,输入你gallery的url,它就会告知你deflate或gzip模块是否正在被使用。

我使用Roxen服务器得到无效的url,怎么回事?[ ]

你可以尝试使用此补丁

为什么我无法通过vHost或子域(subdomainI)访问G2?[ ]

你很有可能使用G2的URL重写模块所生成的短URL。如果在你的gallery2目录下有一个.htaccess文件的话,就是这种情况。 你有两个选择:

  • 仅使用一个vHost/(子)域访问G2,或
  • 不使用URL 重写模块

如果你决计使用URL重写模块,当通过正确的/选定的vHost /(子)域访问时激活此模块。如要做修改,用以前安装G2时的URL访问G2。禁用并卸载URL重写模块。接着用你所偏好的URL进行访问,重新安装重写模块并将其激活。

技术背景:当时有URL重写模块时,G2需要将路径保存到数据库中的main.php文件及.htaccess文件。比如,如果'正常的'URL是http://www.example.com/gallery/gallery2 ,它就会将'/gallery2' 保存到.htaccess文件及数据库中。如果你希望通过一个直接指向gallery2目录的vHost进行访问的话,比如http://mygallery.com/,那么就会生成错误的重新定向(redirect)和URL,因为G2仍会认为它是被安装到此域的次目录'/gallery2' 中。你可能注意到了,这部适用于具有相同web根目录的两个不同的域。

出现此信息"Notice: Only variable references should be returned by reference in ",怎么回事?[ ]

很有可能你运行的是PHP 4.4.0+并使用PHP Zend Optimizer(参见phpinfo)。这是一个Zend Optimizer的bug。请参见http://gallery.menalto.com/node/36605#comment-133101上的解释。

解决办法:使用较新版本的Zend Optimizer,如ZendOptimizer-2.6.2或更新的版本。

如果你运行PHP 4.4.0但没有使用Zend Optimizer,那么很有可能是你使用的G2版本低于G2 Beta 4。你应当升级到最新且稳定的G 2.0。

如果你或你的host不愿意禁用或升级Zend Optimizer到一个无错版本,或不愿改变PHP版本的话,这里有一个变通的方法(此解决办法由Mark Scott于2005年10月13日发现,"I've found that removing optimization pass 1 removes the notices caused by optimizing away the variable that should be referenced and returned.") 在php.ini中,将:

zend_optimizer.optimization_level=15

替换为:

zend_optimizer.optimization_level=14

你也可以抑制所有的PHP警告,但不保证G2能够正常运行:

/* in index.php, main.php and install/index.php */
error_reporting(E_ALL &~ (E_NOTICE | E_WARNING));

相关链接:

MySQL错误:"客户端不支持验证协议(Client does not support authentication protocol)"[ ]

此错误发射的原因及修复办法可以在此页中找到:MySQL参考手册:A.2.3. 客户端不支持验证协议。还可以:

为每个用户将密码重置为4.1之前版本的模式,需要使用4.1之前的客户端程序。
还可以使用SET PASSWORD 语句及OLD_PASSWORD()函数来达到目的:
mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

Gallery Remote无法找到我的G2,出什么问题了?[ ]

可能的原因(GR表示Gallery Remote而G2则表示Gallery 2):

  • 你需要激活G2中的"remote"模块。参见"Site admin" -> "Modules"。如果它没有在列表中,请在 G2下载页面中单独下载此模块。该模块下载后需要安装并被激活。
  • 你在使用G2之前使用过Gallery1,因此"gallery_remote2.php"文件仍存在于gallery2/文件夹下。将其删除即可。
  • 你使用proxy来进行Internet访问。GR不能很好地跟proxy并容。
  • 你的G2被嵌入了其他的应用程序,而你在config.php中使用mode.embed.only = true。在G2.0.x中,它仅当mode.embed.only = false时运作。
  • 你的GR版本过老了。请从Gallery 下载页面中下载最新且稳定的版本。
  • 当你使用web浏览器连接到http://www.example.com/gallery2/gallery_remote2.php时,你看到一个良好布局的页面告知你无法找到此页。请参见[GR FAQ]。

为什么Publish XP会显示一个"web服务错误"?[ ]

当在Publish XP向导中尝试登录G2时产生此错误的话,那么你的IE中的cookie可能存在问题。请清除IE中的cookie缓存并重新启动Publish XP again。

G2不接受我所指定的上传路径![ ]

当你没有专用-nix服务器时的两个常见"错误"。

  • 如果你在使用Windows操作系统的机器上运行G2的话,请在路径前面加上磁盘驱动器的盘符(比如c:\)
  • 如果你使用的是一个-nix系列操作系统上的共享的host的话,请确保你给出了服务器上该目录的完整路径,而非共享host的路径。可以参考此帖:http://gallery.menalto.com/node/37060#comment-135509

-nix服务器:在使用一个屏幕高亮复制/粘贴动作时,特别容易忽略前面的部分(即/home/之前的部分)。因此可能导致的是,如无头苍蝇般地寻找'unaccepted'权限…

图片无法显示,相册/相片的链接无效,我该怎么办?[ ]

可能原因:

  • G2的URL重写模块是激活了但是没能正常运行。修复办法:
  1. 开启G2维护模式
  2. 浏览http://www.example.com/gallery/main.php?g2_view=core.PluginCallback&g2_pluginId=rewrite&g2_pluginType=module&g2_command=deactivate

(将www.example.com/gallery2/替换为你自己的Gallery2的URL)。

对于G2.2之前的版本,则是http://www.example.com/gallery2/main.php?g2_controller=core.AdminModules&g2_moduleId=rewrite&g2_action=deactivate

如果发生了错误(ERROR_PERMISSION_DENIED),那么你可能没有登入G2,因此无法访问管理页面。如果是这样的话,你必须先行登录然后再使用上面的链接。如果自动登入失败,你可以尝试手动进行登录操作:http://www.example.com/gallery/main.php?g2_controller=core.UserLogin&g2_form[formName]=UserLogin& g2_form[action][login]=Login&g2_form[username]=admin&g2_form[password]=secret (将"secret"替换为你自己的密码)

如果仍然出现错误(ERROR_MISSING_OBJECT)的话,请浏览http://www.example.com/gallery/lib/support/。点击"缓存维护(Cache Maintainance)"链接,并清除除了g2data/cache/derivative之外的所有数据库缓存。然后再试试看上面的登录链接,最后是其上的deactivation(禁用)链接。

  • 你的web服务器没有正确配置,从HTTP_HOST / HTTP_X_FORWARDED_SERVER处返回错误值。

你可以看看http://www.example.com/gallery2/lib/support/phpinfo.php页面来确认是否是此类情况;查找HTTP_HOST和HTTP_X_FORWARDED_SERVER的值。如果HTTP_X_FORWARDED_SERVER丢失的话,没太大问题。如果HTTP_X_FORWARDED_SERVER或HTTP_HOST具有与实际host名称(你G2 的URL中http:// 后面的部分)不同的其他值的话,就有问题了。

如果你或你的管理员无法修改web服务器配置(apache服务器HTTP_HOST http.conf中的hostname)以返回正确值的话,你可以用各种必要的办法让modules/core/classes/GalleryUrlGenerator.class 函数getCurrentDomain()返回正确值或忽略HTTP_X_FORWARDED_SERVER。

在无法访问站点管理的情况下如何改变默认的外观主题?[ ]

如果有多于一个的外观主题处于活动状态的话,你当前的默认主题不允许你访问站点管理(site admin) -> 外观主题(themes)来改变默认外观主题(无论任何原因)。然后你可以尝试将外观主题还原为matrix外观,这是G2官方默认的外观主题,URL为:http://www.example.com/gallery2/main.php?g2_controller=core.AdminThemes&g2_form[action][saveDefaults]=1&g2_form[default][theme]=matrix

(将www.example.com/gallery2/替换为你的Gallery2的URL )

这仅当你以管理员身份登录之后才能起效。参见另一条常见问题解答,它将告诉你当一般登录方法不起效时,如何进行手动登录。

install/index.php是空的,或者显示错误信息。怎么回事?[ ]

这可能由若干原因导致。

  • 如果你使用PHP5.0.5且页面为空的话,那么你需要改变PHP的版本。请参见PHP的bug 34635
  • 如果你看到类似"Warning: session_start():"的信息...那么你的PHP配置有误。你可能需要正确设定session.save_path(在linux/unix中"session.save_path /tmp"则为更好的选择)。或者你需要正确配置session.save_handler("session.save_handler 文件" 是个不错的选择)。这些设定在你PHP的php.ini中,而且需要在修改过后重新启动web服务器。你也许能够在不改变main.ph.ini文件的情况下设定必要的PHP session变量,方法是在Gallery目录的.htaccess文件(参考)中加入配置指令。
  • 其他原因:确保你运行的是PHP 4.1.0或更新些的版本,并确保PHP实际上被用于web服务器上的.php文件。

在Windows下使用MySQL 5.x时得到一个数据库建立错误,该如何是好?[ ]

如果你在Windows下使用MySQL 5.x的话,你无法再安装程序中通过数据库安装这步骤,你会得到类似这样的消息提示:

The database privileges test did not complete successfully.(数据库特限测试未能成功完成。)
Failed to create a DB test sequence.Check the returned error message and README.html for missing privileges and clean up the database.(数据库测试顺序的创建失败。请参查返回的错误消息及README.html来查看丢失的权限并清除数据库。)

那么你很有可能碰上了MySQL InnoDB Engine的问题。要解决此问题,你可以尝试: 同时删除MySQL数据和日志文件并重启服务器。

  • 第一步. 停止MySQL服务
  • 第二步. 删除文件(你的文件路径可能会有出入,请随机应变):
C:\Program Files\MySQL\MySQL Server 5.0\data\ib_logfile*
C:\MySQL Datafiles\ibdata*
  • 第三步. 重新启动MySQL服务

如果此方法不起效,请在你的mysql配置中将你的默认MySQL引擎由"innodb"修改为"myisam"。 感谢G2用户bzink5tippex提供的解决方案。这个问题在此论坛话题中有涉及。

为什么安装程序不接受我的login.txt?[ ]

有若干原因可能导致此问题,即你可能无法通过安装程序的验证步骤:

  • 确认你在Gallery2中所创建的或上传的login.txt文件在web服务器上(install/文件夹的父族文件夹)而不是在其他地方
  • 确保此login.txt仅含有验证密钥(一个单行字串)
  • 如果你能通过验证步骤但是在继续第三步或其后步骤时循环返回到了第一步的话,那么你就应该使用2005年11月17日之后的nightly快照版本,因为cookieless安装在此日期之前曾出过问题(不恰当的PHP会话配置值也会导致cookieless浏览)
  • 确保你的PHP session.save_handler设定为"files"而不是"user"(或"mm")。而对于2005年11月27日之前的版本或Gallery2.1之前的版本来说,你没必要为此设定操心(除非在你的PHP中禁用了ini_set/ini_get )。你可以在phpinfo页面中查看这些服务器上的值。
  • 尝试清除浏览器的cookie。某些情况下,当在同一HOST上安装有若干个应用程序时,可能会出现相互冲突的cookie。清楚这些cookie以保证Gallery以一个简洁的状态来运行安装(此问题在2.2.1版本中已被修复)。

为什么电影无法在我的Gallery中播放了?[ ]

当apache2的mod_deflate模块被启用时,在IE浏览器中电影很可能不会开始播放(可能在其他浏览器中也是如此)。 Apache2的RemoveOutputFilter指令为指定扩展名的文件移除任何存在的输出过滤器。这就使得子目录中的.htaccess文件撤销任何继承父族文件夹或服务器配置文件的联系。 扩展名参数是case-insensitive的,有无前置的扩展名点(.)都可以被定义。 关于此问题的更多信息请见:Apache2的相关资料

我修改了默认外观主题但什么都运行不了了。怎样才能还原?[ ]

使用phpmyadmin或你的mysql shell来执行下面的查询,以使得默认外观主题还原为matrix外观主题:

UPDATE g2_PluginParameterMap SET g_parameterValue = 'matrix'
WHERE g_pluginType = 'module' AND g_pluginId = 'core' AND g_parameterName = 'default.theme';

在此之后,清除数据库缓存。清除操作步骤:浏览到http://example.com/gallery2/lib/support/,输入你的密码,点击缓存管理接着删除数据库和模板缓存。当然你得将前面的example.com/gallery2/替换为你的Gallery的实际地址。

在升级程序中得到一个有关外观主题/模块缺失的警告,我该怎么办?[ ]

很可能你为升级程序选择了错误的包。只有完全的整合包才含有所有的官方外观主题和模块。另一种原因可能是,你曾在使用非官方/第三方的模块/外观主题而你忘记将它们纳入你的modules/或themes/文件夹下。

  • 如果缺失的外观主题/模块是官方发布的,你可以从下载页面重新进行下载。
  • 对于第三方/非官方发布的外观主题,请参考用户贡献页面,在此看看是否有你所用模块/外观主题的最新版本。

如果你无法获取某个模块/外观主题最新的版本,并且别无他法的话,下面给出的SQL查询可以让你至少顺利通过升级向导:

delete from g2_PluginMap WHERE g_pluginId = 'PGtheme';

如果某外观主题当前不可用,但曾被用作某特定相册的默认外观主题的话,你还得更新g2_PluginParameterMap的数据库表格以对原先默认的外观主题进行修改,如

 UPDATE g2_PluginParameterMap SET g_parameterValue = 'matrix' where g_pluginId = 'core' and g_parameterName = 'default.theme';

接着对特定的相册进行相同的操作(为那些外观主题不再可用的语句行,将tableg2_AlbumItem中的g_theme值设置为NULL)。

在移除这些残缺模块之后,如果在编辑Gallery中的项目时,出现如下错误:

in modules/core/classes/helpers/GalleryFactoryHelper_simple.class at line 208 (gallerycoreapi::error)
in modules/core/classes/helpers/GalleryFactoryHelper_medium.class at line 59 (galleryfactoryhelper_simple::newinstance)
in modules/core/classes/GalleryCoreApi.class at line 124 (galleryfactoryhelper_medium::newinstancebyid)

,那么请检查数据库中的g2_FactoryMap表格,来看看已被移除模块的参照情况。

如果这仍旧没有解决问题,那么最后一搏就是删除位于g2data目录(所有的照片都存储在此,请不要错误地删除其中的album文件夹。你要做的只是删除名为cache(缓存)的文件夹)中的缓存目录!

在尝试裁剪一个缩略图时,得到了Out of memory错误,怎么办?[ ]

裁剪一个超大图片的缩略图时,你可能需要将java记忆存储的限制放宽一些。Java需要一个类似-Xmx512M 的参量(这就将记忆限制设定为了512MB)。在windows 中你可以在 Control Panel / Java / Java tab / View.中为Java Applet Runtime Settings/Java Runtime Parameters添加此参量。


发生了'Illegal mix of collations'这样的错误,该怎么办?[ ]

如果你得到了错误消息

Illegal mix of collations (latin1_swedish_ci,IMPLICIT)和(utf8_general_ci,COERCIBLE)的话

那么你可能使用的是有错误的MySQL版本。MySQL 4.1.16之后的版本以及5.0.17之后的版本中此bug已被修复了。请参见:http://bugs.mysql.com/bug.php?id=10446。 如果你是在G2.0.x或更早版本向G2.1或更新版本升级时碰上此错误的话,请参见:MySQL升级的相关问题- UTF-8

我启用了mod_rewrite,但它无法运作,现在我无法回过头来将它禁用—我还能怎么办?[ ]

你必须手动修改数据库(你可以使用基于web的工具来完成,比如phpmyadmin) 登入你的g2数据库,选择(g2_)PluginMap表格。 在此你必须修改重写模块的语句并将其禁用。 要达到此目的,你可以: - 手动选择g_pluginId 为"rewrite"的句行,并将g_active栏的值改为0。 或 - 运行下面的sql查询:

UPDATE g2_PluginMap SET g_active=0 WHERE g_pluginId='rewrite';

在此之后,你可能就准备好了,但也有可能需要手动清除缓存。 你可以访问http://yourgalleryurl.com/lib/support/并选择"缓存维护(Cache Maintenance)"选项来完成此操作。 如果你也无法访问此目录,请打开你服务器上的g2data/cache文件夹并将除了derivatives dir之外的所有内容删除。.

添加新相片或创建相册时出现了ERROR_STORAGE_FAILURE的错误,我该怎么办?[ ]

在mysql数据库中这可能是g2_SequenceId表格出问题了。若要在phpMyAdmin中修复此问题的话,找到g2_SequenceId表格并点击"Browse"来观察行。如果有多个(multiple) 行,就点击"删除(Delete)"将每行都删除,不过具有largest 值的一行除外。如果只有单个一行,就点击弹出窗口中左上方的"SQL"按钮:

 选择max(g_id) from g2_Entity

并点击Go。在查询结果中查找最大的id。现在返回"浏览(Browse)"g2_SequenceId并点击"编辑(Edit)"。不同于查询报告的最大id(maximum id)而将值改为one larger。 注意前面收到的错误也许已经不在g2data/albums 目录下的目录和文件中了,并不会被Gallery2显示出来。因此,要彻底解决此问题,以管理员身份浏览gallery时不应出现的项目就应当被删除(请先进行备份!)。

如果你的mySQL设置为仅允许定量的指定间隔更新的话,也会发生此错误。实际的mySQL-错误是1226: User 'xxx' has exceeded the 'max_updates' resource (current value: xxxxx),但在Gallery2中显示为ERROR_STORAGE_FAILURE。 你唯一能做的就是进行清除操作(如上文解释的)并在能够像mySQL服务器发送更新之前耐心等待。

如果是在显示gallery是发生此错误的话,检查一下是否存在因中止mysql而导致的mysql死进程并检查ps –ef。如果是这样的话,就使用kill -9 终止这些进程并启动mysql。

我遇到了ERROR_PLATFORM_FAILURE错误,怎么办?[ ]

极有可能你的G2存储文件夹(一般是'g2data')的文件系统权限不正确。参见: 如何修复Gallery存储文件夹文件系统权限问题?. 某些情况下,host移动了某些文件导致G2data文件夹不在原来的位置了。请在config.php中检查G2data目录的路径,并确保此路径无误。

    $gallery->setConfig('data.gallery.base', '/Verify/this/path/to/g2data/');

如何修复Gallery存储文件夹文件系统权限问题?[ ]

一般你会碰上ERROR_PLATFORM_FAILURE的错误或升级向导报告存储文件夹的文件系统权限出错,即它无法在该文件夹中对所有文件和子文件夹进行写操作。

  • 要解决此问题,你可以尝试使用文件系统权限(Filesystem Permissions)页面上 http://example.com/gallery2/lib/support/ 中的修复存储文件夹(Fix the storage folder)(使其可写)工具。此工具在G2.1.1中才首次亮相,早些的版本中没有它。
  • 你也可以尝试使用FTP程序将权限修改为777 (即所有人可读可写权限),请先到论坛中说明一下,这样我们可以看看是否真的是文件系统权限的问题。如果的确是这个问题的话,你就得要求 webhost为你递归式地 修改文件系统权限(如chmod -R 777 g2data)。
  • 一般的问题是:
Error (ERROR_PLATFORM_FAILURE) :
modules/core/classes/GalleryTemplate.class中第270行(gallerycoreapi::error)
modules/core/classes/GalleryTemplate.class 中第200行(gallerytemplate::_initcompiledtemplatedir)

如果上面给出的建议都没有效果的话,请通过FTP软件删除g2data/smarty/templates_c/ 文件夹,除了FTP以外其他你用于上传/管理网站文件的软件程序都可以。

  • 如果此问题没有解决,或是修复后一段时间又出现的话,请询问你的webhost,看看是否存在某个脚本能够修改文件的所有者。这可能牵涉到违法行为,因为文件不是通过你的帐号被创建或管理,而是通过web服务器应用程序。我们同样欢迎你访问Gallery的论坛来寻求专家给出的建议。

我在安装的第八个步骤(核心模块的安装)时,遇到了错误。怎么回事?[ ]

发生错误的原因有多种。

  • 最常见的一种原因是:
 Error (ERROR_BAD_PARAMETER) : something/gallery2/modules/core/classes/helpers/../../../../themes/matrix/theme.inc

如果你得到了这个错误,就表示上传Gallery至服务器时出了问题。

解决办法:重新将整个themes/文件夹上传。至少themes/matrix/的themes/matrix/MANIFEST和themes/matrix/theme.inc等文件丢失了。你应该:删除存储目录(g2data/)并清除Gallery数据库或其数据库表格。如此操作完成后,请确保剩下所有东西与Gallery安装之前是一致的。最后你可以重新运行安装向导再次安装Gallery了。

为何得到这样一个MySQL的错误:"无法通过socket接口连接MySQL本地服务器"?[ ]

这表明PHP无法与你的MySQL服务建立联系。检查以确保MySQL正在运行,并保证它在服务中合适的位置。如果MySQL 是在本地系统上运行的话,尝试为你的host(应该是127.0.0.1)指派IP地址而不要使用数据库的"localhost",完成后看看是否修复了问题。其他可供尝试的方法,请参看http://dev.mysql.com/doc/refman/5.0/en/can-not-connect-to-server.html。

"成功"上传的图片显示缩略图,但是点击后却显示黑屏。[ ]

我突然得到了此错误消息"ERROR_LOCK_TIMEOUT",我该怎么办?[ ]

  • 你是否在Gallery中同时进行多个操作?比如,是否在多个浏览器窗口中同时上传很多图片?如果是这样的就能解释为何其中一个窗口会出现此错误消息了,因为它被其他任务所阻断了。
  • 如果没有并发操作的话,那就可能是一个旧的'lock'仍留存于Gallery系统中,以致阻断其他所有进程。
    • 如果你使用数据库locking(在'Site admin' -> 'General'中有一个选项用于在数据库locking和文件locking之间切换),那么你可以尝试使用phpMyAdmin来删除 'g2_Lock' 表格中所有的行,从而移除此旧'lock' 。
    • 如果你使用的是文件locking,你可以尝试清除缓存来移除此'lock'。参见:如何清除缓存数据?

PHP的 __FILE__指令无法正常运行,怎么办?[ ]

Gallery依赖PHP的 __FILE__指令返回当前文件的绝对文件系统路径。由于PHP存在的一个bug,__FILE__在旧版本PHP中返回的是一个相对路径。

  • 大多数情况下,你可以说服你的webhost升级PHP版本来解决此问题。
  • 对于某些罕见的平台来说,此bug在最新版本的PHP中仍然存在。如果是这样的话,你有必要提交一个PHP的bug报告,则对应此平台的bug就会被修复。比如SunOS 5.8上的PHP 4.4.4,如果任何一个Gallery文件夹的父族文件夹对于web服务器用户不可读的话,它就会返回无任何路径的文件名。

如何清除缓存数据?[ ]

Gallery将不常变化的数据缓存于存储文件夹中,这包括有模板,数据库中的数据等。 如若发生不良情况而需要清除缓存的话,请浏览至http://www.example.com/gallery/lib/support/index.php,输入你的Gallery安装密码,选择"缓存维护(Cache Maintenance)"接着删除缓存。一般来说,最好不要选择缩略图和重设尺寸图片(Thumbnails and resizes) (派生)缓存(重申一下:请勿选择缩略图和重设尺寸图片(Thumbnails and resizes)缓存的删除,因为对于大的相册集来说,重新建立它相当耗时)。

web服务器错误日志(error log)是什么?[ ]

Gallery在web服务器上运行PHP应用程序,而当致命错误出现时,比如,因资源不充分造成的错误(存储记忆,磁盘空间,执行时间等),Gallery往往无法修复这些致命错误,因为web服务器终止了请求。 不良情况通常是:

  • web浏览器中空白/为空页面,或
  • 浏览器特定错误页面(请不要将这个与Gallery应用程序级错误页面相混淆,后者总是显示一个布局得体的错误页面),或
  • 当点击一个链接时,页面根本没有反应,或
  • 浏览器要你下载当前页面(main.php),或
  • 你可能会看到致命错误:…超时(Fatal error: Maximum execution time of) 一类的PHP错误,或
  • HTTP 500内部服务器错误页面

Webs服务器通常将这些错误时间保存在错误日志中。此方法有利于问题的诊断,因为通常错误日志包含的信息量比单纯不良症状所透露的信息量要多。

Apache 将此日志保存为文件形式。作为一个网络托管业务客户,你可以经常在网站管理部分(cPanel,Plesk等)查看错误日志。如果你找不到此日志放在哪,请向你的webhost或管理员求助。

当使用预安装程序后,如何通过FTP软件上传一个外观主题或模块?[ ]

如果你是使用预安装进行Gallery安装的话,需要首先打开modules/和themes/ 目录先进行访问才能自行手动上传外观主题和模块。

  1. 来到http://www.example.com/gallery/lib/support/index.php,用Gallery安装密码登录并点击"文件系统权限(Filesystem Permissions)"链接。
  2. 点击"添加新建模块或外观主题(Add a new module or theme (使得模块和/或外观主题可写))" 来打开你的themes/和modules/文件夹。
  3. 现在你就可以通过FTP软件上传外观主题或模块了。
  4. 最后别忘了在"文件系统权限(Filesystem Permissions)"页面上"关闭" themes/和modules/文件夹
  • 注意,尽管自Gallery 2.2版本以来,你可以通过Site Admin -> Plugins页面直接存取新模块和外观主题,FTP却不再是必须的了(除非模块和外观主题不存在于存储库中)。
  • 对于多站点(multisites)来说,lib/support/仅在Gallery2.2之后可用。
  • lib/support/ -> "Filesystem permissions"仅在Gallery 2.1.1a后可用(Gallery2.1.0中尚未出现)

如何显示PHP错误?[ ]

在分析一个问题时,你希望确保自己注意到了所有可能的提示。这就是为什么你希望PHP在这种情况之下能够显示错误日志。

  • 可以由Gallery 2.2开始,它胜任将Gallery设定为debug 模式
  • 在Gallery 2.0和Gallery 2.1(包括2.1.2)中,debug模式无法自动启用PHP错误显示。你需要手动启用它。
  • 极少数情况下,你还得确保PHP错误不仅要显示出来,还要被记录下来。

另见:* 如何查看web服务器的错误日志?

通过浏览http://www.example.com/gallery/lib/support/index.php -> PHPinfo上的Gallery'的phpinfo页面,你可以找到所有我们感兴趣的PHP配置细节。包括有:

  • display_errors (我们希望它为On 或1)
  • display_startup_errors (我们希望它为On 或1)
  • log_errors (我们希望它为On 或1)
  • error_log (它应当被定义)
  • error_reporting (它应当为2047或更大值)
  • output_buffering (它应当为0或Off)

你可以要求webhost帮助配置PHP,以便于debug。或者你可以用文本编辑器打开Gallery的main.php文件并将:

 <?php

替换为

 <?php
 ini_set('display_errors', 1);
 ini_set('log_errors', 1);
 ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
 error_reporting(E_ALL);

然后你需要将一个空的文本文件放置到你的gallery文件夹下并将其chmod为666(即所有人可读可写权限)。

PHP错误一旦发生将会被记录在此文件上。

当你完成问题诊断和debug后,你应该将上面的几行语句从main.php中删除,并将error_log文件也一并删除。

如何修复升级向导所报告的Gallery存储文件夹文件系统权限问题?[ ]

我们要先检查你的存储文件夹文件系统权限才可以开始实际的升级过程。有3种常见原因会导致此系统检查失败:

  • 在你的存储文件夹中没有versions.dat文件。修复方法:在存储文件夹中创建一个versions.dat文件
  • 如何修复Gallery存储文件夹文件系统权限问题?
  • 安装Gallery时,你可能会为存储目录('data', './data' or '../data/' ),定义一个相对而非绝对文件系统路径,而实际上你应该输入'/some/path/to/data/'(Linux)或'c:\some\data'(Windows)。对于G2.1以来的版本我们能够确保该路径是作为一个绝对路径保存的。但是,如果你是由一个稍旧版本升级过来的话,你就会遇上我们正在探讨的问题。修复方法:但开config.php,将data.gallery.base路径修改为一个绝对路径。然后再次运行系统检查步骤。

升级一个安装有预安装的Gallery[ ]

参见升级一个安装有预安装的Gallery

无法登录时怎样才能禁用一个模块?[ ]

  • 首先,确认你确实无法再登录。如果你仍可以登录的话,你可以在site admin -> 插件中禁用模块。

如果失败了,你必须手动修改数据库。(你可以使用如phpmyadmin一类的基于web的工具来做此事)。

  1. 登录到g2database,选择(g2_)PluginMap表格。
  2. 在此你必须修改需要禁用模块的句行,比如"captcha"代表的是CAPTCHA模块。
  3. 运行下面的SQL(注:此例用于禁用CAPTCHA模块)。甚至使用phpMyAdmin这样的web界面也可以进行此操作,仅需点击"sql"标签。
UPDATE g2_PluginMap SET g_active=0 WHERE g_pluginId='captcha';
DELETE FROM g2_FactoryMap WHERE g_implModuleId='captcha';
  1. 最后清除数据库缓存

屏幕上出现了"数据库错误(Database Error)"该怎么办?[ ]

如果你移动了服务器或host,就有可能会碰上"数据库错误(Database Error)",错误消息内容是"An error has occurred while interacting with the database.(与数据库交互时发生了一个错误。)"。如果你的Gallery使用MySQL,此错误可能源自新机器/服务器上拥有别个MySQL客户端链接库。如果要尝试进行修改的话,在config.php中,你可以将

 $storeConfig['type'] = 'mysqli';

修改为

 $storeConfig['type'] = 'mysqlt';