Skip to content

CUGBOJ/newhope

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

266 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OJ_NG

Build Status

本项目为 中国地质大学(北京)(CUGB)ACM 集训队成员基于laravel&vue.js面向学校开发的第四代Online Judge平台。


目录


环境安装

该项目依赖与以下环境,请自行检查是否已经安装以及版本符合要求

  • Mysql Server
  • PHP (>=7.1)
  • NodeJS (>=8.0)
  • Composer
  • HTTP Server

Mysql

Linux User(Ubuntu for example):

sudo apt-get install mariadb-server mariadb-client
sudo mysql_secure_installation #设置密码
sudo mysql -u root -p
use mysql;
update user set plugin='mysql_native_password' where user='root';
flush privileges; 
quit;

Windows User:

访问官方网站, 自行选择合适版本下载并安装

PHP

Linux User(Ubuntu for example):

#添加php源
sudo add-apt-repository ppa:ondrej/php
#更新apt数据,载入php源数据
sudo apt update
sudo apt-get install php7.1 php7.1-fpm  php7.1-zip php7.1-dev php7.1-json php7.1-mbstring php7.1-mysql php7.1-curl php7.1-xml
cd /etc/php/7.1/fpm/
sudo vi php.ini

取消下面几行的注释

;extension=php_curl.dll
;extension=php_mbstring.dll
;extension=php_mysqli.dll
;extension=php_openssl.dll
;extension=php_pdo_mysql.dll

Windows User:

访问 http://windows.php.net/download 选择 Non-Thread-Safe & .zip 版本,解压至相关目录后,将该目录配置进入环境变量中,复制php.ini-development并更名为php.ini

打开php.ini,寻找到extension_dir=,取消改行注释并将值修改为{php安装路径}\ext文件夹

取消下面几行的注释

;extension=php_curl.dll
;extension=php_mbstring.dll
;extension=php_mysqli.dll
;extension=php_openssl.dll
;extension=php_pdo_mysql.dll

macOS User:

使用 homebrew 安装 PHP

brew update
brew search php
brew install php@7.1 --with-freetype

Composer

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 请自行访问其官网,获取下载及安装方式

NodeJS & NPM

请自行访问官网,获取下载及安装方式

HTTP Server

可以使用nginxapache等 HTTP 服务器

开发环境推荐使用 PHP 内置服务器


相关配置

Clone 项目

通过以下命令来克隆项目(windows 用户 需要自行安装 git)

git clone https://github.com/CUGBOJ/newhope.git

请 fork 该项目来进行 pull request

首次运行配置

首次运行时,需要进行一些环境配置。

  1. 在数据库中创建一个 Database

  2. 复制项目中的.env.example 为一个新文件 .env。打开.env,根据先前的数据库配置情况填写DB_DATABASE, DB_USERNAME , DB_PASSWORD等字段。

  3. 安装所有依赖库

composer install
npm i
  1. 运行以下命令来生成 laravel 需要的 key
php artisan key:generate

如果你是 linux 用户,请保证{YourProject}/storage/{YourProject}/bootstrap/cache两个目录具备写入权限。

运行项目

composer update
composer dump-autoload
php artisan migrate:refresh --seed
npm install
npm run dev #npm run watch 可以监控js代码变化,实时编译

每次从上游获取代码后,需再次运行上述命令以重新安装相关依赖、迁移数据库、部署数据库模式的最新更改。

最后在项目路径下使用以下命令启动 PHP 内置服务器

php artisan serve

打开 http://127.1.0.1:8000 即可看到部署成功的网站

可以增加--port=<the_port_you_want>参数来指定端口,默认为 8000

打开websocket服务器

npx laravel-echo-server start

加载admin页面资源

php artisan vendor:publish --provider="Frozennode\Administrator\AdministratorServiceProvider"

Test

Run PHP tests

./vendor/phpunit/phpunit/phpunit

其他

换源

更换 Composer 软件源到国内源,可以有效提升速度与稳定性。

composer config -g repo.packagist composer https://packagist.phpcomposer.com

使用 cnpm 来代替 npm

npm install -g cnpm --registry=https://registry.npm.taobao.org

HTTP Server 配置

Nginx

  1. 修改 nginx 配置文件
cd /etc/nginx/sites-available/
vi default
  1. 在列表中增加 index.php
index index.php index.html index.htm index.nginx-debian.html;
  1. 将 Web 服务器的根目录指向 public 目录。该目录下的 index.php 文件将作为所有进入应用程序的 HTTP 请求的前端控制器。
root {YourProject}/public;
  1. 其他配置
location / {
                  # First attempt to serve request as file, then
                  # as directory, then fall back to displaying a 404.
                  #try_files $uri $uri/ =404;
                  try_files $uri $uri/ /index.php?$query_string;
          }

 location ~ \.php$ {
                  include snippets/fastcgi-php.conf;
          #       # With php7.1-cgi alone:
          #       fastcgi_pass 127.1.0.1:9000;
          #       # With php7.1-fpm:
                  fastcgi_pass unix:/run/php/php7.1-fpm.sock;
          }

Laravel IDE Helper

由于 Laravel 使用了大量的 magic method,在使用 IDE 的时候我们有时无法获得正确的高亮和自动补全。

Laravel IDE Helper 可以帮助我们做到更多。

About

New OJ new hope.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages