Skip to main content

安装

环境要求

  • 5.6 <= PHP <= 7.4
  • 需支持SQLite
  • PHP需支持pdo_sqlite组件

常规安装

  1. 访问项目地址:https://github.com/helloxz/onenav/releases 下载最新版本并解压到站点根目录
  2. 访问您的站点首页设置初始用户名、密码

  1. 进行安全设置

备用下载地址:https://git.xiaoz.me/xiaoz/onenav/tags

注意:新手请注意权限问题,否则可能提示权限原因安装失败,宝塔、Oneinstack、lnmp.org的站点用户均为www,可通过ls -l 站点路径查看文件是否是www用户。

宝塔面板安装(版本可能滞后)

OneNav已上架宝塔商店,通过宝塔后台 - 软件商店 - 一键部署 - 搜索onenav,并点击一键部署。(上架宝塔需要人工审核,可能导致宝塔一键部署不是最新版本)

img

输入域名,并选择支持的PHP版本进行提交。

img

正常情况会看到如下界面,数据库、用户名、密码创建失败不需要理会,OneNav没有使用MySQL数据。

img

将您的域名解析到服务器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:指定OneNav版本,最新版前往https://github.com/helloxz/onenav/releases 查看。

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安装

在注册表中搜索 onenav ,选择第一个 onenav,版本选择 latest。

img

在 docker 文件夹中,创建一个新文件夹,并将其命名为 onenav

文件夹 装载路径(固定,不要修改) 说明
docker/onenav /data/wwwroot/default/data 存放onenav数据

img

端口不冲突就行,这里用了 9680

本地端口 容器端口
9680 80

img

保存并运行,在浏览器中输入 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个方法完成:

  1. 直接将域名解析到您服务器IP,然后访问http://域名:端口进行访问
  2. 如果您不希望带上容器端口,也可以通过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;
    }
}