肿么安装Effect Game

Effect Game的安装还是很麻烦的, 原作者用的时代比较久远, 有很多软件包在新的linux系统上都可能有兼容问题, 这里做个安装记录方便后人查阅.

环境准备

  1. fedora 21
  2. 能翻墙的比较快的网络

Effect Game的需要运行在linux系统里, 理论上任何linux发行版都可以, 但是我在ubuntu上折腾了好久, 总归还是放弃了.

各个发行版虽然内核一样, 但是各种软件包可能不一样, 名字也可能不一样, 包管理工具也不一样, 所以环境这里, 还是建议用 fedora 21, 而且不能用最新版, 最新版的fedora把 yum 给替换成了 dnf, 还是很多问题.

这里的安装步骤是基本按照这个E文文档的, https://github.com/jhuckaby/Effect-Games/wiki/Installation-Guide, 启用能用yum安装的软件包都直接用yum了.

安装各种系统依赖包

作者列了yum install xxx 很多包, 但是其实可以批量安装的

如果是第一次用yum, 先更新下yum的版本库 yum repolist

批量安装, 安装完成后再敲入整个命令确认是否有安装失败的(已经安装了的不会重复安装)

yum install zlib-devel libxml2-devel libgpg-error-devel libgcrypt-devel libxslt-devel expat-devel db4-devel e2fsprogs-devel krb5-devel openssl-devel aspell-devel rpm-build gcc screen sendmail "gcc-c++" bzip2-devel freetype-devel libpng-devel libtiff-devel libjpeg libjpeg-devel libstdc++-devel curl curl-devel libidn-devel krb5-devel e2fsprogs-devel libgcrypt-devel libgpg-error-devel

创建 Effect Game 的安装目录

这里就直接按照作者的目录来设置, 大部分东东都放到这里, 避免各种引用要修改

mkdir /effect
mkdir -p /effect/perl/bin/

安装 perl 和 cpan

yum install perl
yum install cpan

作者把 perl 放到了 /effect/perl 里, 这里做个软连就好

ln -s /usr/bin/perl /effect/perl/bin/perl 
ln -s /usr/bin/cpan /effect/perl/bin/cpan

安装各种 perl 模块

第一次使用cpan时, 直接敲入 cpan 运行一次, 按提示使用自动配置

为了避免安装时可能会遇到的下面这个提示, 烦它的话可以先装一下 YAML.

>> 'YAML' not installed, will not store persistent state

cpan YAML

然后批量安装各种模块, 安装完成后再敲入整个命令确认是否有安装失败的(已经安装了的不会重复安装)

cpan LWP::UserAgent Archive::Zip Archive::Tar Class::Loader Digest::SHA Digest::SHA1 Math::Pari Devel::Symdump Module::Build MIME::Lite Test::Simple Text::Wrap CGI Devel::CoreStack Cwd IO::Socket::INET Test::Harness Time::HiRes Unicode::String Date::Parse MIME::Parser Crypt::SSLeay ExtUtils::XSBuilder IO::Socket::SSL File::lockf IPC::ShareLite Syntax::Highlight::Engine::Kate Text::Aspell Net::Twitter::Lite HTTP::Daemon File::Flock

这个需要等很久很久, 比很久很久还要久.

Text::Aspell 很容易安装失败, 按如下步骤重新安装

yum install aspell aspell-en

cpan Text::Aspell

安装图片服务 ImageMagick

ImageMagic不要用yum安装, 编译时需要指定很多环境变量, 直接下载下载自己编译.

安装jpeg和png解码库

yum install libjpeg-devel libpng-devel

作者用的ImageMagick是6.5版本, 可能会编译失败, 这里下载最新版(目前是6.9).

wget "http://www.imagemagick.org/download/ImageMagick.tar.gz"
tar zxf ImageMagick.tar.gz
cd ImageMagick-*

ln -s /usr/include/freetype2/freetype /usr/include/freetype
export CPPFLAGS="-I/usr/include/freetype2 -I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
mkdir -p /effect/fonts

./configure --prefix=/effect/magick --enable-lzw --without-threads --without-magick-plus-plus --with-perl=perl --with-fontpath=/effect/fonts --without-x --with-quantum-depth=8 --enable-shared=yes --enable-static=no

make
make install

添加库到系统

echo "/effect/magick/lib" > /etc/ld.so.conf.d/imagemagick.conf

重新加载配置

/sbin/ldconfig -v

测试是否已正常安装

perl -MImage::Magick -e ';'

没有出错就安装OK, 注意, 这里是没有什么显示

创建个软链

mkdir -p /opt/local/bin
ln -s /effect/magick/bin/convert /opt/local/bin/convert

安装音视频模块 MPG123 and OGG Encoder

安装 MPG

wget "http://www.effectgames.com/install/mpg123-1.10.0.tar.bz2"
tar jxf mpg123-1.10.0.tar.bz2
cd mpg123-*
./configure
make
make install

安装 OGG

yum install libvorbis libvorbis-devel vorbis-tools

检查下面文件在不在, 有就安装正确了

ls /usr/local/bin/mpg123 /usr/bin/oggenc

安装 Apache

先安装或更新一下openssl

yum install openssl

Apache也有很多安装选项, 自己下载来编译

wget "http://www.effectgames.com/install/httpd-2.2.14.tar.bz2"
tar jxf httpd-2.2.14.tar.bz2
cd httpd-*

./configure --prefix=/effect/apache --with-mpm=prefork --with-ssl=openssl --with-perl=perl --enable-so --enable-expires --enable-headers --enable-mime-magic --enable-rewrite --enable-ssl --enable-mods-shared="all authn_file authn_default authz_host authz_groupfile authz_user authz_default auth_basic include filter log_config env setenvif mime status autoindex asis cgi negotiation dir actions userdir alias expires headers ssl rewrite"

make
make install

之后Apache会安装到 /effect/apache

安装 mod_perl 模块, 有些系统会缺少 perl 的一些依赖, 先用 yum 安装依赖, 然后安装最新版的 mod_perl ( 目前是2.0.9 )

yum install perl-ExtUtils-Embed

wget "http://mirror.bit.edu.cn/apache/perl/mod_perl-2.0.9.tar.gz"
tar zxf mod_perl-*.tar.gz
cd mod_perl-*
perl Makefile.PL MP_AP_PREFIX=/effect/apache
make
make install

在执行perl Makefile.PL MP_AP_PREFIX=/effect/apache 时可能会报错

[  error] '/effect/apache/bin/apxs -q NOTEST_CPPFLAGS' failed:
[  error] Use of assignment to $[ is deprecated at /effect/apache/bin/apxs line 86.

问题原因是新版本的perl里面, [ 不能用于变量名了, 修改 /effect/apache/bin/apxs 源码, 把$[ 替换成 $a(vi 中可以用 %s/$\[/\$a/g 命令全局替换), 保存并重新执行 perl Makefile.PL MP_AP_PREFIX=/effect/apache

增加www用户组和用户

/usr/sbin/groupadd www
/usr/sbin/useradd -m -g www www

替换配置文件, 直接用作者的配置

wget "http://www.effectgames.com/install/httpd.conf"
mv /effect/apache/conf/httpd.conf /effect/apache/conf/httpd.conf.bak
mv httpd.conf /effect/apache/conf/

配置项目

先下载项目代码下来

wget "https://github.com/jhuckaby/Effect-Games/tarball/master"
tar zxf jhuckaby-Effect-Games-*.tar.gz
rm jhuckaby-Effect-Games-*.tar.gz
mv jhuckaby-Effect-Games-*/* /effect
ln -s /effect/htdocs /effect/apache/htdocs/effect

做一些必要配置如域名等, 具体项直接参照 安装文档

Effect Game的主要配置文件在 /effect/conf/Effect.xml, 基本上都不需要修改

启动测试一下是否正常

/effect/apache/bin/apachectl start
/effect/apache/bin/apachectl stop

初始化各种环境

创建数据存储目录和配置权限

mkdir -p /data/effect/storage
chown www:www /data/effect/storage

mkdir -p /data/effect/cleanup
chown www:www /data/effect/cleanup

创建日志的目录

mkdir -p /logs/effect
chmod 777 /logs/effect

mkdir -p /logs/apache
chmod 777 /logs/apache

创建初始数据, 执行这个脚本就行, 数据的配置在 /effect/conf/initial_data_setup.xml

/effect/bin/setup_db.pl

启动图片服务进程, Effect Game是使用了个后台进程来优化图片, 配置文件在 /effect/conf/image_service.xml, 用下面的命令启动

mkdir -p /data/effect/queue
chmod 777 /data/effect/queue

/effect/bin/imageservicectl.sh start
/effect/bin/imageservicectl.sh stop

配置定时任务, 这个任务用来处理日志文件和数据文件, 命令行敲入 crontab -e, 输入

00 * * * * /effect/bin/maint.pl hourly
30 00 * * * /effect/bin/maint.pl daily

定时任务的log输出在 /logs/effect/maint.log

过时的日志文件会被打包存储, 默认配置下存在 /backup/effect/logs/CATEGORY/YYYY/MM/DD/HH.gz, 路径可以在 /effect/conf/Effect.xml 中修改

创建备份目录

mkdir -p /backup/effect
chmod 777 /backup/effect

All Done

现在可以启动 Effect Game 啦

/effect/bin/imageservicectl.sh start
/effect/apache/bin/apachectl start

然后访问 http://127.0.0.1/effect/, 默认用户名和密码都是 admin

如果要配置域名, 可以在 /effect/apache/conf/httpd.conf 中修改 ServerName

So, enjoy it!