CentOS上的conference review系统HotCRP搭建(一)

记录在CentOS7上搭建HotCRP的详细过程。

安装所需库

基本库安装

sudo yum install -y mariadb git httpd postfix poppler-utils
  • `-y`参数表示对所有问题回答'y'。
  • CentOS上使用mariadb提供数据库服务,和MySQL完全兼容。
  • httpd即apache,这里我们使用apache作为web服务器。
  • postfix提供邮件服务,搭建好的HotCRP会给用户发送邮件(如注册账号时)。
  • poppler-utils对应pdftohtml,对提交的paper做格式检查。

PHP7.x安装

CentOS的软件源中的PHP版本是5.4的,这里我们需要7.0及以上的版本。具体操作过程:

  • 安装并使用 EPEL 和 Remi 软件仓库。
sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • 使用PHP7.3的 Remi 仓库(其他版本操作类似)并安装PHP常用库。
sudo yum-config-manager --enable remi-php73
sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

创建新用户

服务器上的网站源代码文件,需要被PHP-FPM、Apache等读取使用,为了保证安全,权限控制是非常重要的。这里我们创建一个新用户,作为源代码文件的拥有者,具体权限控制操作稍后介绍。

  1. 创建用户(假设我们创建的新用户叫bigcoma):adduser bigcoma
  2. 设置密码:passwd bigcoma
    1. 查看用户所在的组:groups bigcoma 或者 id bigcoma
    2. 新用户所在组的组名也是bigcoma
  3. 给用户添加 sudo 权限:usermod -aG wheel bigcoma
  4. 切换用户:su - bigcoma

打开web服务和数据库服务

  1. 打开Apache提供的web服务
    sudo systemctl start httpd
    

    重启、关闭、查看状态分别将上述指令中的 start 换成restart、stop和status。

  2. 打开mariadb的数据库服务
    sudo systemctl start mariadb

    数据库服务的其他操作和Apache类似。

  3. 在 Ubuntu 系统上,打开Apache服务也可以使用 sudo service apache2 start。关于 systemctl 和 service 的区别:
    1. systemctl 使用 /lib/systemd 中的文件。
    2. service 使用 /etc/init.d 中的文件。

设置HotCRP数据库服务

  1. 给数据库的 root 用户设置密码:
    sudo mysql_secure_installation

    起始是空密码,直接回车。随后可以设置新密码。

  2. 下载HotCRP源代码到刚才创建的用户home目录下。切换到新用户bigcoma后:
    git clone https://github.com/kohler/hotcrp

    为了加快下载速度,可以将仓库导入国内的码云,在git clone码云仓库地址,速度会更快。

  3. 进入代码文件夹后,创建会议数据库。
    sudo lib/createdb.sh --user=root --password=root_password_here

    创建会议数据库的账号和密码。这些信息保存在代码文件夹下的conf/options.php中。

  4. 上述指令运行后会创建conf/options.php。需要填写的信息:

    1. "contactName" 和 "contactEmail" 会出现在HotCRP发出的邮件中(邮件模板也可以在搭建好的网站上再修改)。
    2. "emailFrom":邮件From: 栏展示的邮箱。
    3. "emailSender":邮件“信封”地址。
    4. 实际我只填写了contactName和contactEmail,之后会详细介绍邮件服务。
  5. 简要介绍电子邮件的 “From:” 和 “信封” 地址。
    1. From: 是平时我们收到邮件时,在页面上方看到的发件人。
    2. “信封”地址是SMTP服务器看到的发件人。
    3. 这两个地址可以不同:From:是给收件看的,收件人可以给这个地址回信;信封是给服务器看的,如出错时,错误信息会发送到信封上的地址。
    4. 用生活中的例子类比:从网上购物,盒子上有一个发件地址;但是盒子内,可能会有说明在退货时需要退回到另一个仓库地址。
    5. 这一特征可能被攻击者利用:攻击者将信封地址设成自己能控制的,使邮件能通过SMTP服务器的过滤;但在电子邮件的From:中,写“银行”等地址诈骗。

参考资料

  1. https://serverfault.com/questions/867322/what-is-the-difference-between-service-and-systemctl
  2. https://helpspot.pobox.com/index.php?pg=kb.page&id=260
  3. https://linuxize.com/post/install-php-7-on-centos-7/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值