安装


安装环境依赖

一台运行JBOnline的服务器/开发机需要以下服务:

  • PHP 7.2+
  • Node.js 10+
  • MariaDB 10+
  • Apache/Caddy

{info} 注意:

  • 开发环境下不需要网页服务器。
  • PHP需要以下扩展:BCMath, Ctype, EXIF, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML。
  • 其他要求可参考 <Laravel官方指南>

{success} 妈耶,我没有装过以上任何一个程序,怎么办!

不用担心,Laravel帮你准备了一套虚拟机!你只需要

  • 安装VirturalBox, VMWare, Parallels, Hyper-V任意之一,
  • 然后再安装Vagrant,

即可轻松获得一套完整的开发环境!hso!具体请见 <Homestead官方安装指南>

开发环境下的安装

Clone the repository first.
$ git clone [REPO] njujb && cd njujb

Install code dependencies.
$ npm install && npm run dev
$ composer install

Prepare Laravel and database.
$ cp .env-example .env && vim .env
$ php artisan migrate
$ php artisan key:generate
$ php artisan storage:link

Start development server.
$ php artisan serve

生产环境下的安装

{success} 生产环境下也可以使用上面开发环境下的方式安装,只不过不使用PHP开发环境的服务器,而是使用Apache/Caddy等网页服务器进行处理。

实际上更加推荐下面的方法,使用docker进行虚拟化的部署,简单方便易于管理。

Clone the repository first.
$ git clone [REPO] njujb

Prepare Laravel, use `mysql` as the host of database.
$ cd ../njujb
$ cp .env-example .env && vim .env

Install Laradock and prepare webserver.
$ git clone https://github.com/Laradock/laradock.git laradock
$ cd laradock && cp env-example .env && vim .env
$ vim caddy/caddy/Caddyfile
$ docker-compose up -d caddy mariadb workspace

Enter the container and prepare the rest.
$ docker-compose exec workspace bash
$ cd /var/www/njujb
$ npm install && npm run prod
$ composer install
$ php artisan migrate
$ php artisan key:generate
$ php artisan storage:link

{warning} 致只用过Ubuntu的玩家:

当你发现容器运行不正常想要调试的时候,你就会发现:

$ sudo apt install vim
sh: sudo: not found
$ apt install vim
sh: apt: not found
$ vim
sh: vim: not found
$ vi
sh: vi: not found
$ fuck
sh: fuck: not found

你哪来的自信认为这台机器有 sudo 呢?

对没错我喷的就是你们这群整天玩弱智 sudo 梗的人,贱不贱呐(吴京.gif)

Laravel的参考Caddyfile:

https://njujb.com {
    tls admin@njujb.com
    root /var/www/njujb
    log /path/to/log_file
    errors /path/to/err_file

    fastcgi / php-fpm:9000 php {
        index index.php
    }

    rewrite {
        r .*
        ext /
        to /index.php?{query}
    }
}

放置闭源文件

将对应的文件拷贝到/public目录对应文件夹中。

注意app.cssapp.js是由npm自动生成的,不需要拷贝。

{warning} 可我没有这些闭源文件怎么办?

你傻啊 cmlnaHQgY2xpY2sgYW5kIGluc3BlY3Q=

敬告:违反相关授权协议或知识产权相关法律法规是严重的作死行为。

├─css
│      app.css
│      fontawesome.css
│      purpose.css
│
├─js
│      app.js
│      purpose.core.js
│      purpose.js
│
└─webfonts
        fa-brands-400.eot
        ......