-
Notifications
You must be signed in to change notification settings - Fork 7
安装指南
WZOJ是一个标准的LAMP应用,所以首先请确保有一个LAMP环境。
要求:PHP版本 >= 7.3.0
如果你不知道如何安装:
Debian
Ubuntu
Arch
Red Hat
...
为WZOJ创建一个空数据库,建议专门创建一个用户。
WZOJ大量用到redis,所以请安装redis缓存系统并启动服务。
Redis Quick Start
下载最新版本的WZOJ,以下载至/home/www/wzoj
为例。
新建Apache配置文件:对于Debian/Ubuntu用户,在/etc/apache2/sites-enabled/
目录新建文件,如wzoj.conf
。
修改/etc/apache2/sites-enabled/wzoj.conf
文件为
<VirtualHost *:80>
ServerAdmin youremail@em.com
DocumentRoot /home/www/wzoj/public
##ServerName servername.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/home/www/wzoj/public">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
并且需要开启mod_rewrite
, mod_headers
模块。
重启apache
服务器。
首先安装composer。然后在/home/www/wzoj
执行
composer update
(耗时随网络情况变化,可能较长)
国内服务器可以考虑使用 阿里云 Composer 镜像 进行加速。
在/home/www/wzoj
执行cp .env.example .env
创建配置文件。
执行php artisan key:generate
生成随机key。
编辑.env
文件,修改以下项:
APP_NAME=网站名称 //网站对外名称,在发送的邮件中等地方显示,可以使用中文
APP_URL=https://sample.com //网站对外地址,在发送的邮件中等地方显示
APP_DEBUG=false //关闭调试模式
DB_HOST=127.0.0.1 //数据库服务器地址,默认为本地
DB_DATABASE=wzoj //数据库名
DB_USERNAME=wzoj //数据库用户名
DB_PASSWORD=password //数据库密码
PUSHER_APP_SECRET=secret //随便改成一个随机的密码
OJ_DATA=/home/judger/data //题目数据目录,需要有读写权限。
- 如果你的redis不是本地,同时修改 REDIS_ 开头的选项。
- 若要使用邮件功能,如重置密码功能,请同时修改 MAIL_ 开头的选项,配置邮箱地址与密码。
- 请确保
OJ_DATA
指向的目录存在且有读写权限,否则打开某些页面会出错。 - 对于这里没有提到的其它选项,若你不知道他们的含义,请不要随意修改。
http服务器需要对运行目录有读写权限,可以通过把http用户设置成owner来实现。
chown -R www-data.www-data /home/www/wzoj
其中www-data
为http服务器所使用的用户。
执行php artisan migrate
,导入数据库,这将生成表结构并插入某些初始数据。
浏览器通过 websockets 与服务器建立连接,以实时更新页面。
你需要修改配置文件,把SOCKET_IO_SERVER
修改成服务器的ip地址,
然后在这个服务器上启动 websockets 服务:
php artisan websockets:serve
这个服务需要常驻。
浏览器会通过6001端口与该服务通信,所以请确保你的防火墙没有禁用该端口。
修改配置文件中的SOCKET_IO_PORT
选项 不能 修改这个端口。
通过'Default'通道注册一个普通账户(不建议将用户名设为'admin'等),并记下用户id(一般为1).
在role_user
表中添加一个(user_id = 1, role_id = 1)
的项,赋予管理员权限。
安装完成后可以执行以下命令以优化性能
php artisan config:cache
php artisan route:cache