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

用户权限管理

PHP-FPM简单介绍

PHP-FPM(PHP FastCGI Process Manager)是管理PHP进程池的工具,用于接收和处理来自Web服务器的请求。PHP-FPM的主进程会控制如何将HTTP请求转发给子进程处理,每个子进程可以处理多个HTTP请求。通常每个PHP应用有一个自己的PHP-FPM进程池。

PHP-FPM用户(网站用户)

PHP-FPM用户就是我们之前创建的新用户(bigcoma),专门用于运行网站。包括以下特点:

  • PHP-FPM使用这个用户执行
  • 应该让每个网站对应唯一的用户,不要重用用户,尤其是不要使用root。
  • 用户名最好能反映对应的网站,如这里我们使用bigcoma。

Apache(Nginx)用户(网站服务器用户)

Apache和Nginx通过特殊用户运行。对Apache,在Ubuntu系统上,这个特殊用户名是www-data(组名也是www-data);在CentOS系统上,这个特殊用户是apache(组名也是apache)。

这是一个全局的网站服务器用户,所有网站都会用到。

联系网站用户和网站服务器用户

  1. 将Apache的特殊用户(apache)加入当前网站的PHP-FPM用户组(bigcoma)中。
    sudo usermod -aG bigcoma apache

    这样可以通过bigcoma这个组的权限,来控制网站服务器用户apache对代码文件的访问权限。

  2. 网站的源代码文件应该属于网站用户及其所在的组。
    sudo chown -R bigcoma:bigcoma /home/bigcoma/hotcrp/

    (change ownership)USER:GROUP。即第一个bigcoma是用户,第二个bigcoma是所在组。

  3. 源代码文件权限分配:
    1. 网站用户需要读写所有文件和读目录。并不需要执行权限,因为PHP文件是由PHP preprocessor parse,并不是直接执行。
    2. 网站服务器用户需要读所有文件和遍历目录。遍历目录当且仅当对这个目录有执行权限。
    3. 为了保证网站服务器用户能完全遍历目录,对网站用户的家目录也设置执行权限。
    4. 其他用户无法读写。
    5. 目录权限750;文件权限640。
      sudo chmod -R u=rwX,g=rX,o= /home/bigcoma/hotcrp

       

服务器访问HotCRP

让Apache中的某个网页指向代码源文件位置:修改Apache的配置文件,使之指向HotCRP的安装路径。在CentOS系统中,Apache的main configuration file位置:/etc/httpd/conf/httpd.conf ,在文件中插入语句:

<Directory "/home/bigcoma/hotcrp">
     Options Indexes FollowSymLinks
     AllowOverride all
     Require all granted
 </Directory>
 Alias /bigcom2021a /home/bigcoma/hotcrp

  • Directory后的路径是源代码文件的位置。
  • Alias后的第一个参数是网页路径,第二个参数是源代码文件位置。
  • 重启Apache服务。
  • 经过上述步骤,现在可以通过“xxx/bigcom2021a”访问我们搭建的HotCRP系统啦!xxx指网站的域名(或者服务器的IP)。
  • 对于版本更早的Apache,在配置文件中加入的语句稍有不同,具体可以参考https://github.com/brownsys/hotcrp-bar

 

修改paper submission相关参数

这里可以直接按照https://github.com/kohler/hotcrp操作,更新PHP中的设置和数据库设置。在CentOS系统上,数据库配置文件的路径是/etc/my.cnf。修改数据库设置后,需要重启数据库服务。

 

提供邮件服务

虽然可以在服务器上搭建自己的邮件服务,但操作较为麻烦,也存在安全隐患。这里我们直接使用gmail作为邮件中转,注册一个gmail邮箱,所有HotCRP系统的邮件都从这个gmail邮箱发出(能这么做的关键前提,可以使用gmail)。

注册gmail后,按照参考资料3的步骤,为postfix生成特定应用密码,修改/etc/postfix/main.cf文件内容。唯一的区别是CentOS上的TLS证书应该设置为

smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

报错解决

当出现各种错误时,可以尝试查看Apache和mail的log file,可能的文件位置是/var/log/httpd/error_log和/var/log/maillog。

参考资料

  1. https://www.getpagespeed.com/server-setup/nginx-and-php-fpm-what-my-permissions-should-be
  2. http://www.adventuresincs.com/2018-01-05-setting-up-hotcrp/
  3. http://techstacktutorial.com/sasl-authentication-failed-server-smtp-gmail-com/

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值