Closed Dev-Wiki closed 2 years ago
改为自动安装同样的问题, 自动安装如下:
version: '3'
services:
typecho-server:
image: joyqi/typecho:nightly-php7.4-apache
volumes:
- ./:/app/usr
environment:
TIMEZONE: Asia/Shanghai
MEMORY_LIMIT: 100m
MAX_POST_BODY: 50m
TYPECHO_INSTALL: 1
TYPECHO_DB_ADAPTER: Pdo_SQLite
TYPECHO_DB_FILE:615a4d4dabd49.db
TYPECHO_DB_PREFIX: db_
TYPECHO_SITE_URL: https://blog.devwiki.net
TYPECHO_USER_NAME: name
TYPECHO_USER_MAIL: email
TYPECHO_USER_PASSWORD: password
ports:
- "2080:80"
自动安装后 前台页面可访问
管理界面 503
改为自动安装同样的问题, 自动安装如下:
version: '3' services: typecho-server: image: joyqi/typecho:nightly-php7.4-apache volumes: - ./:/app/usr environment: TIMEZONE: Asia/Shanghai MEMORY_LIMIT: 100m MAX_POST_BODY: 50m TYPECHO_INSTALL: 1 TYPECHO_DB_ADAPTER: Pdo_SQLite TYPECHO_DB_FILE:615a4d4dabd49.db TYPECHO_DB_PREFIX: db_ TYPECHO_SITE_URL: https://blog.devwiki.net TYPECHO_USER_NAME: name TYPECHO_USER_MAIL: email TYPECHO_USER_PASSWORD: password ports: - "2080:80"
自动安装后 前台页面可访问
管理界面 503
找到原因了, 使用自动安装或者手动安装, 无法创建数据库文件, 会报503
如果手动拷贝原来的数据库文件, 所有者不同, 和已经关闭的一个 issue类似, 但是不知道为何会 创建的时候无法创建 db文件.
手动拷贝db 文件的目录如下:
不复制的目录则不会有数据库文件:
在 config.inc.php 文件里加上 define('__TYPECHO_DEBUG__', true);
,然后看看报503时具体的报错信息是啥
在 config.inc.php 文件里加上
define('__TYPECHO_DEBUG__', true);
,然后看看报503时具体的报错信息是啥
不会生成此文件
我重新安装控制台输出如下:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.52.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.52.2. Set the 'ServerName' directive globally to suppress this message
[Tue Mar 22 13:11:50.190619 2022] [mpm_prefork:notice] [pid 27] AH00163: Apache/2.4.52 (Debian) PHP/7.4.28 configured -- resuming normal operations
[Tue Mar 22 13:11:50.190692 2022] [core:notice] [pid 27] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
172.29.52.1 - - [22/Mar/2022:13:13:27 +0800] "GET /install.php?step=2&driver=Pdo_SQLite HTTP/1.1" 302 271 "http://192.168.31.137:2080/install.php?step=2" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
172.29.52.1 - - [22/Mar/2022:13:13:27 +0800] "GET / HTTP/1.1" 200 2209 "http://192.168.31.137:2080/install.php?step=2" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
172.29.52.1 - - [22/Mar/2022:13:13:29 +0800] "GET /index.php/archives/1/ HTTP/1.1" 200 4053 "http://192.168.31.137:2080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
172.29.52.1 - - [22/Mar/2022:13:13:31 +0800] "GET /admin/login.php HTTP/1.1" 503 1289 "http://192.168.31.137:2080/index.php/archives/1/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
我修改了 数据库文件的 所属者 和组 同样不行
在 config.inc.php 文件里加上
define('__TYPECHO_DEBUG__', true);
,然后看看报503时具体的报错信息是啥
手动添加此文件和 内容, 页面没多余什么内容, 也没看到日志, 我使用的是威联通的nas的 docker环境, 你可试下: QuTScloud Online Demo | QNAP
我已经在本地复现了这个问题,是一个命令行安装时的数据目录问题,现在你可以临时把安装时的环境变量,然后再启动新的容器
TYPECHO_DB_FILE: 615a4d4dabd49.db
改成
TYPECHO_DB_FILE: /app/usr/615a4d4dabd49.db
后续我会在代码中修复
如果不自动安装, 安装过程界面选择db 的时候会:
但是删除 前面的 /app/usr
能进行下一步, 但是后台仍旧503
我已经在本地复现了这个问题,是一个命令行安装时的数据目录问题,现在你可以临时把安装时的环境变量,然后再启动新的容器
TYPECHO_DB_FILE: 615a4d4dabd49.db
改成
TYPECHO_DB_FILE: /app/usr/615a4d4dabd49.db
后续我会在代码中修复
按照这个修改 不会自动安装了, 会进入手动安装
日志输出如下:
Typecho 1.2.0
PHP 7.4.28
安装程序检查到原有数据表已经存在.
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.56.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.56.2. Set the 'ServerName' directive globally to suppress this message
[Tue Mar 22 13:47:30.214003 2022] [core:warn] [pid 15] AH00098: pid file /var/run/apache2/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Tue Mar 22 13:47:30.223675 2022] [mpm_prefork:notice] [pid 15] AH00163: Apache/2.4.52 (Debian) PHP/7.4.28 configured -- resuming normal operations
[Tue Mar 22 13:47:30.223707 2022] [core:notice] [pid 15] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
我已经在本地复现了这个问题,是一个命令行安装时的数据目录问题,现在你可以临时把安装时的环境变量,然后再启动新的容器
TYPECHO_DB_FILE: 615a4d4dabd49.db
改成
TYPECHO_DB_FILE: /app/usr/615a4d4dabd49.db
后续我会在代码中修复
按照此方式重新安装一个新的, 测试不会生成数据库文件
我在本地测试是可以的,你得把原来的容器和service都删掉
我在本地测试是可以的,你得把原来的容器和service都删掉
我就担心有问题 所以重新创建的. 原来的都删除了, 目录都改了, 原来是的 typecho1, 新的是 devwikiblog
我在本地测试是可以的,你得把原来的容器和service都删掉
在次重新安装, 仍旧不行, 控制台输出:
安装的docker compose
需要手动创建 blog.db 文件么?
我已经在本地复现了这个问题,是一个命令行安装时的数据目录问题,现在你可以临时把安装时的环境变量,然后再启动新的容器
TYPECHO_DB_FILE: 615a4d4dabd49.db
改成
TYPECHO_DB_FILE: /app/usr/615a4d4dabd49.db
后续我会在代码中修复
这样修改 仍旧会提示无法找到数据库
我不知道是不是你的nas环境问题,在我本地测试了好几次都是可以正常创建的
version: '3'
services:
typecho-server:
image: joyqi/typecho:nightly-php7.4-apache
volumes:
- ./typecho:/app/usr
environment:
TIMEZONE: Asia/Shanghai
MEMORY_LIMIT: 100m
MAX_POST_BODY: 50m
TYPECHO_INSTALL: 1
TYPECHO_DB_ADAPTER: Pdo_SQLite
TYPECHO_DB_FILE: /app/usr/615a4d4dabd49.db
TYPECHO_DB_PREFIX: db_
TYPECHO_SITE_URL: https://blog.devwiki.net
TYPECHO_USER_NAME: joyqi
TYPECHO_USER_MAIL: magike.net@gmail.com
TYPECHO_USER_PASSWORD: 123456
ports:
- "2080:80"
我不知道是不是你的nas环境问题,在我本地测试了好几次都是可以正常创建的
version: '3' services: typecho-server: image: joyqi/typecho:nightly-php7.4-apache volumes: - ./typecho:/app/usr environment: TIMEZONE: Asia/Shanghai MEMORY_LIMIT: 100m MAX_POST_BODY: 50m TYPECHO_INSTALL: 1 TYPECHO_DB_ADAPTER: Pdo_SQLite TYPECHO_DB_FILE: /app/usr/615a4d4dabd49.db TYPECHO_DB_PREFIX: db_ TYPECHO_SITE_URL: https://blog.devwiki.net TYPECHO_USER_NAME: joyqi TYPECHO_USER_MAIL: magike.net@gmail.com TYPECHO_USER_PASSWORD: 123456 ports: - "2080:80"
如果我不带那个路径反而是能安装成功的, 但是找不到 db文件
@joyqi 我这边测试了下, 使用 威联通 nas 自己的 docker 创建按钮 和步骤来创建是可以自动生成 .db 文件的, 后续我会把创建步骤写个文档出来. 非常感谢~ 但是使用 docker-compose方式 不行, 还是无法创建db文件. 如果有时间 还是建议查找一下原因. 这是威联通的nas的 试用入口: QuTScloud Online Demo | QNAP
Typecho 1.2.0
PHP 7.4.28
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.40.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.40.2. Set the 'ServerName' directive globally to suppress this message
[Thu Sep 08 00:21:56.921687 2022] [core:warn] [pid 15] AH00098: pid file /var/run/apache2/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Sep 08 00:21:56.931197 2022] [mpm_prefork:notice] [pid 15] AH00163: Apache/2.4.53 (Debian) PHP/7.4.28 configured -- resuming normal operations
[Thu Sep 08 00:21:56.931235 2022] [core:notice] [pid 15] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
这个503 报错内容如上 @joyqi
我不知道是不是你的nas环境问题,在我本地测试了好几次都是可以正常创建的
version: '3' services: typecho-server: image: joyqi/typecho:nightly-php7.4-apache volumes: - ./typecho:/app/usr environment: TIMEZONE: Asia/Shanghai MEMORY_LIMIT: 100m MAX_POST_BODY: 50m TYPECHO_INSTALL: 1 TYPECHO_DB_ADAPTER: Pdo_SQLite TYPECHO_DB_FILE: /app/usr/615a4d4dabd49.db TYPECHO_DB_PREFIX: db_ TYPECHO_SITE_URL: https://blog.devwiki.net TYPECHO_USER_NAME: joyqi TYPECHO_USER_MAIL: magike.net@gmail.com TYPECHO_USER_PASSWORD: 123456 ports: - "2080:80"
如果我不带那个路径反而是能安装成功的, 但是找不到 db文件
上述的问题原因是: 使用 docker-compose 方式在威联通 nas上安装不会自动创建 config.inc.php, 我手动拷贝了该文件, 然后可以正常安装了. 不再提示招不到文件的问题.
但是 会出现访问非主页的时候提示 500, 即错误:
Typecho 1.2.0
PHP 7.4.28
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.40.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.29.40.2. Set the 'ServerName' directive globally to suppress this message
[Thu Sep 08 00:21:56.921687 2022] [core:warn] [pid 15] AH00098: pid file /var/run/apache2/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Sep 08 00:21:56.931197 2022] [mpm_prefork:notice] [pid 15] AH00163: Apache/2.4.53 (Debian) PHP/7.4.28 configured -- resuming normal operations
[Thu Sep 08 00:21:56.931235 2022] [core:notice] [pid 15] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
这这里的日志并不是错误日志,只是打印了系统日志。你可以进入容器,在 config.inc.php
里加入
define('__TYPECHO_DEBUG__', true);
然后访问页面,看具体的报错信息
define('__TYPECHO_DEBUG__', true);
好的 晚上回去试试
这这里的日志并不是错误日志,只是打印了系统日志。你可以进入容器,在
config.inc.php
里加入define('__TYPECHO_DEBUG__', true);
然后访问页面,看具体的报错信息
添加之后打印的日志是:
SQLSTATE[HY000]: General error: 8 attempt to write a readonly database
Typecho\Db\Adapter\SQLException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /app/var/Typecho/Db/Adapter/Pdo.php:111
Stack trace:
#0 /app/var/Typecho/Db.php(391): Typecho\Db\Adapter\Pdo->query('UPDATE db_conte...', Object(PDO), 2, 'UPDATE', 'db_contents')
#1 /app/usr/themes/handsome/functions_mine.php(897): Typecho\Db->query(Object(Typecho\Db\Query))
#2 /app/usr/themes/handsome/post.php(53): get_post_view(Object(Widget\Archive))
#3 /app/var/Widget/Archive.php(1415): require_once('/app/usr/themes...')
#4 /app/var/Typecho/Router.php(99): Widget\Archive->render()
#5 /app/index.php(23): Typecho\Router::dispatch()
#6 {main}
但是我看了下权限是正常的, 通用不是 docker-compose 方式安装的, 就一切正常, 他们的权限组 和 用户组 都一样:
别的 docker镜像, 我在nas上使用 docker-compose 方式安装正常
@joyqi
我注意到你的db文件所有者是admin,而其它文件是33
我注意到你的db文件所有者是admin,而其它文件是33
我知道这个区别, 但是直接使用nas ui上操作创建的 所有者也是 admin, 数据写入都正常. 我用别的 docker 镜像 需要写数据库的也是使用docker compose 方式部署的,, 也是所有者 admin 写入正常.
安装方式: docker compose
Docker安装过程结果
typecho 安装过程
修改db 路径后可安装: