Jos*_*sph 4 php wordpress docker dockerfile docker-compose
我在理解如何通过 docker-compose 启用 WordPress 调试模式时遇到问题。 wp-config.php 调试部分的图像
define( 'WP_DEBUG', !!getenv_docker('WORDPRESS_DEBUG', '') );
Run Code Online (Sandbox Code Playgroud)
这是 wp-config.php 文件的一部分,我应该能够在其中启用它。该文件是只读的,它似乎旨在通过 docker-compose.yaml 文件启用此功能,但我不知道如何实现。我尝试添加WORDPRESS_DEBUG: 'true'到 WordPress 服务的环境部分,但它会抛出 true/fals 数据类型错误,并且“true”作为字符串似乎不起作用。我能想到的唯一解决方案是以超级用户身份编辑文件。
好吧,大约一年前,这让我大吃一惊。请参阅我原来的问题,该问题导致wp_debug模式被定义两次,导致管理员中出现持续的空白 php 错误...
通过 docker pull wordpress 将 WordPress 5.6.2 更新到 5.7 后,管理中的 php-error 正文类
使用docker wordpresswp_debug镜像时的一些规则。
define('WP_DEBUG', true);in the wp-config.php/WORDPRESS_CONFIG_EXTRA和WORDPRESS_DEBUG: 1in the 。docker-compose.yml同时使用它们总是会在管理仪表板中出现空白的 php 错误。docker-compose.yml来配置环境时,您永远不需要手动更改项目的权限chmod 777来使调试模式正常工作。docker-compose.yml,以便您可以安全地启动和更新 docker wordpress 容器映像。现在我们知道了这些基本规则,这就是如何以WP_DEBUG正确docker-compose.yml的方式启用。请参阅环境块。
请注意,如果您尝试启动我的示例,则在运行之前,
docker-compose.yml您还必须在同一目录中存在uploads.ini和文件。error-logging.inidocker-compose up -d
请参阅此处的公共要点,其中包含.ini您需要在启动之前实现的文件代码...
https://gist.github.com/joshmoto/ab7c09ca45291f7e6f9a14cf070fa70c
你的空项目目录应该像这样......
这是完整的docker-compose.yml配置...
version: '3.7'
networks:
wordpress:
ipam:
config:
- subnet: 172.25.0.0/16
services:
# here is our mysql database
db:
image: mysql:5.7
volumes:
- ./db:/var/lib/mysql:delegated
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
- wordpress
# here is our wordpress server
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
# our persistent local data re routing
- ./themes/yourtheme:/var/www/html/wp-content/themes/yourtheme:delegated
- ./plugins:/var/www/html/wp-content/plugins
- ./mu-plugins:/var/www/html/wp-content/mu-plugins
- ./uploads:/var/www/html/wp-content/uploads
- ./logs:/var/www/html/wp-content/logs
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
- ./error-logging.ini:/usr/local/etc/php/conf.d/error-logging.ini
ports:
- "80:80"
restart: always
networks:
- wordpress
environment:
# debug mode
WORDPRESS_DEBUG: 1
# docker wp config settings
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_TABLE_PREFIX: wp_
WORDPRESS_AUTH_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_SECURE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_LOGGED_IN_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_NONCE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_SECURE_AUTH_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_LOGGED_IN_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_NONCE_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
# our local dev environment
WORDPRESS_CONFIG_EXTRA: |
/* development parameters */
define('WP_CACHE', false);
define('ENVIRONMENT', 'local');
/* do not re-define WP_DEBUG here or it will throw a blank error in the admin */
/* you can remove this entirely, this is just to show you what not to do */
// define('WP_DEBUG', true);
if (!defined('WP_HOME')) {
/* force our home url */
define('WP_HOME', 'http://localhost');
define('WP_SITEURL', WP_HOME);
}
Run Code Online (Sandbox Code Playgroud)
现在您已经有了这个docker-compose.yml集合以及文件.ini,您现在可以在项目目录中安全地运行此命令来构建本地 WordPress 环境...
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
此docker-compose.yml示例还使用持久卷映射到您的项目目录,因此一旦 docker 完成环境构建,您的本地项目目录现在将如下所示...
如果您现在在初始 Dockering 完成后访问http://localhost/ ,您现在将看到安装页面...
错误日志文件将保存到您的logs目录中,并且所有其他必要的 WordPress 目录现在都已映射到您的本地项目。
因此,下次您运行docker-compose down然后重新运行时docker-compose up -d,您的本地环境将与上次停靠时完全相同。
如果您使用 git,那么您可能希望使用文件排除重目录,例如db、plugins、uploads等...logs.gitignore
/db
/plugins
/uploads
/logs
Run Code Online (Sandbox Code Playgroud)
我也补充了.gitignore要点。
祝你好运,希望这会有帮助。
| 归档时间: |
|
| 查看次数: |
6036 次 |
| 最近记录: |