#######################################################################
# 如果需要其他支持文件，请注意查看 readme.txt 文档，谢谢！
#######################################################################
#
################### LyBBS 『凌云论坛』的Linux安装 ######################
------------------------------------------------------------------------
# 有很多朋友在使用Linux平台，但我们的论坛在Linux上安装讲解很少，下面专门
# 开个篇章，讲解Linux上的一些安装说明(这里只是对其他文档的补充)：
# 下面部分软件可以在http://www.lybbs.net找到
------------------------------------------------------------------------
1.J2SDK 1.4.2_03
　你下载到的，应该是一个bin文件，或者是一个rpm文件，把文件上传到/usr/local下面
　我们以J2SDK 1.4.2_03为例。
　登录成root，执行
    cd /usr/local
    chmod +777 j2sdk-1_4_2_03-linux-i586-rpm.bin
    ./j2sdk-1_4_2_03-linux-i586-rpm.bin
　回答yes，此时，会解出一个j2sdk-1_4_2_03-linux-i586.rpm出来，或者直接下载了rpm包，就执行
　　rpm -ivh j2sdk-1_4_2_03-linux-i586.rpm
　完成J2SDK安装。进入/usr/java中会看到新目录j2sdk1.4.2_03，这就是Java_home
2.Tomcat
　跟Windows平台安装差不多，解压到/usr/local下面。
    cd /usr/local/tomcat/bin
    chmod +755 *.sh
    cd /usr/local/tomcat/conf
    vi server.xml
　修改相应的host目录及端口，可以参考另一个文档，服务器安装一节。
　如果论坛程序在使用过程中经常出现java.lang.OutOfMemoryError的错误，可以调大Tomcat的内存
　使用量，下面的例子是把Tomcat的内存使用量增加到256M：
  vi /etc/profile
  移到最末行，插入
    JAVA_OPTS="-Xms256M -Xmx256M"
    export JAVA_OPTS
　注意上面一定要加双引号。退出系统，然后重新登录，用env查看是否设置正确。
3.MySQL
　默认Linux操作系统都会安装，下面我主要讲一个错误的修复。
　我们发现，在RedHat Linux平台上，设置localhost上可以访问mysql的用户在JDBC中
　不能正确连接数据库，表现为Access denied...
　这是RedHat Linux的一个bug,可以参考下面的解决步骤：
　　1.假设你的服务器名叫server，IP是192.168.0.1
　　2.su为root，vi /etc/hosts
    3.加上一行，192.168.0.1 server
    4.删掉localhost后面多余的东西
　　5./etc/hosts看上去应该像下面这样

192.168.0.1 server
127.0.0.1 localhost

    6.保存修改，reboot
　MySQL的配置文件一般是/etc/my.cnf，可以适当修改。

>>>>建议Linux用户使用crontab -e做个定时执行脚本，这样可以定期检查数据库，下面是例子，
　　35 0 * * 0 /path/to/myisamchk -s /path/to/datadir/*/*.MYI
　　在我这边，样子是这样的(使用RedHat Linux 9.0 / MySQL 3.23)：
　　35 0 * * 0 /usr/bin/myisamchk -s /var/lib/mysql/lybbs/*.MYI
　　意思是每星期天凌晨0:35执行数据库检查，更多关于crontab的资料请查询MySQL官方数据库文档。

4.权限
　因为Linux系统对权限控制非常严格，如果权限不正确，可能导致
　　一、上传/删除头像失败；
　　二、上传/删除附件失败；
　　三、发布/删除搜索引擎失败；
　　。。。。。。
　如果出现以上一种或者几种情况，就可能说明Linux权限有问题，下面我们会详细描述一下：
　Linux系统中最重要的就是用户，用户的不同决定了该用户的权限不同，在Linux系统中，享有最高权限的
　是root用户，其他新建的用户是一般用户，我们假设一个newuser用户，如果登录成root用户，并启动Tomcat
　或者Resin或者WebLogic或者WebSphere等JSP服务器，这样，tomcat等进程就享有root用户所有的权限，这样，
　论坛使用过程中应该不会出现问题，因为root用户对所有的文件夹都具备写权限，但是，如果是登录成newuser
　用户，再启动tomcat/resin/wls/was等JSP服务器，这样tomcat等服务器就只有newuser的权限，如果newuser对
　lybbs中的upload等文件夹不具体写权限，就可能会导致以上的错误。
　因为root用户应该不存在上述问题，所以，下面我们只讲述newuser用户启动服务器的情况。
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
　首先需要登录成root用户，进入lybbs目录(假设目录是/var/www/html/lybbs)，如下命令(括号及其内为命令描述)：
    su root (登录成root用户，如果已经是root用户，可略)
    Password:****** (承上一步，登录成root时，输入root用户的密码，如果已经是root用户，可略)
    cd /var/www/html/lybbs (进入LyBBS目录)

    chmod +777 lybbs/avatars (把avatars文件夹设成所有用户可写)
    chown newuser lybbs/avatars (把avatars文件夹设成newuser所有)

    chmod +777 WEB-INF/upload (把upload文件夹设成所有用户可写)
    chown newuser WEB-INF/upload (把upload文件夹设成newuser所有)

    chmod +777 WEB-INF/config (把config文件夹设成所有用户可写)
    chown newuser WEB-INF/config (把config文件夹设成newuser所有)

    chmod +777 lybbs/temp (把temp文件夹设成所有用户可写)
    chown newuser temp (把temp文件夹设成newuser所有)

    chmod +777 WEB-INF/search (把search文件夹设成所有用户可写)
    chown newuser WEB-INF/search (把search文件夹设成newuser所有)

    chmod +777 lybbs/plugin/music/exobudpl.js (把exobudpl.js文件设成所有用户可写)
    chown newuser lybbs/plugin/music/exobudpl.js (把exobudpl.js文件设成newuser所有)

　然后，就可以退出root用户，转成newuser用户，启动Tomcat等服务器，对上传、发帖等可以作一下测试。

5.验证码在Linux平台上不能显示。
　经过测试，我们发现验证码的图片类在Linux上不能工作，经过查找原因，发现是linux上没有启动
　X-Windows，这比较麻烦，因为Linux作为服务器，根本不需要也不会启动图形服务器，后来经过研究发现，
　只要在启动Tomcat的路径上加个启动属性即可解决问题，

  Tomcat平台:
  用vi打开[%tomcat_home%]/bin/catalina.sh，
　找到start的地方（其他还有run embed等等），在里面都加上一行：
-Djava.awt.headless=true \
　保存后重新启动Tomcat，问题解决！（环境：Tomcat 4.0.27+RedHat Linux 9.0+MySQL3.23）

  Resin平台(感谢网友 taoism 提出的解决方案，发表于http://mysql.lybbs.net/bbs_topic.do?forumID=13&postID=20139):
  环境介绍：我的resin是3.0.9版本的，安装路径在/app/resin。
  １、找到/app/resin/bin目录下的wrapper.pl文件，vi打开(补充by teddy: vi是linux下的编辑器，也可以用其他编辑器编辑)；
  ２、找到这么一行“$JAVA_ARGS="";”
  ３、在其下增加一行“$JAVA_ARGS .=" -Djava.awt.headless=true";”；
  ４、重新启动resin服务器。
  (补充by teddy: 上面的“”中文引号是说明引号，只要拷贝里面的内容，而不需要连同“”中文引号)

　另外一种做法就是进入后台管理中心，找到validateCodeInGraphic=true这一行，把值改成false，
　这样就不会用图片显示验证码了。也不用修改启动文件了。只是用文本显示，外观上没有图形的优雅。


6.最后
　基本上，这样就安装完成了，最后
    vi /etc/profile
　移到最后一行，插入
    JAVA_HOME=/usr/java/j2sdk1.4.2_03
    export JAVA_HOME
    CATALINA_HOME=/usr/local/tomcat
    export CATALINA_HOME
    PATH=$PATH:/usr/local/tomcat/bin:/usr/java/j2sdk1.4.2_03/bin
    export PATH
　保存修改，退出再重新登录，用env看一下环境是否正确。

　另外，关于Locale，可能会在部分非中文平台的Linux上出现问题。首先，执行命令locale，如果结果不是
LANG=zh_CN.GB18030
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
LC_COLLATE="zh_CN.GB18030"
LC_MONETARY="zh_CN.GB18030"
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=zh_CN.GB18030
　可能程序会出现乱码，请按以下方法修改：
　执行命令
export LANG=zh_CN.GB18030
export LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CH
export LC_ALL=zh_CN.GB18030
ulimit -n 65535
locale
　如果结果如上就OK了。

　在启动之前，因为搜索引擎文件经常超过Linux允许同时打开的数目(默认1024)，所以请务必执行
　　ulimit -n 65535
　使Linux可以同时打开65535个文件，然后：
    /sbin/service mysqld start
    startup.sh(或者/usr/local/tomcat/bin/startup.sh)
  就把tomcat和mysql启动了，参考其他文档，创建数据库连接用户，
　修改相应的[%lybbs_home%]/WEB-INF/classes/db.properties，
　就完成LyBBS『凌云论坛』的安装了。