Я пытаюсь запустить сайт wordpress на kubernetes, но поскольку он находится за входом nginx, ему нужна строка $_SERVER['HTTPS']='on';
в wp-config.php
, как видно на Вот.
Если не заданы никакие переменные env, изображение докера использует wp-config.php
предоставлено мной, чтобы я мог проверить, что эта строка решает мою проблему.
После документация, Я установил все свои переменные, как вы можете видеть ниже, однако WORDPRESS_CONFIG_EXTRA
Переменная env, похоже, не применяется к файлу конфигурации. Следует отметить, что переменная установлена, и к ней можно получить доступ внутри модуля с помощью echo $WORDPRESS_CONFIG_EXTRA
Я также использую внешнюю базу данных mysql с уже заполненной базой данных, которую использует модуль wordpress.
Если этот пост не старый, сайт должен быть в сети. Вот, но ненадолго, поскольку кластер стоит дорого. Вы можете проверить, загружаются ли некоторые ресурсы с помощью http, когда следует использовать https. Эта строка исправит это.
Dockerfile для моего пользовательского образа (wp-config.php
игнорируется в .dockerignore
):
FROM wordpress:php7.1-apache
COPY . /usr/src/wordpress/
Вот мой deployment.yaml
:
apiVersion: v1
kind: Service
metadata:
name: black
spec:
ports:
- port: 80
targetPort: 80
selector:
app: wordpress
tier: frontend
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: black-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: black
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: setti7/asc-theme:0.1.6
name: black
imagePullPolicy: Always
env:
- name: WORDPRESS_TABLE_PREFIX
value: wpsy_
- name: WORDPRESS_DB_NAME
value: black
- name: WORDPRESS_DB_USER
value: black_user
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_PASSWORD
value: blackpassword
- name: WORDPRESS_CONFIG_EXTRA
value: |
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
ports:
- containerPort: 80
name: black
volumeMounts:
- name: black-persistent-storage
mountPath: /var/www/html
volumes:
- name: black-persistent-storage
persistentVolumeClaim:
claimName: black-pv-claim
Здесь wp-config.php
сгенерированный внутри модуля, который, как вы видите, не содержит строк, заданных WORDPRESS_CONFIG_EXTRA
:
<?php
/**
* As configurações básicas do WordPress
*
* O script de criação wp-config.php usa esse arquivo durante a instalação.
* Você não precisa usar o site, você pode copiar este arquivo
* para "wp-config.php" e preencher os valores.
*
* Este arquivo contém as seguintes configurações:
*
* * Configurações do MySQL
* * Chaves secretas
* * Prefixo do banco de dados
* * ABSPATH
*
* @link https://codex.wordpress.org/pt-br:Editando_wp-config.php
*
* @package WordPress
*/
// ** Configurações do MySQL - Você pode pegar estas informações com o serviço de hospedagem ** //
/** O nome do banco de dados do WordPress */
define('DB_NAME', 'black');
/** Usuário do banco de dados MySQL */
define('DB_USER', 'black_user');
/** Senha do banco de dados MySQL */
define('DB_PASSWORD', 'blackpassword');
/** Nome do host do MySQL */
define('DB_HOST', 'wordpress-mysql');
/** Charset do banco de dados a ser usado na criação das tabelas. */
define('DB_CHARSET', 'utf8');
/** O tipo de Collate do banco de dados. Não altere isso se tiver dúvidas. */
define('DB_COLLATE', '');
/**#@+
* Chaves únicas de autenticação e salts.
*
* Altere cada chave para um frase única!
* Você pode gerá-las
* usando o {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org
* secret-key service}
* Você pode alterá-las a qualquer momento para invalidar quaisquer
* cookies existentes. Isto irá forçar todos os
* usuários a fazerem login novamente.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'coloque a sua frase única aqui');
define('SECURE_AUTH_KEY', 'coloque a sua frase única aqui');
define('LOGGED_IN_KEY', 'coloque a sua frase única aqui');
define('NONCE_KEY', 'coloque a sua frase única aqui');
define('AUTH_SALT', 'coloque a sua frase única aqui');
define('SECURE_AUTH_SALT', 'coloque a sua frase única aqui');
define('LOGGED_IN_SALT', 'coloque a sua frase única aqui');
define('NONCE_SALT', 'coloque a sua frase única aqui');
/**#@-*/
/**
* Prefixo da tabela do banco de dados do WordPress.
*
* Você pode ter várias instalações em um único banco de dados se você der
* um prefixo único para cada um. Somente números, letras e sublinhados!
*/
$table_prefix = 'wpsy_';
/**
* Para desenvolvedores: Modo de debug do WordPress.
*
* Altere isto para true para ativar a exibição de avisos
* durante o desenvolvimento. É altamente recomendável que os
* desenvolvedores de plugins e temas usem o WP_DEBUG
* em seus ambientes de desenvolvimento.
*
* Para informações sobre outras constantes que podem ser utilizadas
* para depuração, visite o Codex.
*
* @link https://codex.wordpress.org/pt-br:Depura%C3%A7%C3%A3o_no_WordPress
*/
define('WP_DEBUG', false);
/* Isto é tudo, pode parar de editar! :) */
/** Caminho absoluto para o diretório WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Configura as variáveis e arquivos do WordPress. */
require_once(ABSPATH . 'wp-settings.php');
Это еще не известная проблема, но она уже решена.
Важно знать, что любое изменение WORDPRESS_CONFIG_EXTRA
не будет добавлен к wp-config.php
после создания тома контейнера. Отметьте эту проблему Изменения в WORDPRESS_CONFIG_EXTRA игнорируются, если wp-config.php не удален.
Способ обойти это - удалить wp-config.php
файл после любого обновления до WORDPRESS_CONFIG_EXTRA
или удалите том и позвольте ему воссоздать его.
Также взгляните на Пример части docker-entrypoint.sh от того, как другие достигают этого.
if [ ! -e wp-config.php ]; then
awk '
/^\/\*.*stop editing.*\*\/$/ && c == 0 {
c = 1
system("cat")
if (ENVIRON["WORDPRESS_CONFIG_EXTRA"]) {
print "// WORDPRESS_CONFIG_EXTRA"
print ENVIRON["WORDPRESS_CONFIG_EXTRA"] "\n"
}
}
{ print }
' wp-config-sample.php > wp-config.php <<'EOPHP'
Что еще тут добавить .. Наверное, если бы я сделал то же самое - я бы прошел WORDPRESS_CONFIG_EXTRA
переменная в entrypoint script
а не в развертывании. Вы можете найти множество примеров, таких как этот