UPDATE
This commit is contained in:
@@ -8,7 +8,7 @@ WORDPRESS_DB_PASSWORD=wordpress
|
|||||||
WORDPRESS_TABLE_PREFIX=wp_
|
WORDPRESS_TABLE_PREFIX=wp_
|
||||||
WORDPRESS_DEBUG=1
|
WORDPRESS_DEBUG=1
|
||||||
WORDPRESS_OFFLINE_MODE=1
|
WORDPRESS_OFFLINE_MODE=1
|
||||||
WORDPRESS_ACCESSIBLE_HOSTS=localhost,127.0.0.1,::1,wordpress,db
|
WORDPRESS_ACCESSIBLE_HOSTS=localhost,127.0.0.1,::1,wordpress,db,backend-web
|
||||||
|
|
||||||
MYSQL_DATABASE=wordpress
|
MYSQL_DATABASE=wordpress
|
||||||
MYSQL_USER=wordpress
|
MYSQL_USER=wordpress
|
||||||
|
|||||||
BIN
Binary file not shown.
+10
@@ -1,5 +1,15 @@
|
|||||||
FROM mirror-docker.runflare.com/wordpress:php8.2-apache
|
FROM mirror-docker.runflare.com/wordpress:php8.2-apache
|
||||||
|
|
||||||
|
COPY ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube_loaders_lin_x86-64.tar.gz
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
php_ext_dir="$(php -r 'echo ini_get("extension_dir");')"; \
|
||||||
|
php_version="$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')"; \
|
||||||
|
tar -xzf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp; \
|
||||||
|
cp "/tmp/ioncube/ioncube_loader_lin_${php_version}.so" "${php_ext_dir}/"; \
|
||||||
|
echo "zend_extension=${php_ext_dir}/ioncube_loader_lin_${php_version}.so" > /usr/local/etc/php/conf.d/00-ioncube.ini; \
|
||||||
|
rm -rf /tmp/ioncube /tmp/ioncube_loaders_lin_x86-64.tar.gz
|
||||||
|
|
||||||
# Enable common WordPress-friendly Apache and PHP defaults.
|
# Enable common WordPress-friendly Apache and PHP defaults.
|
||||||
RUN a2enmod rewrite \
|
RUN a2enmod rewrite \
|
||||||
&& { \
|
&& { \
|
||||||
|
|||||||
+3
-2
@@ -41,11 +41,12 @@ services:
|
|||||||
WORDPRESS_TABLE_PREFIX: ${WORDPRESS_TABLE_PREFIX}
|
WORDPRESS_TABLE_PREFIX: ${WORDPRESS_TABLE_PREFIX}
|
||||||
WORDPRESS_DEBUG: ${WORDPRESS_DEBUG}
|
WORDPRESS_DEBUG: ${WORDPRESS_DEBUG}
|
||||||
WORDPRESS_OFFLINE_MODE: ${WORDPRESS_OFFLINE_MODE:-1}
|
WORDPRESS_OFFLINE_MODE: ${WORDPRESS_OFFLINE_MODE:-1}
|
||||||
WORDPRESS_ACCESSIBLE_HOSTS: ${WORDPRESS_ACCESSIBLE_HOSTS:-localhost,127.0.0.1,::1,wordpress,db}
|
WORDPRESS_ACCESSIBLE_HOSTS: ${WORDPRESS_ACCESSIBLE_HOSTS:-localhost,127.0.0.1,::1,wordpress,db,backend-web}
|
||||||
ports:
|
ports:
|
||||||
- "${WORDPRESS_PORT}:80"
|
- "${WORDPRESS_PORT}:80"
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/var/www/html
|
- ./wp-content:/var/www/html/wp-content
|
||||||
|
- ./wp-config.php:/var/www/html/wp-config.php
|
||||||
networks:
|
networks:
|
||||||
- wp_internal
|
- wp_internal
|
||||||
- wp_public
|
- wp_public
|
||||||
|
|||||||
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
||||||
|
ARCHIVE_NAME="ioncube_loaders_lin_x86-64.tar.gz"
|
||||||
|
ARCHIVE_PATH="${ROOT_DIR}/${ARCHIVE_NAME}"
|
||||||
|
IONCUBE_URL="${IONCUBE_URL:-https://downloads.ioncube.com/loader_downloads/${ARCHIVE_NAME}}"
|
||||||
|
|
||||||
|
if [ -s "${ARCHIVE_PATH}" ]; then
|
||||||
|
echo "ionCube archive already exists: ${ARCHIVE_PATH}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP_PATH="${ARCHIVE_PATH}.tmp"
|
||||||
|
trap 'rm -f "${TMP_PATH}"' INT TERM EXIT
|
||||||
|
|
||||||
|
echo "Downloading ionCube archive to ${ARCHIVE_PATH}"
|
||||||
|
curl -fL --connect-timeout 10 --max-time 120 "${IONCUBE_URL}" -o "${TMP_PATH}"
|
||||||
|
mv "${TMP_PATH}" "${ARCHIVE_PATH}"
|
||||||
|
trap - INT TERM EXIT
|
||||||
|
|
||||||
|
echo "ionCube archive saved: ${ARCHIVE_PATH}"
|
||||||
+1
-1
@@ -126,7 +126,7 @@ if ( $wordpress_offline_mode ) {
|
|||||||
define( 'WP_HTTP_BLOCK_EXTERNAL', true );
|
define( 'WP_HTTP_BLOCK_EXTERNAL', true );
|
||||||
define(
|
define(
|
||||||
'WP_ACCESSIBLE_HOSTS',
|
'WP_ACCESSIBLE_HOSTS',
|
||||||
getenv_docker('WORDPRESS_ACCESSIBLE_HOSTS', 'localhost,127.0.0.1,::1,wordpress,db')
|
getenv_docker('WORDPRESS_ACCESSIBLE_HOSTS', 'localhost,127.0.0.1,::1,wordpress,db,backend-web')
|
||||||
);
|
);
|
||||||
define( 'AUTOMATIC_UPDATER_DISABLED', true );
|
define( 'AUTOMATIC_UPDATER_DISABLED', true );
|
||||||
define( 'WP_AUTO_UPDATE_CORE', false );
|
define( 'WP_AUTO_UPDATE_CORE', false );
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Plugin Name: CropLogic Performance Guards
|
||||||
|
* Description: Reduces delays caused by blocked external services on this WordPress install.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert env values like 1/true/on/yes into booleans.
|
||||||
|
*/
|
||||||
|
function croplogic_env_flag( $name, $default = false ) {
|
||||||
|
$value = getenv( $name );
|
||||||
|
|
||||||
|
if ( false === $value || '' === $value ) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
return filter_var( $value, FILTER_VALIDATE_BOOLEAN );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop the theme from waiting on Google Fonts when external traffic is blocked.
|
||||||
|
*/
|
||||||
|
function croplogic_disable_upstudy_google_fonts() {
|
||||||
|
wp_dequeue_style( 'upstudy-main-fonts' );
|
||||||
|
wp_deregister_style( 'upstudy-main-fonts' );
|
||||||
|
}
|
||||||
|
add_action( 'wp_enqueue_scripts', 'croplogic_disable_upstudy_google_fonts', 100 );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Short-circuit login/admin notification emails that can hang on blocked SMTP calls.
|
||||||
|
*/
|
||||||
|
function croplogic_skip_slow_wp_mail( $pre, $atts ) {
|
||||||
|
if ( ! croplogic_env_flag( 'WORDPRESS_DISABLE_SLOW_MAIL', true ) ) {
|
||||||
|
return $pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
$request_uri = isset( $_SERVER['REQUEST_URI'] ) ? (string) wp_unslash( $_SERVER['REQUEST_URI'] ) : '';
|
||||||
|
$is_login = false !== strpos( $request_uri, 'wp-login.php' );
|
||||||
|
$is_admin = is_admin();
|
||||||
|
$action = isset( $_REQUEST['action'] ) ? sanitize_key( wp_unslash( $_REQUEST['action'] ) ) : '';
|
||||||
|
|
||||||
|
if ( in_array( $action, array( 'lostpassword', 'retrievepassword', 'rp', 'resetpass' ), true ) ) {
|
||||||
|
return $pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $is_login && ! $is_admin ) {
|
||||||
|
return $pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_filter( 'pre_wp_mail', 'croplogic_skip_slow_wp_mail', 10, 2 );
|
||||||
@@ -1 +0,0 @@
|
|||||||
.elementor-11 .elementor-element.elementor-element-b4730ed{--display:flex;}.elementor-11 .elementor-element.elementor-element-8d8be18 .crop-logic-chat{min-height:760px;--cl-radius:28px;--cl-primary:#2b8a3e;--cl-accent:#2d9cdb;--cl-bg:#f5f7f1;--cl-surface:#ffffff;--cl-border:rgba(43, 138, 62, 0.15);--cl-text:#16331b;--cl-muted:#5f6f62;--cl-user-bubble:rgba(43, 138, 62, 0.12);--cl-assistant-bubble:#ffffff;--cl-input-bg:#ffffff;}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.elementor-13 .elementor-element.elementor-element-f2b90d8{--display:flex;}.elementor-13 .elementor-element.elementor-element-b47d29f .crop-logic-chat{--cl-primary:#2b8a3e;--cl-accent:#2d9cdb;--cl-bg:#f5f7f1;--cl-surface:#ffffff;--cl-border:rgba(43, 138, 62, 0.15);--cl-text:#16331b;--cl-muted:#5f6f62;--cl-user-bubble:rgba(43, 138, 62, 0.12);--cl-assistant-bubble:#ffffff;--cl-input-bg:#ffffff;}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.elementor-20 .elementor-element.elementor-element-0bf8074{--display:flex;}.elementor-20 .elementor-element.elementor-element-105d04b .crop-logic-chat{--cl-primary:#2b8a3e;--cl-accent:#2d9cdb;--cl-bg:#f5f7f1;--cl-surface:#ffffff;--cl-border:rgba(43, 138, 62, 0.15);--cl-text:#16331b;--cl-muted:#5f6f62;--cl-user-bubble:rgba(43, 138, 62, 0.12);--cl-assistant-bubble:#ffffff;--cl-input-bg:#ffffff;}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.elementor-kit-5{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
|
|
||||||
Reference in New Issue
Block a user