I'm trying to run a wordpress site on kubernetes, but as it is behind the nginx ingress, it needs the line $_SERVER['HTTPS']='on';
in wp-config.php
, as seen in here.
When not setting any env variables the docker image uses the wp-config.php
provided by me, so I could test that the above line fixes my problem.
Following the documentation, I set all my variables as you can see bellow, however, the WORDPRESS_CONFIG_EXTRA
env variable does not seems to be applied to the config file. It should be noted that the variable is set and can be accessed inside the pod with echo $WORDPRESS_CONFIG_EXTRA
I'm also using an external mysql database, with an already populated db on it that the wordpress pod uses.
If this post is not old, the website should be online here, but not for long as the cluster is expensive. You can check that some resources are being loaded with http, when https should be used. That line would fix this.
The Dockerfile for my custom image (wp-config.php
is ignored in .dockerignore
):
FROM wordpress:php7.1-apache
COPY . /usr/src/wordpress/
Here is my 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
Here is the wp-config.php
generated inside the pod, that you can see does not contain the lines given by 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');