Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes and Improvements #24

Merged
merged 8 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions php-fpm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,24 @@
pidfile="/usr/local/bin/php-fpm-pid"
# Start the process
php-fpm -g $pidfile &
# Wait for 10 seconds
sleep 10
# Wait for 5 seconds
sleep 5
# Kill the process
pid=$(cat $pidfile)
kill $pid
#kill $pid
sleep 5
# loop that resests php-fpm and folder permissions each 30 minutes
while true; do

# Start the process
php-fpm -g $pidfile &
# Wait for 30 minutes
sleep 1800
# Kill the process
pid=$(cat $pidfile)
kill $pid
#php-fpm -g $pidfile &
# reset wp folder permissions
chmod -R g+rwx /var/www/html/
chown -R www-data:www-data /var/www/html/
echo "Reseted Permissions."
# Wait for 5 minutes
sleep 300
# Kill the process
#pid=$(cat $pidfile)
#kill $pid
done
343 changes: 175 additions & 168 deletions wp-config.php
Original file line number Diff line number Diff line change
@@ -1,168 +1,175 @@
<?php

define( 'WP_CACHE', true );

/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the installation.
* You don't have to use the web site, you can copy this file to "wp-config.php"
* and fill in the values.
*
* This file contains the following configurations:
*
* * Database settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* This has been slightly modified (to read environment variables) for use in Docker.
*
* @link https://wordpress.org/support/article/editing-wp-config-php/
*
* @package WordPress
*/

// IMPORTANT: this file needs to stay in-sync with https://github.com/WordPress/WordPress/blob/master/wp-config-sample.php
// (it gets parsed by the upstream wizard in https://github.com/WordPress/WordPress/blob/f27cb65e1ef25d11b535695a660e7282b98eb742/wp-admin/setup-config.php#L356-L392)

// a helper function to lookup "env_FILE", "env", then fallback
if ( !function_exists('getenv_docker') ) {
// https://github.com/docker-library/wordpress/issues/588 (WP-CLI will load this file 2x)
function getenv_docker( $env, $default ) {
if ( $fileEnv = getenv( $env . '_FILE') ) {
return rtrim( file_get_contents( $fileEnv ), "\r\n" );
}
else if ( ( $val = getenv( $env ) ) !== false ) {
return $val;
}
else {
return $default;
}
}
}

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'test_db') );

/** Database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );

/** Database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', '123secret') );

/**
* Docker image fallback values above are sourced from the official WordPress installation wizard:
* https://github.com/WordPress/WordPress/blob/f9cc35ebad82753e9c86de322ea5c76a9001c7e2/wp-admin/setup-config.php#L216-L230
* (However, using "example username" and "example password" in your database is strongly discouraged. Please use strong, random credentials!)
*/

/** Database hostname */
define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', '') );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', getenv_docker('WORDPRESS_DB_CHARSET', 'utf8') );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', getenv_docker('WORDPRESS_DB_COLLATE', '') );

/**#@+
* Authentication unique keys and salts.
*
* Change these to different unique phrases! You can generate these using
* the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
*
* You can change these at any point in time to invalidate all existing cookies.
* This will force all users to have to log in again.
*
* @since 2.6.0
*/
define( 'AUTH_KEY', getenv_docker('WORDPRESS_AUTH_KEY', '974cc9361d6797c406263e709b176264348f1da3') );
define( 'SECURE_AUTH_KEY', getenv_docker('WORDPRESS_SECURE_AUTH_KEY', 'f2208cc4d72c724cee71aa30a902a5191446f593') );
define( 'LOGGED_IN_KEY', getenv_docker('WORDPRESS_LOGGED_IN_KEY', '352d82ef04e4a5413e19db8592c39411919d2c85') );
define( 'NONCE_KEY', getenv_docker('WORDPRESS_NONCE_KEY', 'ece871740627976abf36b6fd1edfcfd78d0550db') );
define( 'AUTH_SALT', getenv_docker('WORDPRESS_AUTH_SALT', '645e4ea04429a04f219a5732f71b77ca9b50402a') );
define( 'SECURE_AUTH_SALT', getenv_docker('WORDPRESS_SECURE_AUTH_SALT', '000a1524071c9fd81c2f2be043a997a0e94675c4') );
define( 'LOGGED_IN_SALT', getenv_docker('WORDPRESS_LOGGED_IN_SALT', '57e76ae81687414e8f7c37c90afae63f9b8a5d6a') );
define( 'NONCE_SALT', getenv_docker('WORDPRESS_NONCE_SALT', 'bd0b3f068e3e4eac8bb6fbc89dc7ba3744eb2a54') );
// (See also https://wordpress.stackexchange.com/a/152905/199287)

/**#@-*/

/**
* WordPress database table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = getenv_docker('WORDPRESS_TABLE_PREFIX', 'wp_');

/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the documentation.
*
* @link https://wordpress.org/support/article/debugging-in-wordpress/
*/
define( 'WP_DEBUG', !!getenv_docker('WORDPRESS_DEBUG', '') );
/* Add any custom values between this line and the "stop editing" line. */

// Check DB connection
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$is_slave = true;
if ( $mysqli->connect_errno ) {// this is a slave node
//Disable cron on slave nodes
define( 'DISABLE_WP_CRON' , true );
//Disable WP_AUTO_UPDATE_CORE on slave nodes
define( 'WP_AUTO_UPDATE_CORE', false );
} else {
$is_slave = false;
$mysqli->close();
}

// If we're behind a proxy server and using HTTPS, we need to alert WordPress of that fact
// see also https://wordpress.org/support/article/administration-over-ssl/#using-a-reverse-proxy
if ( !empty( $_SERVER['HTTP_HOST'] ) || $_SERVER['REMOTE_ADDR'] === '127.0.0.1' ) {
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) !== false ) {
$_SERVER['HTTPS'] = 'on';
} else {
define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
}
} else {
// request comming from FDM health check, check if node is slave
if ( $is_slave ) {
header('HTTP/1.1 500 Internal Server Error');
echo 'Database connection failed';
exit(0);
} else {
echo 'OK';
$mysqli->close();
exit(0);
}
}

if ( $configExtra = getenv_docker('WORDPRESS_CONFIG_EXTRA', '') ) {
// eval($configExtra);
}

define( 'WP_MEMORY_LIMIT', '1024M' );

# define( 'WP_DEBUG', true);
# define( 'WP_DEBUG_LOG', true );
/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

<?php

define( 'WP_CACHE', true );

/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the installation.
* You don't have to use the web site, you can copy this file to "wp-config.php"
* and fill in the values.
*
* This file contains the following configurations:
*
* * Database settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* This has been slightly modified (to read environment variables) for use in Docker.
*
* @link https://wordpress.org/support/article/editing-wp-config-php/
*
* @package WordPress
*/

// IMPORTANT: this file needs to stay in-sync with https://github.com/WordPress/WordPress/blob/master/wp-config-sample.php
// (it gets parsed by the upstream wizard in https://github.com/WordPress/WordPress/blob/f27cb65e1ef25d11b535695a660e7282b98eb742/wp-admin/setup-config.php#L356-L392)

// a helper function to lookup "env_FILE", "env", then fallback
if ( !function_exists('getenv_docker') ) {
// https://github.com/docker-library/wordpress/issues/588 (WP-CLI will load this file 2x)
function getenv_docker( $env, $default ) {
if ( $fileEnv = getenv( $env . '_FILE') ) {
return rtrim( file_get_contents( $fileEnv ), "\r\n" );
}
else if ( ( $val = getenv( $env ) ) !== false ) {
return $val;
}
else {
return $default;
}
}
}

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'test_db') );

/** Database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );

/** Database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', '123secret') );

/**
* Docker image fallback values above are sourced from the official WordPress installation wizard:
* https://github.com/WordPress/WordPress/blob/f9cc35ebad82753e9c86de322ea5c76a9001c7e2/wp-admin/setup-config.php#L216-L230
* (However, using "example username" and "example password" in your database is strongly discouraged. Please use strong, random credentials!)
*/

/** Database hostname */
define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', '') );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', getenv_docker('WORDPRESS_DB_CHARSET', 'utf8') );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', getenv_docker('WORDPRESS_DB_COLLATE', '') );

/**#@+
* Authentication unique keys and salts.
*
* Change these to different unique phrases! You can generate these using
* the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
*
* You can change these at any point in time to invalidate all existing cookies.
* This will force all users to have to log in again.
*
* @since 2.6.0
*/
define( 'AUTH_KEY', getenv_docker('WORDPRESS_AUTH_KEY', '974cc9361d6797c406263e709b176264348f1da3') );
define( 'SECURE_AUTH_KEY', getenv_docker('WORDPRESS_SECURE_AUTH_KEY', 'f2208cc4d72c724cee71aa30a902a5191446f593') );
define( 'LOGGED_IN_KEY', getenv_docker('WORDPRESS_LOGGED_IN_KEY', '352d82ef04e4a5413e19db8592c39411919d2c85') );
define( 'NONCE_KEY', getenv_docker('WORDPRESS_NONCE_KEY', 'ece871740627976abf36b6fd1edfcfd78d0550db') );
define( 'AUTH_SALT', getenv_docker('WORDPRESS_AUTH_SALT', '645e4ea04429a04f219a5732f71b77ca9b50402a') );
define( 'SECURE_AUTH_SALT', getenv_docker('WORDPRESS_SECURE_AUTH_SALT', '000a1524071c9fd81c2f2be043a997a0e94675c4') );
define( 'LOGGED_IN_SALT', getenv_docker('WORDPRESS_LOGGED_IN_SALT', '57e76ae81687414e8f7c37c90afae63f9b8a5d6a') );
define( 'NONCE_SALT', getenv_docker('WORDPRESS_NONCE_SALT', 'bd0b3f068e3e4eac8bb6fbc89dc7ba3744eb2a54') );
// (See also https://wordpress.stackexchange.com/a/152905/199287)

/**#@-*/

/**
* WordPress database table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = getenv_docker('WORDPRESS_TABLE_PREFIX', 'wp_');

/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the documentation.
*
* @link https://wordpress.org/support/article/debugging-in-wordpress/
*/
define( 'WP_DEBUG', !!getenv_docker('WORDPRESS_DEBUG', '') );
/* Add any custom values between this line and the "stop editing" line. */

// Check DB connection
$is_slave = true;
try {
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ( $mysqli->connect_errno ) {// this is a slave node
//Disable cron on slave nodes
define( 'DISABLE_WP_CRON' , true );
//Disable WP_AUTO_UPDATE_CORE on slave nodes
define( 'WP_AUTO_UPDATE_CORE', false );
} else {
$is_slave = false;
$mysqli->close();
}
}
catch(Exception $e) {
//Disable cron on slave nodes
define( 'DISABLE_WP_CRON' , true );
//Disable WP_AUTO_UPDATE_CORE on slave nodes
define( 'WP_AUTO_UPDATE_CORE', false );
}

// If we're behind a proxy server and using HTTPS, we need to alert WordPress of that fact
// see also https://wordpress.org/support/article/administration-over-ssl/#using-a-reverse-proxy
if ( !empty( $_SERVER['HTTP_HOST'] ) || $_SERVER['REMOTE_ADDR'] === '127.0.0.1' ) {
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) !== false ) {
$_SERVER['HTTPS'] = 'on';
} else {
// define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
// define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
}
} else {
// request comming from FDM health check, check if node is slave
if ( $is_slave ) {
header('HTTP/1.1 500 Internal Server Error');
echo 'Database connection failed';
exit(0);
} else {
echo 'OK';
exit(0);
}
}

if ( $configExtra = getenv_docker('WORDPRESS_CONFIG_EXTRA', '') ) {
// eval($configExtra);
}

define( 'WP_MEMORY_LIMIT', '1024M' );

# define( 'WP_DEBUG', true);
# define( 'WP_DEBUG_LOG', true );
/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

Loading