IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 在Centos8上部署基于jnoj二次开发的qluoj的流程,以及出现的问题和解决方法 -> 正文阅读

[PHP知识库]在Centos8上部署基于jnoj二次开发的qluoj的流程,以及出现的问题和解决方法


一、部署流程

系统:Centos8.0

预安装:

  • LNMP环境一键安装(mysql 5.5.62, php7.4.21, nginx1.20.1):
    wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh lnmp
    
  • Git安装:
    yum install -y git
    

部署命令:(在root用户下)

git clone https://github.com/linkscx/qluoj
cd qluoj
vim config/db.php #修改mysql配置,主要是修改密码
./yii install
useradd -m -u 1536 judge #创建一个用于判题的用户
yum install mysql-devel #安装编译的依赖
cd judge
make
./dispatcher
cd ../polygon
make
./polygon

配置nginx.conf

server {
        listen       80;
        listen [::]:80 default_server;
        
        # 填qluoj/web目录的位置
        root /home/wwwroot/qluoj/web;
        
        index index.php;
        
        server_name _;
        
        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                include fastcgi.conf;

				# 填find / -name "*php*.sock"的位置
                fastcgi_pass unix:/tmp/php-cgi.sock;
        }
}

二、出现的问题描述和解决方法


· 在qluoj目录下执行./yii install时,出现“Error: passthru() has been disabled for security reasons”

原因:php默认禁用部分函数
解决方法:修改php.ini,从中找到

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

在disable_functions前面加分号; 注释掉这句代码


· 编译judge和polyogn时,编译信息为“fatal error: ‘mysql/mysql.h’ file not found”

原因:缺少libmysqlclient-dev和libmysql++-dev编译的依赖

解决方法:

yum install mysql-devel

· 使用LNMP一键安装环境,访问网页500错误,nginx_error.log为"FastCGI sent in stderr: "PHP message: PHP Warning: require(): open_basedir restriction in effect. "

解决方法:关闭防跨目录设置

1.如果网站根目录下有.user.ini,进入到网站根目录

chattr -i .user.ini
rm -f .user.ini

需要重启php-fpm

2.将 /usr/local/nginx/conf/fastcgi.conf 里面的 fastcgi_param PHP_ADMIN_VALUE “open_basedir=$document_root/:/tmp/:/proc/”; 在该行行前添加 # 或删除改行,需要重启nginx


· 在OJ中提交的代码一直处于Pending状态,评测机日志(./judge/log/client.log)为"Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) ; MySQL server has gone away"

解决方法: 编辑 ./judge/config.ini 和 ./polygon/config.ini
取消注释这句话,

# OJ_MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock #MySQL 连接套接字路径

并且把OJ_MYSQL_UNIX_PORT路径换成如下find命令找到的的结果

find / -name "mysql.sock"

· 在OJ中提交的代码,Compile Error信息为"/usr/bin/ld: cannot find -lc,-lm,-lstdc"

/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lstdc
collect2: error: ld returned 1 exit status

解决方法:安装glibc-static和stdlibc++-static静态链接

wget http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/glibc-static-2.28-151.el8.x86_64.rpm
rpm -ivh glibc-static-2.28-151.el8.x86_64.rpm  --nodeps
wget 	http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/libstdc++-static-8.4.1-1.el8.x86_64.rpm
rpm -ivh libstdc++-static-8.4.1-1.el8.x86_64.rpm  --nodeps

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:25:23  更:2021-08-23 16:26:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 23:27:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码