วิธีการติดตั้ง
เว็บ
- ติดตั้งและกำหนดค่าเซิร์ฟเวอร์ PHP ที่มีอยู่เช่น Apache, Nginx ฯลฯ ผู้ใช้ Linux แนะนำให้ติดตั้ง SYSVSem ส่วนขยาย PHP
- ติดตั้งและเริ่มต้นเซิร์ฟเวอร์ MySQL เรียกใช้
doc/init.sql เพื่อเริ่มต้นฐานข้อมูลและแก้ไขข้อมูลการเชื่อมต่อฐานข้อมูลใน web/code/inc/database.php - หากต้องการแสดงสูตรคณิตศาสตร์ให้ดาวน์โหลด MathJax และ Decompress ไปยัง
web/assets/Mathjax/ - คัดลอกเนื้อหาทั้งหมดในเว็บไดเรกทอรีไปยังไดเรกทอรีรูทเว็บไซต์เพื่อให้แน่ใจว่าผู้ใช้เซิร์ฟเวอร์ (เช่น www) ได้อ่านและเขียนสิทธิ์ (770)
- ทดสอบว่าคุณสามารถเข้าถึง http: //localhost/code/index.php
เสื้อกล้าม
ผู้ใช้ Windows: (เลิกใช้แล้ว)
- แก้ไขไดเรกทอรีข้อมูลรหัสผ่าน mysql และข้อมูลอื่น ๆ ใน
daemon/windows_binary/config.ini - เรียกใช้
daemon/windows_binary/daemon.exe - หากพรอมต์ "เริ่มสำเร็จการรอการส่ง ... " หมายความว่า Daemon เริ่มต้นและส่งการทดสอบคำถามสำเร็จ
ผู้ใช้ Linux:
- การติดตั้งเครื่องมือรวบรวมข้อกำหนด:
- g ++> = 4.6
- libmicrohttpd> = 0.9.21
- libmysqlclient ที่สอดคล้องกับ mysql เวอร์ชัน
วิ่งใน daemon/
make
หากไม่มีข้อผิดพลาดให้แก้ไขไดเรกทอรีข้อมูลรหัสผ่าน MySQL และข้อมูลอื่น ๆ ใน daemon/config.ini
วิ่งใน daemon/
./daemon
หากพรอมต์ "เริ่มสำเร็จการรอการส่ง ... " หมายความว่า Daemon เริ่มต้นและส่งการทดสอบคำถามสำเร็จ
ไฟล์กำหนดค่า
เสื้อกล้าม
#### config.ini
- database_user/database_pass คือชื่อผู้ใช้การเชื่อมต่อและรหัสผ่านของฐานข้อมูล MySQL และรหัสผ่านสามารถว่างเปล่าได้
- Datadir เป็นไดเรกทอรีที่เก็บข้อมูลการประเมินผล ไดเรกทอรีนี้เก็บไดเรกทอรีที่ชื่อตามหมายเลขคำถาม แต่ละไดเรกทอรีที่ชื่อโดยหมายเลขคำถามจะเก็บข้อมูลทดสอบสำหรับคำถาม ข้อมูลการทดสอบสามารถเป็นชื่อไฟล์อินพุตและเอาต์พุตที่จับคู่ได้เช่น:
- /home/judge/data/1000/a1.in
- /home/judge/data/1000/a1.out
- /home/judge/data/1000/hello.in
- /home/judge/data/1000/hello.out
- /home/judge/data/1001/abc.in
- /home/judge/data/1001/abc.out
- /home/judge/data/1001/c2.in
- /home/judge/data/1001/c2.out
- [lang*] ภาษาการส่งที่ได้รับอนุญาตและตัวเลือกการรวบรวมที่สอดคล้องกันสอดคล้องกับการกำหนดค่าเว็บ lang_conf.php
เว็บ
#### lang_conf.php
- lang_name ตั้งค่าชื่อที่แสดงสำหรับแต่ละภาษา
- Lang_ext Set Source File File Extensions สำหรับภาษาต่างๆ
#### cookie.php
- COOKIE_KEY ตั้งค่าสตริงที่ซับซ้อนเพื่อเข้ารหัสคุกกี้ จะต้องมีการแก้ไขเมื่อนำไปใช้ในสภาพแวดล้อมการผลิตเพื่อหลีกเลี่ยงการปลอมแปลงคุกกี้
- COOKIE_EXPIRE เวลาหมดอายุของคุกกี้ (ใช้เพื่อจดจำเข้าสู่ระบบ)
#### checklogin.php
- ต้องการ _auth ไม่ว่าจะจำเป็นต้องมีการรับรองความถูกต้องทั่วโลกนั่นคือคุณสามารถอ้างถึงคำถามของ OJ ได้หลังจากเข้าสู่ระบบ ฯลฯ
อัปเดต
คุณสามารถทดสอบส่งคำถามตอบคำถาม
- เพิ่มวิธีการ: เปลี่ยนวิธี
judge เพื่อ Submit ใน edit.php - อัปเดตไฟล์อินพุตที่ดาวน์โหลดโดยผู้ใช้: คลิกปุ่ม
Update ใน problempage.php (หากคุณต้องการเพิ่มไฟล์เพิ่มเติมโปรดใส่ addition.zip ในไดเรกทอรีของข้อมูลทดสอบ)
เปลี่ยนวิธีการเรียงลำดับของข้อมูลการทดสอบ: ความยาวของไฟล์อินพุตถูกใช้เป็นคำหลักแรกและลำดับพจนานุกรมเป็นคำหลักที่สอง
ในการเปรียบเทียบจุดลอยตัวเราตัดสินว่าเอาต์พุตของผู้ใช้เป็น nan หรือไม่