docker中基于centos8的ORSEE系统的安装

docker中基于centos8的ORSEE系统的安装

ORSEE系统是一个志愿者招募系统,是我帮学校一个文科老师部署的(挣点零花钱)。我直觉感觉没多少人会用这个应该····但是既然没什么中文资料,我还是写一个安装流程吧

因为虚拟机上部署了不止一个系统,所以相比直接在环境里面配,我采用了docker进行部署,回头来看确实是一个明智的决定,特别是在玩炸了几次之后····这些非互联网的系统使用的工具确实都比较落后,没什么中文参考资料,并且项目没有README,要从一个wiki上找安装方法

另外,一个主要的麻烦是这个系统是基于PHP的,小弟生的比较晚,没赶上这门技术的高峰期,折腾起来颇为痛苦,之前主要就是卡在了mysql的pdo的安装上,我会在最后讲遇到的问题。


安装步骤:

  1. 虚拟机上安装docker,换阿里云的镜像加速器

  2. 把centos的镜像拉下来,我这里使用的是当时最新的镜像,是centos8的版本。选择centos的原因是因为它资料比较多,我猜它会比较适合这种老系统的安装(事实上也确实挺适合的)。这里小弟也试过centos7的镜像,但是遇到了问题,我也会放到最后说

  3. 把orsee的源码拉下来,地址是:https://github.com/orsee/orsee/releases

    解压后放置在目录下,我的目录是/home/test/orsee

  4. 我的启动脚本:

    # /bin/bash
    docker run -itd --privileged -p 80:80 -v /home/test/orsee:/var/www/html/orsee --name mycentOS centos /usr/sbin/init
    docker exec -it mycentOS /bin/bash
    

    这里我直接把本地的目录映射到容器的apache的项目目录下了,这样安装完成后就可以直接访问了,很方便

    如果不按脚本中这样而是直接启动的话会出现systemctl命令不能用的问题

    中间要离开的话按ctrl+p再按ctrl+q,再回到容器的话是docker ps先查到ID,然后docker exec -it <容器ID> /bin/bash

  5. 进入容器之后按这篇文章的要求一步一步安装,我尝试了许多次,只有这篇文章的方法在我这里是靠谱的。

    注意少许问题:

    • 镜像中不包括防火墙,需要先安装yum -y install firewalld,然后开启systemctl start firewalld.service,以及开机自动启动:systemctl enable firewalld.service
    • 编译php源码之前需要先下载httpd-devel,然后which apxs找到apxs的安装路径,详见这篇博客:https://www.cnblogs.com/meiling12/p/6096789.html
  6. 安装crontab,我是照着这篇文章安装的

  7. 之后的步骤就按/orsee/install/INSTALL.howto里写的那样就行

    1. 在mysql中键入以下命令:

      mysql> CREATE DATABASE orseedbname DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
         mysql> GRANT ALL PRIVILEGES ON orseedbname.* TO orseedbusername@localhost IDENTIFIED BY 'orseeuserdbpassword';
         mysql> FLUSH PRIVILEGES;
         mysql> quit
      

      注意其中的数据库名称、用户名和密码按自己要求设置,然后在命令行中键入:

      mysql orseedbname -uorseedbusername -porseeuserdbpassword < install.sql

      这里的数据库名称、用户名和密码要和上面的配套

    2. 键入crontab crontab-for-orsee

    3. 键入:

      % cp settings-dist.php ../config/settings.php
      % cd ../config/
      
    4. 打开settings.php,修改以下内容:

      • $settings__root_to_server="/var/www/html";apache默认的目录就是这个

      • $settings__root_directory="/orsee";这个按你/var/www/html下文件夹的名称来

      • $site__database_host="127.0.0.1";这个如果不改,用默认的localhost的话会报错:SQLSTATE[HY000] [2002] No such file or directory

      • $site__database_database="orseedbname";
        $site__database_admin_username="orseedbusername";
        $site__database_admin_password="orseeuserdbpassword";

        和上面你设置的配套

      其他的选项,例如邮箱等等也可以改,看你需求了

    5. 走到这里的话应该就没问题了,在浏览器中输入http://localhost/orsee/admin,应该就能进入界面了,默认用户名是orsee_install,密码是install

    6. 可以把现在的容器保存一下了,或者我更建议弄到一半的时候就保存下免得弄炸了恢复起来麻烦

    7. 因为要发送邮件,所以还需要安装sendmail包,参考这个:https://blog.csdn.net/q_l_s/article/details/50673153https://blog.csdn.net/weixin_34256074/article/details/85799213 记得把sendmail这个模块start了


遇到的问题

  1. 这篇文章中所说的方法安装pdo不work,主要问题是-with-pdo-mysql参数后面怎么填mysql的路径都不对,这篇同样不work
  2. 用docker(19.03.12版本)安装centos7(阿里云镜像加速器里的版本)或者centos7.4.1708(我只尝试了这两个版本),在虚拟机里的linux桌面版(我用的是lubuntu19.10)shell中启动之后,虚拟机会自动跳到一个命令行界面,要我输入centos7的用户名和密码,也有概率系统直接崩溃,跳到登录界面,所有工作内容被清空。如果有清楚原因的兄弟麻烦告诉小弟我下。
posted @ 2020-12-11 15:33  别再闹了  阅读(292)  评论(0编辑  收藏  举报