docker中基于centos8的ORSEE系统的安装
ORSEE系统是一个志愿者招募系统,是我帮学校一个文科老师部署的(挣点零花钱)。我直觉感觉没多少人会用这个应该····但是既然没什么中文资料,我还是写一个安装流程吧
因为虚拟机上部署了不止一个系统,所以相比直接在环境里面配,我采用了docker进行部署,回头来看确实是一个明智的决定,特别是在玩炸了几次之后····这些非互联网的系统使用的工具确实都比较落后,没什么中文参考资料,并且项目没有README,要从一个wiki上找安装方法
另外,一个主要的麻烦是这个系统是基于PHP的,小弟生的比较晚,没赶上这门技术的高峰期,折腾起来颇为痛苦,之前主要就是卡在了mysql的pdo的安装上,我会在最后讲遇到的问题。
安装步骤:
-
虚拟机上安装docker,换阿里云的镜像加速器
-
把centos的镜像拉下来,我这里使用的是当时最新的镜像,是centos8的版本。选择centos的原因是因为它资料比较多,我猜它会比较适合这种老系统的安装(事实上也确实挺适合的)。这里小弟也试过centos7的镜像,但是遇到了问题,我也会放到最后说
-
把orsee的源码拉下来,地址是:https://github.com/orsee/orsee/releases
解压后放置在目录下,我的目录是/home/test/orsee
-
我的启动脚本:
# /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
-
进入容器之后按这篇文章的要求一步一步安装,我尝试了许多次,只有这篇文章的方法在我这里是靠谱的。
注意少许问题:
- 镜像中不包括防火墙,需要先安装
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
- 镜像中不包括防火墙,需要先安装
-
安装crontab,我是照着这篇文章安装的
-
之后的步骤就按/orsee/install/INSTALL.howto里写的那样就行
-
在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
这里的数据库名称、用户名和密码要和上面的配套
-
键入
crontab crontab-for-orsee
-
键入:
% cp settings-dist.php ../config/settings.php % cd ../config/
-
打开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";和上面你设置的配套
其他的选项,例如邮箱等等也可以改,看你需求了
-
-
走到这里的话应该就没问题了,在浏览器中输入http://localhost/orsee/admin,应该就能进入界面了,默认用户名是orsee_install,密码是install
-
可以把现在的容器保存一下了,或者我更建议弄到一半的时候就保存下免得弄炸了恢复起来麻烦
-