Files
DOCKER_wordpress/srcs/requirements/wordpress/conf/wp_entrypoint.sh

88 lines
2.5 KiB
Bash

#!/bin/sh
GRAY="\e[0;30m"
RED="\e[0;31m"
GREEN="\e[0;32m"
YELLOW="\e[0;33m"
BLUE="\e[0;34m"
PURPLE="\e[0;35m"
CYAN="\e[0;36m"
WHITE="\e[0;37m"
RESET="\e[0m"
# it gets the ENV variables from .env because specified in the docker-compose.yml file
# install wordpress with cli : https://make.wordpress.org/cli/handbook/how-to-install/
# commands : https://developer.wordpress.org/cli/commands/
# bug with wp commands : https://github.com/wp-cli/config-command/issues/31
# -> use `php wp-cli.phar` instead of `wp` as command
echo -e ${YELLOW}download wordpress :${RESET}
if ! wp core version --path="${WP_VOLUME_DIR}" 2> /dev/null
then
echo -e ${YELLOW}wp core download...${RESET}
mkdir -p ${WP_VOLUME_DIR}
#wp core download --path="${WP_VOLUME_DIR}" --allow-root
php wp-cli.phar core download --path="${WP_VOLUME_DIR}" --allow-root
else
echo -e ${GREEN}already there !${RESET}
fi
# concat url with port if not 443
echo -n "check port : "
COMPLETE_URL="${WP_URL}"
if [ ! ${WP_PORT} -eq 443 ]; then
COMPLETE_URL="${WP_URL}:${WP_PORT}"
fi
# install wp if not already installed
if ! wp core is-installed --path="${WP_VOLUME_DIR}" 2> /dev/null
then
echo -e ${YELLOW}installing :${RESET}
#wp config create \
echo -e ${YELLOW}wp config create...${RESET}
php wp-cli.phar config create \
--dbhost="${DB_HOST}" \
--dbname="${DB_NAME}" \
--dbuser="${DB_USER}" \
--dbpass="${DB_PSWD}" \
--path="${WP_VOLUME_DIR}" --allow-root
#wp core install \
echo -e ${YELLOW}wp core install...${RESET}
php wp-cli.phar core install \
--url="${WP_URL}" \
--title="${WP_TITLE}" \
--admin_user="${WP_ADMIN}" \
--admin_email="${WP_ADMIN_EMAIL}" \
--admin_password="${WP_ADMIN_PSWD}" \
--skip-email \
--path="${WP_VOLUME_DIR}" --allow-root
echo -e ${YELLOW}chown and chmod...${RESET}
chown -R www-data:www-data /var/www/*
chmod 755 -R /var/www/*
echo -e ${GREEN}done !${RESET}
else
echo -e ${GREEN}wp is installed${RESET}
#https://stackoverflow.com/questions/56344567/wordpress-prevent-redirection-to-main-url
echo -e ${YELLOW}checking config.php file with current url...${RESET}
HOME=$(php wp-cli.phar config get WP_HOME --path=${WP_VOLUME_DIR})
if [ ${HOME} != ${COMPLETE_URL} ] ; then
php wp-cli.phar config set WP_HOME ${COMPLETE_URL} --path=${WP_VOLUME_DIR}
fi
SITEURL=$(php wp-cli.phar config get WP_SITEURL --path=${WP_VOLUME_DIR})
if [ ${SITEURL} != ${COMPLETE_URL} ] ; then
php wp-cli.phar config set WP_SITEURL ${COMPLETE_URL} --path=${WP_VOLUME_DIR}
fi
fi
exec "${PHP_VERSION}" -FR