Método de instalación
Web
- Instale y configure un servidor PHP disponible, como Apache, Nginx, etc. Los usuarios de Linux recomiendan instalar SysvSem de PHP Extension
- Instale e inicie el servidor mysql, ejecute
doc/init.sql para inicializar la base de datos y modifique la información de conexión de la base de datos en web/code/inc/database.php - Para mostrar fórmulas matemáticas, descargue Mathjax y descomprima en
web/assets/Mathjax/ - Copie todos los contenidos en el directorio web al directorio raíz del sitio web para garantizar que los usuarios del servidor (como www) tengan permisos de lectura y escritura (770)
- Pruebe si puede acceder a http: //localhost/code/index.php
Demonio
Usuarios de Windows: (en desuso)
- Modifique el directorio de datos, la contraseña de MySQL y otra información en
daemon/windows_binary/config.ini - Ejecute
daemon/windows_binary/daemon.exe - Si el aviso "comenzó con éxito. HAIR para enviar ...", significa que Daemon se inicia con éxito y envía una prueba de preguntas
Usuarios de Linux:
- Instalación de la herramienta de compilación, requisitos:
- G ++> = 4.6
- libmicrohttpd> = 0.9.21
- libmysqlclient correspondiente a la versión mysql
Correr en daemon/
make
Si no hay error, modifique el directorio de datos, la contraseña de MySQL y otra información en daemon/config.ini
Correr en daemon/
./daemon
Si el aviso "comenzó con éxito. HAIR para enviar ...", significa que Daemon se inicia con éxito y envía una prueba de preguntas
Archivo de configuración
Demonio
#### config.ini
- Database_user/database_pass es el nombre de usuario y la contraseña de la conexión de la base de datos MySQL, y la contraseña puede dejarse en blanco.
- Datadir es el directorio donde se almacenan los datos de evaluación. Este directorio almacena el directorio nombrado por el número de pregunta. Cada directorio nombrado por el número de preguntas almacena los datos de prueba para la pregunta. Los datos de prueba se pueden emparejarse los nombres de archivo de entrada y salida, por ejemplo:
- /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*] El lenguaje de envío permitido y las opciones de compilación correspondientes corresponden a la configuración web lang_conf.php
Web
#### lang_conf.php
- Lang_name establece el nombre de la pantalla para cada idioma
- Lang_ext establece extensiones de archivo de origen para varios idiomas
#### cookie.php
- Cookie_Key establece una cadena compleja para cifrar cookies. Debe modificarse cuando se implementa en un entorno de producción para evitar la falsificación de las cookies.
- Tiempo de vencimiento de Cookie_EXPIRE Cookie (solía recordar iniciar sesión)
#### checklogin.php
- Require_auth Si se requiere autenticación global, es decir, solo puede consultar las preguntas de OJ después de iniciar sesión, etc.
Actualizar
Puede probar preguntas de respuesta.
- Agregar método: cambie
judge para Submit en edit.php . - Actualice el archivo de entrada descargado por el usuario: haga clic en el botón
Update en problempage.php (si desea agregar archivos adicionales, coloque addition.zip en el directorio de los datos de prueba).
Cambió el método de clasificación de los datos de prueba: la longitud del archivo de entrada se usa como la primera palabra clave y el orden del diccionario es la segunda palabra clave.
En la comparación de puntos flotantes, juzgamos si la producción del usuario es nan .