taksssss / EPG-Server

用 php 实现的 EPG 服务端, Docker🐳 部署,带设置界面、台标管理,支持 DIYP & 百川 、 超级直播 以及 xmltv 格式。
https://hub.docker.com/r/taksss/php-epg/
GNU General Public License v2.0
164 stars 58 forks source link

全新安装后,密码为空无法登录,如何解决 #9

Closed ywgf88 closed 3 months ago

ywgf88 commented 3 months ago

image

taksssss commented 3 months ago

密码明文保存在config.php文件中,你可以用docker exec命令进入容器修改。 你是直接拉镜像吗?为啥会出现这种情况😂

ywgf88 commented 3 months ago

我是这样安装这个软件的: docker run -d \ --name php-epg \ -v /volume2/Public/php-edg/adata.db:/htdocs/epg/adata.db \ -v /volume2/Public/php-edg/config.php:/htdocs/epg/config.php \ -p 5678:80 \ --restart always \ taksss/php-epg:latest

我用docker container来查看epg的状态,发现是 healthy,不知道我的安装是不是有问题

image

config.php是空的 image

ywgf88 commented 3 months ago

image 我试图用docker-compose去安装,但是一直报config.php不存在,还有adata.db不存在,这两个文件是需要我手动创建?还是会自动拉取到我的本地?

taksssss commented 3 months ago

需要你自己创建,Docker挂载文件是把宿主机的文件挂载到容器中,所以需要本身存在这个文件本身。 要想持久化的话,你要先创建好这两个文件。 安装说明里面也写了,先拉取源代码,再运行。

ywgf88 commented 3 months ago

docker run -d --name php-epg -v /vol ume2/Public/php-edg/adata.db:/htdocs/epg/adata.db -v /volume2/Public/php-edg/config.php:/htdocs/epg/config.php -p 5678:80 --re start always taksss/php-epg:latest Unable to find image 'taksss/php-epg:latest' locally latest: Pulling from taksss/php-epg c6a83fedfae6: Pull complete 01125a5cdd04: Pull complete 394178d7a536: Pull complete d094e72f5928: Pull complete 7359a657cb04: Pull complete d4565921cc9e: Pull complete Digest: sha256:473c0c9a53860678b6b688e5a3385fb578148db66f6b579f4adfdc6dd18fc8ce Status: Downloaded newer image for taksss/php-epg:latest 9c14b8130bc124e68e72fb1bc3c83bf36d4f9a3aca61b5acaba2c7c56f29af20 docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/volume2/Public/php-edg/config.php" to rootfs at "/htdocs/epg/config.php": mount /volume2/Public/php-edg/config.php:/htdocs/epg/config.php (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type. 安装过程中一直报这个错误

taksssss commented 3 months ago

/volume2/Public/php-edg/adata.db/volume2/Public/php-edg/config.php 这两个文件存在么?

ywgf88 commented 3 months ago

image 按照你的方法拉取镜像,然后安装,但是有个问题,拉取镜像后,镜像文件不在我当前目录,不知道拉取到哪里了,故每次安装,容器都是healthy的状态。

最后我用了一个很蠢的方法,把你的github下的文件打包下载到电脑,然后上传到我的docker服务器指定目录解压后,用docker-compose up 来安装,这样就不报错了。

最后一个问题:软件安装好了后,使用Tivimate来导入我的EPG地址:http://ip:5678/epg/index.php,Tivimate没有识别到一个节目,能否指导一下如何使用我新搭建的服务

taksssss commented 3 months ago

最后我用了一个很蠢的方法,把你的github下的文件打包下载到电脑,然后上传到我的docker服务器指定目录解压后,用docker-compose up 来安装,这样就不报错了。

这不是很蠢的方法啊,这就是正确使用方法。你看我后面写的使用说明,要实现持久化的话,第一步就是用 git clone 把源代码拉到本地,再做映射。

最后一个问题:软件安装好了后,使用Tivimate来导入我的EPG地址:http://ip:5678/epg/index.php,Tivimate没有识别到一个节目,能否指导一下如何使用我新搭建的服务

直接将 http://ip:5678/epg/t.xml.gz 或者 http://ip:5678/epg/t.xml 填进去(取决于你在选项里面选了哪一个,其实后面的使用说明也有写)。

suzukua commented 3 months ago

docker直接拉取部署需要拉项目里面config.php内容映射到容器才能启动。建议用户配置和程序默认配置分离,优先读取用户配置。同时建议配置文件剥离php相关语法。第一个建议就是当前issue的问题

taksssss commented 3 months ago

docker直接拉取部署需要拉项目里面config.php内容映射到容器才能启动。建议用户配置和程序默认配置分离,优先读取用户配置。同时建议配置文件剥离php相关语法。第一个建议就是当前issue的问题

其实将配置直接整合进数据库是个好的选择么?当然最简单是换成标准的json串。 如果剥离的话,一般是将空文件夹映射进Docker里面,然后配置放到这个文件夹里面映射出来么?不过感觉也没本质区别啊。 其实我自己用的时候,都是直接运行空镜像,再把EPG地址复制进去,更新就好了。

suzukua commented 3 months ago

接拉取部署需要拉项目里面config.php内容映射到容器才能启动。建议用户配置和程序默认配置分离,优先读取用户配置。同时建议配置文件剥离php相关语法。第一个建议就是当前issue的

第一次空的config.php映射到容器会报错,启动不了,也就是现在容器直接run的这种方式第一次跑起来不太顺畅。项目很优秀

taksssss commented 3 months ago

接拉取部署需要拉项目里面config.php内容映射到容器才能启动。建议用户配置和程序默认配置分离,优先读取用户配置。同时建议配置文件剥离php相关语法。第一个建议就是当前issue的

第一次空的config.php映射到容器会报错,启动不了,也就是现在容器直接run的这种方式第一次跑起来不太顺畅。项目很优秀

不需要数据持久化的话,会直接使用自带的config文件,不会出现这个报错。我下个版本改一下,如果config文件为空,密码也为空吧。