Programming Life
相信不能相信的,完成不能完成的。矛盾,就象征进步。
posts - 151,comments - 7,trackbacks - 0

打算用著名的 Gallery 图库套件给宝宝做个网络相册,Gallery 有多个版本,v2 非常成熟,在网络上的应用很多;而最新的 v3 是完全重写的版本,效率更高,而且现在插件模组也越来越丰富,因此最终选定v3。Gallery 对于照片的处理库有三个选择:GDImageMagickGraphicsMagick,相对于PHP内置的GD,ImageMagick 有着更为高效、资源占用更少的优势,当然是首选。

服务器是CentOS + Apache,默认没有ImageMagick,必须自己安装,直接从官网上下载了最新的 ImageMagick-6.6.7-0.x86_64.rpm,很快装好,httpd reload 之后测试了一下,ImageMagick已经正常工作了。但是进入到 Gallery 的图形设置页面,却发现虽然检测到了ImageMagick,却无法正常启用。错误提示:ImageMagick is installed, but PHP’s open_basedir restriction prevents Gallery from using it. 因为 open_basedir 的限制,Gallery 无法访问 ImageMagick。

检查PHP.ini,却发现 open_basedir 根本就没有做配置,百思不得其解,继续折腾了半天都没找出原因来,最后突然想到,服务器上装了 DirectAdmin,当前的站点是通过 DirectAdmin 建立的,会不会是 DirectAdmin 做了特别配置?一查,果然 DirectAdmin 在针对每个用户的 httpd 配置文件(/usr/local/directadmin/data/users/用户名/httpd.conf)中做了相应的限制:

php_admin_value open_basedir /home/nacox/:/tmp:/var/tmp:/usr/local/lib/php/

添加 ImageMagick 的安装路径:/usr/bin/之后,Gallery 就可以正常识别并启用 ImageMagick 了:

不过修改用户配置的办法是治标不治本,如果在 DirectAdmin 里对用户作了修改,配置文件就会被复原。最后联系了 DirectAdmin 的技术支持,找到了一个一劳永逸的办法:修改 DirectAdmin 的用户配置模板。

全局的httpd配置文件:
/usr/local/directadmin/data/templates/httpd.conf

系统自动套用的模板:
/usr/local/directadmin/data/templates/virtual_host.conf
/usr/local/directadmin/data/templates/virtual_host2.conf

二级域名的模板:
/usr/local/directadmin/data/templates/virtual_host_sub.conf
/usr/local/directadmin/data/templates/virtual_host2_sub.conf

第一个为新建用户时的模板,带数字2的为编辑用户时套用的模板。

直接在模板里修改了参数,这样以后即便修改用户也不怕了。而且所有的站点都可以直接使用 ImageMagick ,不仅仅限于 Gallery。

UPDATE:

傻了,刚刚发现其实在 DirectAdmin 控制面板中就可以直接开关指定域名的 open_basedir 限制(PHP SafeMode Configuration), 也可以WEB查看和修改每个用户的 httpd.conf 文件(Custom HTTPD Configurations)。只能怪自己对 DirectAdmin 的了解不够啊~

posted on 2011-01-12 14:00 Prog 阅读(652) 评论(0)  编辑 收藏 引用 网摘 所属分类: LinuxApachePHPLAMP

只有注册用户登录后才能发表评论。
网站导航: