Dockerfile
Dockerfile copied to clipboard
Docker Image packaging for Typecho
apache版本: docker run --name typecho-server -p 82:9000 -v /mnt/typecho-https:/app/usr -e TYPECHO_SITE_URL=https://192.168.5.8 -d joyqi/typecho:nightly-php8.0-apache https://192.168.5.8:82 无法访问(提示此网站无法提供安全连接),config.inc.php 增加了define('__TYPECHO_SECURE__',true); 必须使用http 才行。猜想 是不是docker内没有证书相关内容,导致浏览器不让访问 能否在apache2 设置文件中增加 证书 内容,并将证书目录 映射到 /app/usr 目录。 这样 对我这种小白 更友好啊。。。这样,就只需要在路由上 作端口转发就行了。。。...
只显示文章标题,打不开文章内容
Joyqi/typecho:nightly-php8.2-apache stderr: [18-Apr-2024 18:08:22 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'gd.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20220829/gd.so (libpng16.so.16: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20220829/gd.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20220829/gd.so.so:...
无论TYPECHO_INSTALL设为0还是1,或者注释掉,安装脚本都会启动。 我之前用的自己生成的镜像,后来迁移过来了,但是映射的目录是/app而不是/app/usr,最近发现这导致我用的版本还是之前的,于是准备改成/app/usr,然后就遇到了这个问题。 通过查看typoecho的index.php代码发现似乎会判断`config.inc.php`: `/** 载入配置支持 */ if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') { file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File'); exit; } ` 然后我手动把我之前的`config.inc.php`文件复制到容器内的/app目录下面就没有这个问题了,但是有时候重启容器还是有,于是我把这个文件挂载过去,现在也不启动安装脚本了。 但是我不确定是哪里有问题?是否应该更新这里的volume信息?又或者是怎么阻止这里install.php的启动?
需手动修改/app/usr文件夹权限为www-data:www-data。 使用的镜像是:nightly-php8.0-apache
目前后台https需要手动修改config,增加`define('__TYPECHO_SECURE__',true);` 是否可以在容器启动阶段根据环境变量自动增加?
设置`TYPECHO_INSTALL`为`1`时, Typecho会尝试自动安装并生成配置. 但是当安装失败时, 例如集群中的数据库未就绪, 或者什么其他的问题, 导致无法安装之类的问题时, 入口程序应当立刻退出, 方便系统管理员发现问题, 或者集群重启容器. 否则会遗留一个安装页面到公网, 会增加内网服务被探测的风险.
代码里写的是 ``` check_and_make 'usr/uploads' '755' ``` 第一次执行install.php时,会提示uploads无权限,改为766后,安装成功