安装 注意:以下安装方式根据自己的情况任选其一即可。 环境要求 5.6 <= PHP <= 7.4 需支持SQLite PHP需支持pdo_sqlite组件 常规安装 访问项目地址:https://github.com/helloxz/onenav/releases 下载最新版本并解压到站点根目录 访问您的站点首页设置初始用户名、密码 进行安全设置 备用下载地址:https://git.xiaoz.me/xiaoz/onenav/tags 注意:新手请注意权限问题,否则可能提示权限原因安装失败,宝塔、Oneinstack、lnmp.org的站点用户均为www,可通过ls -l 站点路径查看文件是否是www用户。 宝塔面板安装(版本可能滞后) OneNav已上架宝塔商店,通过宝塔后台 - 软件商店 - 一键部署 - 搜索onenav,并点击一键部署。(上架宝塔需要人工审核,可能导致宝塔一键部署不是最新版本) 输入域名,并选择支持的PHP版本进行提交。 正常情况会看到如下界面,数据库、用户名、密码创建失败不需要理会,OneNav没有使用MySQL数据。 将您的域名解析到服务器IP,解析生效后访问测试,会看到如下界面,根据提示完成初始化设置即可。 注意:通过宝塔面板安装的可能版本比较滞后 Docker安装 docker run -itd --name="onenav" -p 80:80 \ -v /data/onenav:/data/wwwroot/default/data \ helloz/onenav 80:第1个80端口为访问端口,可自行修改,第2个80为容器内部端口,请不要修改 /data/onenav:本机挂载目录,用于持久存储Onenav数据 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。 在 docker 文件夹中,创建一个新文件夹,并将其命名为 onenav(注意:装载路径保持下方不变,不要擅自修改) 文件夹 装载路径(固定,不要修改) 说明 docker/onenav /data/wwwroot/default/data 存放onenav数据 端口不冲突就行,这里用了 9680 本地端口 容器端口 9680 80 保存并运行,在浏览器中输入 http://群晖IP:9680,就可以看到主界面了 详细说明可参考这篇文章:简单好用的书签管理器OneNav 注意:群晖用户初始化OneNav完毕后请检查您的挂载文件夹(一般是docker/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 $host; #将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; } }