适用版本
本文档适用于 NexusPHP(以下简称 NP) 经修改的版本,版本号:>= 1.6
#名词释义
本文档所包含的一些专有名词含义:
ROOT_PATH,指部署应用的根目录,如
/usr/share/nginx/html/demo.nexusphp.org
RUN_PATH,指入口文件所在目录,在这里为
ROOT_PATH . 'public'
,注意要配置到 public 目录!!!注意要配置到 public 目录!!!注意要配置到 public 目录!!!PHP_USER,指运行 PHP 的用户,一般为
www-data 或 www
,以具体为准DOMAIN, 指网站域名,如
demo.nexusphp.org
#环境要求
PHP: 8.0|8.1|8.2,必须扩展:
bcmath, ctype, curl, fileinfo, json, mbstring, openssl, pdo_mysql, tokenizer, xml, mysqli, gd, redis, pcntl, sockets, posix, gmp, opcache
Mysql: 推荐 5.7 最新版或以上
Redis: 2.6.12 或以上
获取程序
克隆 xiaomlove/nexusphp ,然后切换到最新的 release 标签再安装,或者直接下载最新 release 。
WARNING
克隆时务必切换到某个 release 进行安装。不要使用最新的开发代码!
#创建数据库
首先登录 Mysql,新建一个数据库,字符集(charset)及排序规则(collate)选择 utf8 + utf8_general_ci
或 utf8mb4 + utf8mb4_general_ci
。后者支持存储 emoji 表情,前者不支持。
mysql> create database `nexusphp` default charset=utf8mb4 collate utf8mb4_general_ci; Query OK, 1 row affected (0.06 sec)
TIP
utf8mb4
需要 Mysql 5.5.3 或以上才支持。
#配置 Web 服务器
#不启用 https 配置
以 nginx 为例,只需要最基本的配置即可。在 nginx 配置目录(一般为 /etc/nginx/conf.d/)下新增一个 nexusphp.conf
server { # 以实际为准 root /RUN_PATH; server_name DOMAIN; location / { index index.html index.php; try_files $uri $uri/ /nexus.php$is_args$args; } # Filament location ^~ /filament { try_files $uri $uri/ /nexus.php$is_args$args; } location ~ \.php { # 以实际为准 fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } access_log /var/log/nginx/DOMAIN.access.log; error_log /var/log/nginx/DOMAIN.error.log; }
#启用 https 配置
启用 https,首先得准备好证书(参见下方 [关于 https])。
server { listen 443 ssl; ssl_certificate /SOME/PATH/DOMAIN.pem; ssl_certificate_key /SOME/PATH/DOMAIN.key; # 以实际为准 root /RUN_PATH; server_name DOMAIN; location / { index index.html index.php; try_files $uri $uri/ /nexus.php$is_args$args; } # Filament location ^~ /filament { try_files $uri $uri/ /nexus.php$is_args$args; } location ~ \.php { # 以实际为准 fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } access_log /var/log/nginx/DOMAIN.access.log; error_log /var/log/nginx/DOMAIN.error.log; } # http 跳转 https server { if ($host = DOMAIN) { return 301 https://$host$request_uri; } server_name DOMAIN; listen 80; return 404; }
添加完成后,nginx -t
测试是否有错误,无错误 nginx -s reload
重启生效。
#安装过程
#安装准备
以下在ROOT_PATH下执行:
composer install
,安装依赖cp -R nexus/Install/install public/
,复制nexus/Install/install
到public/
,保证最后public/install/install.php
存在chown -R PHP_USER:PHP_USER ROOT_PATH
,设置根目录所有者为运行 PHP 的用户上面一步如果不知道 PHP_USER 是谁,亦可将整个目录赋予 0777 权限:
chmod -R 0777 ROOT_PATH
以上准备工作做完,打开网站域名正常会跳转安装界面。
#执行安装
按实际情况填写每一步,注意选对时区,否则时间不对,更有可能客户端无法汇报。点击下一步,直到完成。
#创建后台任务
创建用户 PHP_USER 的定时任务,执行:crontab -u PHP_USER -e,在打开的界面输入以下:
* * * * * cd ROOT_PATH && php artisan schedule:run >> /tmp/schedule_DOMAIN.log * * * * * cd ROOT_PATH && php include/cleanup_cli.php >> /tmp/cleanup_cli_DOMAIN.log
如果没有生效,查看 /etc
下是否有 crontab
文件,如果有,在里边编辑亦可:
* * * * * PHP_USER cd ROOT_PATH && php artisan schedule:run >> /tmp/schedule_DOMAIN.log * * * * * PHP_USER cd ROOT_PATH && php include/cleanup_cli.php >> /tmp/cleanup_cli_DOMAIN.log
可通过查看重定向文件(也就是 >> 后面指向的那个文件)是否有内容输出确定是否生效。
WARNING
完成后,删除 public/install
目录。安装日志包含敏感数据,不要泄露。
#创建队列守护进程(>=1.8需要)
安装好 supervisor,在其配置目录(一般为 /etc/supervisor/conf.d/)下新增一个配置文件 nexus-queue.conf,注意替换 ROOT_PATH, PHP_USER,其中 numprocs 是启动的进程数,一般为自己 CPU 核心数即可。
[program:nexus-queue] process_name=%(program_name)s_%(process_num)02d command=php ROOT_PATH/artisan queue:work --tries=3 --max-time=3600 autostart=true autorestart=true stopasgroup=true killasgroup=true user=PHP_USER numprocs=2 redirect_stderr=true stopwaitsecs=3600 stdout_logfile=/tmp/nexus-queue.log
保存好后执行以下命令启动之:
# 启动 supervisord -c /etc/supervisor/supervisord.conf # 重新读取配置文件 supervisorctl reread # 更新进程组 supervisorctl update # 启动 supervisorctl start nexus-queue:*
#问题排查
如果不能正常跳转安装界面,查看 nginx error log。
如果看不到错误,可能是 php-fpm 错误没有输出到 nginx error log。打开 www.conf(不知道在哪尝试 whereis php-fpm
,能看到基本目录),找到 catch_workers_out
及 php_admin_flag[log_errors]
,保证其为打开状态。
修改重启 php-fpm 生效。
catch_workers_out = yes php_admin_flag[log_errors] = on
如果依然看不到错误,修改 include/core.php
约第 18 行,把 0 改为 1,把错误展示到页面上。
ini_set('display_errors', 1);
WARNING
修复错误后,记得把错误展示关闭!
#其他
#关于 https
建议使用 cloudflare 的 DNS 解析服务,它会提供免费的 ssl 证书。在 SSL/TLS 菜单下,加密模式选择完全或严格,在 [源服务器] 子菜单下创建好证书,保存上传到源服务器,按上边文档所说配置即可。
关于宝塔面板
宝塔面板是一款简单好用的服务器运维管理面板,支持中文,有较好的中文社区支持。
#安装宝塔面板
访问 宝塔官网 ,选择适合自己服务器系统的宝塔面板安装命令,按照宝塔面板官方文档进行安装。
#使用宝塔面板安装 LNMP 环境
在宝塔面板中,我们可以一键安装 LNMP 环境,即 Linux, Nginx, MySQL, PHP。
登录宝塔面板。绑定账号。在弹出的一键安装窗口选择Lnmp。
如果没有发现弹出窗口,可在面板菜单点击
软件商店
。分别安装 Nginx, MySQL, PHP, phpMyAdmin(可选)。
Nginx 建议直接最新版,MySQL建议8.0,PHP 需要8.0+
安装好PHP后点击软件商店,选择已安装PHP的设置,确保以下函数没有被禁用:
symlink
putenv
proc_open
proc_get_status
exec
pcntl_signal
pcntl_alarm
pcntl_async_signals
安装如下扩展:
fileinfo
redis
gmp
opcache
注意: 若gmp安装不成功,请执行以下命令(针对Ubuntu/Debian系统):
apt install -y libgmp-dev
或者(针对CentOS/Redhat/Fedora)
yum install -y libgmp-dev
以下扩展默认已安装,你可以在最后检查一下:
bcmath
ctype
curl
json
mbstring
openssl
pdo_mysql
tokenizer
xml
mysqli
gd
pcntl
sockets
posix
#获取程序
克隆 xiaomlove/nexusphp ,然后切换到最新的 release 标签再安装,或者直接下载最新 release 。
WARNING
克隆时务必切换到某个 release 进行安装。不要使用最新的开发代码!
#上传程序和配置数据库
在宝塔面板点击
网站
,点击对应网站的根目录(/www/wwwroot/你的域名),进入文件管理界面。上传你的程序到站点根目录下。
上传完成后解压。需要注意的是确保文件在网站根目录下,而不是子目录中。应确保 'public' 目录位于根目录的首层。
复制
nexus/Install/install
到public/
,保证最后public/install/install.php
存在。
#配置网站
在宝塔面板中点击
网站
。点击
添加站点
。按提示填写域名,选择 PHP 版本,数据库,类型选择 MySQL,并使用 utf8mb4 编码。填写账号名称,如:nexusphp,然后点击提交。
创建好网站后,点击对应网站的设置。
网站目录: 取消勾选防跨站攻击(open_basedir),运行目录选择 /public
SSL子菜单,选择Let's Encrypt,一键申请证书
在 Composer 子菜单中,选择相应的 PHP 版本,执行参数设置为 install,其余保持默认设置,然后点击执行。
伪静态,复制粘贴如下配置:
location / { index index.html index.php; try_files $uri $uri/ /nexus.php$is_args$args; } # Filament location ^~ /filament { try_files $uri $uri/ /nexus.php$is_args$args; }
设置根目录所有者为运行 PHP 的用户www。终端执行命令
chown -R www:www /www/wwwroot/你的域名
上面一步如果出错或不知道是什么意思,亦可将整个目录赋予 0777 权限:
chmod -R 0777 /www/wwwroot/你的域名
以上准备工作做完,打开网站域名正常会跳转安装界面。
#执行安装
按实际情况填写每一步,注意选对时区,否则时间不对,更有可能客户端无法汇报。点击下一步,直到完成。
#创建后台任务
点击宝塔左侧的计划任务。创建两个计划任务
任务类型 Shell脚本
任务名称 自由填写
执行周期 每N分钟 1分钟
脚本内容如下(记得把 DOMAIN 替换为自己的域名):
su -c "cd /www/wwwroot/DOMAIN && php include/cleanup_cli.php >> /tmp/cleanup_cli_DOMAIN.log" -s /bin/sh www su -c "cd /www/wwwroot/DOMAIN && php artisan schedule:run >> /tmp/schedule_DOMAIN.log" -s /bin/sh www
其中一个示例如下(注意是配置两个独立的任务,每个任务使用上方的一行脚本,而非将两行脚本用于单一任务。):
WARNING
特别提醒:执行周期是每分钟,不能修改!这里的配置只是一个入口,实际运行频率是程序控制的,修改频率整个网站运行不正常!比如魔力不会如期增涨!
完成后,删除 public/install
目录。安装日志包含敏感数据,不要泄露。
#创建队列守护进程(>=1.8需要)
从宝塔面板的商店安装进程守护管理器
,点击添加守护进程,按以下格式填写(注意替换 ROOT_PATH, PHP_USER):
名称:nexus-queue 启动用户:PHP_USER 运行目录: ROOT_PATH 启动命令:php ROOT_PATH/artisan queue:work --tries=3 --max-time=3600 进程数量:2
#问题排查
如果不能正常跳转安装界面,查看 error log。(/www/wwwlogs/域名.error.log)
如果看不到错误,修改 include/core.php
约第 18 行,把 0 改为 1,把错误展示到页面上。
ini_set('display_errors', 1);
WARNING
一旦错误修复,请务必将错误展示设置为关闭状态。
#其他
#关于 https
建议使用 cloudflare 的 DNS 解析服务,它会提供免费的 ssl 证书,免费的网站CDN,防止暴漏源站。
在 SSL/TLS 菜单下,加密模式选择完全或严格,在 [源服务器] 子菜单下创建好证书,保存上传到源服务器,按上边文档所说配置即可。
邮件发送
#设置发件人
【主要设定】-><网站邮箱地址>,填写你的发件人。必须跟下边 SMTP 用户名一样!
#SMTP 设定
【SMTP 设定】->[邮件函数类型],选择外部。下边以 QQ 邮箱为例,具体参考你的邮件服务提供商文档。
SMTP 地址:smtp.qq.com
SMTP 端口:465
加密方式:ssl
用户名:QQ邮箱完整地址,包含 @qq.com 后缀。
用户密码:授权码,不是邮箱密码。获取方式参考这里 。
完成这两步,在【SMTP 设定】下边有测试地址,点击过去打开邮件测试页面,填写一个收件邮箱地址,点击发送。如果无异常,收件邮箱会收到如下邮件。
#PT-Gen
NP 默认带了 IMDB 信息,但对于国内玩家可能更习惯于豆瓣。依靠Rhilip/pt-gen-cfworker 提供接口,集成到了 NP 中。
【主要设定】-> [开启 PT-Gen 系统],默认开启。开启后在发种页面可填写 PT-gen 支持的 douban、imdb、bangumi 的链接地址,在种子详情页展示之。
默认使用原作者 demo 接口,如若出现问题,请参考其文档自行搭建接口,填写到 【主要设定】-> [PT-Gen 接口地址]
#设置热门、推荐等
在编辑种子里边,必须是【批评家】(Picker)才看到此选项,系统管理员也不可以。因此,要设置热门、推荐等,编辑另外一个用户,设置等级
至少为:【站点设定】->权限设定->管理种子
中的等级,设置批评家
为:是
。
#新建考核
新建时建议先不要勾选 Discovered,即设置不被系统自动发现,这样就不会自动把考核任务分配给符合要求的人。
先手工分配给某个账户进行测试一下:在 User list -> detail -> Other -> Assign exam,这里选择刚才新建的考核。时间范围可以不填,这样就以考核本身设置的时间为准,如果填了,考核时间范围就以填的为准(系统自动分配是以任务本身的时间范围为准的)。分配后,在用户详情页能看到进行中的考核以及其具体进度。也可以移除考核任务(移除对应的进度也一并删除),或者再次分配之。
当测试觉得没有问题后,勾选 Discovered,这样系统就会自动将之分配给满足条件的人。
升级到1.6说明
本文档将指引你将 NP 从原始的 nexusphp.v1.5.beta5.20120707 版本升级到 v1.6。
#注意
WARNING
升级仅保留网站资源数据和数据库数据,对原版代码上的改动会丢失,请知悉!
升级前请对原代码目录和 Mysql 数据库进行全量备份!
升级前请对原代码目录和 Mysql 数据库进行全量备份!
升级前请对原代码目录和 Mysql 数据库进行全量备份!
#前期测试
#准备环境
按要求准备好环境,可以与原网站在同一台机器,也可以不是同一台。不再赘述。
TIP
如果是宝塔面板,确保以下函数没有被禁用:symlink, putenv, proc_open, exec
。
#配置新的网站
线上网站不要受到影响,配置一个新的二级域名或新域名指向一个新的网站目录,具体配置参考安装文档。
TIP
宝塔不要勾选:防跨站攻击(open_basedir)。
#建立新的数据库
导出原网站数据库,导入到一个新建的数据库中。peers
表使用的是 memory
引擎,如果数据量较大,为确保导入顺利,在 my.cnf
(一般为 /etc/my.cnf)[mysqld]
部分添加以下值保证表能装下全部数据,加完记得重启:
tmp_table_size = 10G max_heap_table_size = 10G
为加快导入速度,登录终端后执行以下语句再使用source
命令导入:
set sql_mode = ''; set foreign_key_checks = 0; set unique_checks = 0; set sql_log_bin = 0;
#获取新代码
克隆或下载新的代码到新配置的网站根目录。
#保留原资源数据
将旧网站的以下文件夹复制到新网站相应文件夹进行覆盖:
原文件夹 | 新文件夹 |
---|---|
attachments | attachments |
bitbucket | bitbucket |
config | config |
imdb | imdb |
subs | subs |
torrents | torrents |
styles | public/styles |
pic | public/pic |
将以上文件夹覆盖之后,打开config/allconfig.php
,将BASEURL
和announce_url
修改为新的:
$BASIC=array( 'SITENAME' => 'NexusPHP', 'BASEURL' => 'localhost', 'announce_url' => 'localhost/announce.php', 'mysql_host' => 'localhost', 'mysql_user' => 'root', 'mysql_pass' => 'nexusphprocks', 'mysql_db' => 'nexusphp', );
#安装 composer
到 官网 按其文档进行安装。安装完成后,在新网站根目录下执行 composer install
。
#执行升级程序
在新网站中将 nexus/Install/update/update.php
复制到 public/update/update.php
中。
打开 <新网站域名>/update/update.php
,将进入升级界面。按步骤填写,注意过程中数据库要使用新建立的那个! ,下一步,直到完成。
最后登录数据库,选择新建立的数据库,执行以下语句将与旧域名相关的项目改为新域名:
update `settings` set `value` = replace(`value`, '旧域名', '新域名') where `value` like '%旧域名%';
#验证
打开新网站首页,进行登录,检查数据是否完整,基本功能是否正常。
下载一个种子,或者进行辅种(注意 tracker 地址要为新网站的地址),看是否正常。
没有问题后,证明测试通过,旧网站可以升级。否则,请解决问题之后再考虑。
如若测试通过,而且以上测试没有花费太多时间,旧网站中间没有产生多少数据,可以直接切换使用即可(如何切换参考下面)。假如花费了不少时间产生了很多新数据,则需要将旧网站停机,重复以上步骤。这里看个人取舍。
#后续工作
#切换
将数据库中网站域名恢复为旧域名,可以执行上边提到的语句(注意新旧是反过来了)。接着将新网站的配置中 server_name 修改为原域名,旧网站的配置文件可以转移或更改其 server_name,重启网站服务器即切换完成。至此,线上就是使用新的网站目录和数据库了,旧的可以继续保留。
TIP
恢复旧版,将新网站配置文件转移,旧配置文件恢复即可。
#创建后台任务
参见安装。
#清理签到数据
如果你网站原来已经有签到功能,它是每签到一次记录一条数据,新版改为每个用户一条数据,在根目录下执行以下命令进行多余数据的清理:
php artisan attendance:cleanup
WARNING
升级完成后,记得删除 public/update
目录,升级日志包含第敏感数据,不要泄露。
#视频教程
以上有不懂的地方,可以参考视频教程:
【B站】NexusPHP 1.5 升级 1.6 基本流程
#1.6 之间升级
如从 1.6.0-beta1
升级到 1.6.0-beta2
,可以将新代码整个目录覆盖(不会删除已有资源,如种子、附件等),然后修改相关目录权限、执行 composer install
,最后运行一遍升级程序,升级过程中获取文件勾选第一个手工
。
升级到1.7说明
本文档指引你从 1.6 升级到 1.7。原始 1.5 版本的建议先升级到 1.6 后再按此文档进行升级。
#环境要求
PHP 扩展要求新增 pcntl, sockets, posix
PHP 函数
pcntl_signal, pcntl_async_signals, pcntl_alarm
不能被禁用
#升级依赖
手动执行 composer install
即可。
#执行升级
类似升级 1.6,获取最新代码,进行覆盖,复制 nexus/Install/update/update.php
到 public/update/update.php
,运行之。完成后检查各项功能是否正常。
#1.7 版本之间升级
跟 1.6 一样支持网页进行。
1.7.10 起支持命令模式。某些版本对大表进行改动或有数据迁移,网页容易超时,建议使用命令进行。执行代码覆盖后,在 ROOT_PATH 下运行命令 nexus:update
命令即可。
1.7.20 起支持直接下载远程代码进行覆盖并安装依赖。--tag=1.x.x
指定某一版本号(最新开发代码用 dev
)。--include_composer
是否更新 composer,当依赖有更新时候(看发版公告)需要,否则不需要。若更新了,插件需要重新安装,具体看博客说明 。
# >= 1.7.10 先安装依赖 composer install # 再执行升级 php artisan nexus:update # >= 1.7.20,支持直接下载远程代码进行覆盖: php artisan nexus:update --tag=1.7.22
升级到1.8说明
本文档指引你从 1.7 升级到 1.8。原始 1.5 版本的建议先升级到 1.6 后再按顺序升级。
#环境要求
PHP 扩展要求新增 opcache
#执行升级
WARNING
由于变动数据量较大的数据表,建议停机(比如停止 Nginx)进行更新!
首先下载升级命令的执行文件 app/Console/Commands/NexusUpdate.php
进行覆盖之。可直接通过 wget 命令下载再复制到相应目录:
wget https://raw.githubusercontent.com/xiaomlove/nexusphp/php8/app/Console/Commands/NexusUpdate.php
无插件用户,直接使用命令行升级即可:
# 下载最新代码,注意要 --include_composer php artisan nexus:update --tag=1.8.0 --include_composer # 安装依赖 composer install # 执行升级 php artisan nexus:update php artisan filament:upgrade
有插件用户,手工变更依赖。按下图,扩展新增 zend-opcache
,filament 修改为 2.17.14
,添加 "meilisearch/meilisearch-php": "^1.1",
接着删除 composer.lock
,最后执行命令:
# 下载最新代码 php artisan nexus:update --tag=1.8.0 # 安装依赖 composer install # 执行升级 php artisan nexus:update php artisan filament:upgrade # 升级后,插件需要升级最新版,否则管理后台 404 且插件可能工作不正常 composer require xiaomlove/nexusphp-xxx:dev-master
自己合并代码的用户,与有插件用户一致的步骤,只是不需要下载最新代码的步骤。
#创建队列守护进程
见 安装
#1.8 版本之间升级
以下针对没有修改代码的用户:
# 下载代码 php artisan nexus:update --tag=1.8.x # 执行更新 php artisan nexus:update
NP 基础知识
#目录结构
NP 是传统的多入口应用,public 目录下每个文件都是入口。原始版本没有使用命名空间,基本是面向函数编程。
大的功能模块可以分为 Web 端、Tracker 端两块(以下文件均位于 include 目录)。
Web 端:主入口
bittorrent.php
,函数文件functions.php
Tracker 端:主入口
bittorrent_announce.php
,函数文件functions_announce.php
二者公共部分:公共函数文件
globalfunctions.php
,core.php
要增加新功能时,只需:新建入口文件 -> 引入主入口 -> 开始具体业务逻辑。
#常用函数
函数名 | 说明 |
---|---|
dbconn($autoclean = false, $doLogin = true) | Web 端,连接数据库。在 v1.6 中不需要手动调用,会自动连接 |
dbconn_announce() | Tracker 端,连接数据库 |
userlogin() | 设置登录态 |
loggedinorreturn() | 判断用户是否登录 |
parked() | 判断账号是否已经封存 |
parse_imdb_id($id) | 标准化 imdb_id,不足 7 位的补充前导 0 |
sql_query($query) | 执行 DDL + DML 语句,最常用的方法之一 |
get_row_count($table, $suffix = '') | 计数查询,suffix 即是 where 条件(必须包含 where) |
do_log($log, $level = 'info') | 记录日志到文本 |
get_setting($name, $default = null) | 读取站点设定数据 |
nexus_env($name, $default = null) | 读取 .env 文件配置值 |
nexus_config($name, $default = null) | 读取 config 目录下配置文件(allconfig.php除外)的值 |
getSchemaAndHttpHost() | 获取仅包含协议、主机、端口的 URL 地址 |
getBaseUrl() | 获取仅包含协议、主机、端口、路径的 URL 地址 |
移动端 apk
#0.2.0
功能包括:站点种子浏览、聚合搜索、一键签到、下载器管理。
nexusphp_0.2.0__20220315225627.apk
#0.3.0
后端需要 1.7。
#Added:
种子列表展示标签、优惠/热门/经典/H&R信息
种子详情支持说谢谢、赠送魔力、添加评论
首页聚合新增消息、私信、投票
nexusphp_0.3.0__20220502231131.apk
=======================================
=====================常见问题============
日志怎么看
有问题第一时间查看日志,一个程序如果运行出错了不写日志,那这个程序是不及格的!
提问问题最好附上错误日志,否则神仙也帮不了你。主要有以下日志可以查看:
NexusPHP 自身写的日志,默认位于 /tmp/目录下,按日期生成,如 nexus-2022-03-24.log
PHP-FPM 的错误日志,在宝塔上:软件商店->已安装->PHP-8.0->设置->日志 可查看
Nginx 的错误日志,在宝塔上:网站设置->网站日志->错误日志 可查看
没有错误日志,一切免谈!
实在找不到相关的日志,可以把错误展示在页面上,解决问题后再关闭错误展示。
#正常页面
//include/core.php 第3行,display_errors 的值由 0 改为 1ini_set('display_errors', 1);
#安装/升级
//nexus/Install/install_update_start.php 第3行,display_errors 的值由 0 改为 1ini_set('display_errors', 1);
#日志太多撑爆硬盘
NexusPHP 默认的日志级别为 info
即一般的日志都记录,如果过多可以修改为 error
只记录错误日志,将 .env 文件中 LOG_LEVEL
修改为 error
:
LOG_LEVEL=error
另外 PHP-FPM 的错误日志级别也可以修改为 error
以减少其日志输出。
WARNING
记录日志有助于还原现场,对排查问题起着十分关键的作用。不建议修改。
可以选择保留最近几天的日志,定时删除过旧的日志。
以下示例:每天凌晨 03 点删除 7 天以前的日志(注意替换自己的过滤关键字)
0 3 * * * find /tmp/ -mtime +7 |grep -E 'nexus' |xargs rm -rf
#邮件无法发送
请参考配置部分说明进行正确设置,确保:
[站点设定]->[主要设定]->[网站邮箱地址] 与 SMTP 中的用户名是同一个
SMTP 地址开头不要有协议如
ssl://
,只需要要主机地址正确选择加密方式,如果没有选择
none
,参考你的邮件服务商
#can not make symbolic link
无法创建软链接。这一般是 PHP 权限不足,保证把 ROOT_PATH 拥有者设置为了 PHP_USER,或者直接设置了 777 权限。如果还是不行,可以手工创建:
ln -s /你的ROOT_PATH路径/bitbucket /你的ROOT_PATH路径/public ln -s /你的ROOT_PATH路径/attachments /你的ROOT_PATH路径/public
如果已经存在,尝试删除这两个目录,程序会自动重新创建。
#热门种子不展示在热门模块
热门模块需要展示封面,请确保填写了 imdb 链接,或描述里边包含了海报图片。
#宝塔面板装不上 gmp 扩展
一般发生在 Debian 或 Ubuntu 系统上,尝试先安装 libgmp-dev
:
apt-get install libgmp-dev
#忘记管理员密码
可以执行命令重置。参数是:UID 新密码 确认新密码。
在网站根目录下:
php artisan user:reset_password {uid} {password} {password_confirmation}
#做种积分是什么东西
做种积分就是原始无加成的做种魔力。用户可以在 [魔力使用] 页,[每小时合计获得的魔力值] 部分中,[基本奖励] 行 [基础魔力] 字段就是做种积分。
#如何快速获得做种积分
做种积分获取快慢由管理员设定,一般为做种人数越少、发布时间越久远、体积越大的种子保种越容易获得高积分。除了保种,没有其他获取途径。
#管理后台 500 错误
极有可能是日志文件 /tmp/nexus-202x-xx-xx.log
无法写入,可以尝试执行
chmod 777 /tmp/nexus-202x-xx-xx.log
或者直接删除之。如果还是无法解决,请参考本页开头查看相关日志。
#管理后台 404
确保网站的 Nginx 配置文件已经有如下内容:
location / { index index.html index.php; try_files $uri $uri/ /nexus.php$is_args$args; } # Filament location ^~ /filament { try_files $uri $uri/ /nexus.php$is_args$args; }
并且已经重启过 Nginx。
返回顶部