安装
环境要求
- 5.6 <= PHP <= 7.4
- 需支持SQLite
- PHP需支持pdo_sqlite组件
常规安装
- 访问项目地址:https://github.com/helloxz/onenav/releases 下载最新版本并解压到站点根目录
- 访问您的站点首页设置初始用户名、密码
- 进行安全设置
注意:新手请注意权限问题,否则可能提示权限原因安装失败,宝塔、Oneinstack、lnmp.org的站点用户均为www,可通过ls -l 站点路径
查看文件是否是www用户。
宝塔面板安装(版本可能滞后)
输入域名,并选择支持的PHP版本进行提交。
正常情况会看到如下界面,数据库、用户名、密码创建失败不需要理会,OneNav没有使用MySQL数据。
将您的域名解析到服务器IP,解析生效后访问测试,会看到如下界面,根据提示完成初始化设置即可。
注意:通过宝塔面板安装的可能版本比较滞后
Docker安装
docker run -itd --name="onenav" -p 80:80 \
-v /data/onenav:/data/wwwroot/default/data \
helloz/onenav:0.9.24onenav
-
80
:第1个80端口为访问端口,可自行修改,第2个80为容器内部端口,请不要修改 -
/data/onenav
:本机挂载目录,用于持久存储Onenav数据
0.9.24
docker-compose安装
您也可以选择docker-compose进行安装,将下面的文件保存为docker-compose.yaml
version: '3'
services:
onenav:
container_name: onenav
ports:
- "3080:80"
volumes:
- './data:/data/wwwroot/default/data'
image: 'helloz/onenav'
restart:
always
然后运行命令docker-compose up -d
进行启动。
群晖使用Docker安装
在 docker 文件夹中,创建一个新文件夹,并将其命名为 onenav
文件夹 | 装载路径(固定,不要修改) | 说明 |
---|---|---|
docker/onenav | /data/wwwroot/default/data | 存放onenav数据 |
端口不冲突就行,这里用了 9680
本地端口 | 容器端口 |
---|---|
9680 | 80 |
保存并运行,在浏览器中输入 http://群晖IP:9680,就可以看到主界面了
详细说明可参考这篇文章:简单好用的书签管理器OneNav
配置文件说明
配置文件位于站点根目录下的data/config.php
,用户名、密码保存在这个配置文件中,如果忘记了用户名、密码可以查看这个文件,如果需要重新设置用户名、密码,可以将data/config.php
删除,然后重新初始化。
安全设置
如果您使用的Nginx,请务必将以下规则添加到站点配置中,否则数据库可能被下载(非常危险):
#安全设置
location ~* ^/(class|controller|db|data|functions|templates)/.*.(db3|php|php5|sql)$ {
return 403;
}
location ~* ^/(data)/.*.(html)$ {
deny all;
}
location /db {
deny all;
}
#伪静态
rewrite ^/click/(.*) /index.php?c=click&id=$1 break;
rewrite ^/api/(.*)?(.*) /index.php?c=api&method=$1&$2 break;
rewrite /login /index.php?c=login break;
- 如果使用得Apache则无需设置,已内置
.htaccess
进行屏蔽。 - 如果您使用的Docker安装也无需此配置,默认已内置规则
Nginx反向代理
如果您使用的Docker部署,需要通过域名进行访问,您可以通过下面2个方法完成:
- 直接将域名解析到您服务器IP,然后访问
http://域名:端口
进行访问 - 如果您不希望带上容器端口,也可以通过Nginx反向代理绑定域名进行访问
Nginx反向代理配置参考:
server {
listen 80;
#改成你自己的域名
server_name demo.onenav.top;
#指定网站日志路径
#access_log /data/logs/demo.onenav.top_nginx.log xlog;
charset utf-8,gbk;
location / {
proxy_connect_timeout 10;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
#chunked_transfer_encoding off;
proxy_set_header Host 'demo.onenav.top';
#将3080改成你容器的端口
proxy_pass http://127.0.0.1:3080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}