本项目为 中国地质大学(北京)(CUGB)
ACM 集训队成员基于laravel
&vue.js
面向学校开发的第四代Online Judge
平台。
- Mysql Server
- PHP (>=7.1)
- NodeJS (>=8.0)
- Composer
- HTTP Server
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:
访问官方网站, 自行选择合适版本下载并安装
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 [email protected] --with-freetype
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 请自行访问其官网,获取下载及安装方式
请自行访问官网,获取下载及安装方式
可以使用nginx
,apache
等 HTTP 服务器
开发环境推荐使用 PHP 内置服务器
通过以下命令来克隆项目(windows 用户 需要自行安装 git)
git clone https://github.com/CUGBOJ/newhope.git
请 fork 该项目来进行 pull request
首次运行时,需要进行一些环境配置。
-
在数据库中创建一个 Database
-
复制项目中的
.env.example
为一个新文件.env
。打开.env
,根据先前的数据库配置情况填写DB_DATABASE
,DB_USERNAME
,DB_PASSWORD
等字段。 -
安装所有依赖库
composer install
npm i
- 运行以下命令来生成 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"
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
- 修改 nginx 配置文件
cd /etc/nginx/sites-available/
vi default
- 在列表中增加 index.php
index index.php index.html index.htm index.nginx-debian.html;
- 将 Web 服务器的根目录指向 public 目录。该目录下的 index.php 文件将作为所有进入应用程序的 HTTP 请求的前端控制器。
root {YourProject}/public;
- 其他配置
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 使用了大量的 magic method,在使用 IDE 的时候我们有时无法获得正确的高亮和自动补全。
Laravel IDE Helper 可以帮助我们做到更多。