Юлия Бедросова, перед тем как такое советовать, перечитайте лицензионное соглашения Битрикс24
|
Юлия Бедросова, перед тем как такое советовать, перечитайте лицензионное соглашения Битрикс24
|
|
|
|
|
|
smirnov1990,
Чисто из любопытства[QUOTE]и второй вопрос, почему mysql ставиться без плагина handlersoket? как его поставить самому?[/QUOTE] Зачем он вам? Битрикс все равно с ним нормально работать не умеет. |
|
|
|
|
|
Марат Шамшутдинов,
Наш первичный entrypoint для php-fpm (я его слегка почистил) выглядел вот так [CODE]#!/bin/bash APPLICATION_DIR="{application_dir}" APPLICATION_DOMAIN="{application_domain}" APPLICATION_FROM="{application_from}" MYSQL_DATABASE="{mysql_database}" MYSQL_USER="{mysql_user}" MYSQL_PASSWORD="{mysql_password}" APPLICATION_FROM_SOURCE=${APPLICATION_FROM:0:5} APPLICATION_FROM_SOURCE=${APPLICATION_FROM_SOURCE,,} #todo: add error\exceptions function destinationExists(){ local EXIST=$(wget -s -q $1 -O - 2>&1 | grep 'HTTP') if [ -z "${EXIST}" ]; then echo "true" else echo "false" fi } if [ ${APPLICATION_FROM_SOURCE} = "https" ] || [ ${APPLICATION_FROM_SOURCE} = "http:" ]; then APPLICATION_FROM_SOURCE="archive" else APPLICATION_FROM_SOURCE="git" fi ###BITRIX### ################################# # Bitrix not installed if [ ! -d "${APPLICATION_DIR}/bitrix" ]; then # Fr om archive if [ ${APPLICATION_FROM_SOURCE} = "archive" ]; then EXISTS=true COUNTER=0 # Download while [ ${EXISTS} = true ] do URL=${APPLICATION_FROM} if (( ${COUNTER} > 0 )); then URL+=".${COUNTER}" fi EXISTS=$(destinationExists "${URL}") if [ ${EXISTS} = true ]; then wget ${URL} -P ${APPLICATION_DIR} fi let COUNTER=COUNTER+1 done # Full archive name without path ARCHIVE="${APPLICATION_FROM##*/}" # Archive name without .tar.gz ARCHIVE_NAME="${ARCHIVE::-7}" # Prepare archive cat ${APPLICATION_DIR}/${ARCHIVE}* > ${APPLICATION_DIR}/archive.tar.gz rm -rf ${APPLICATION_DIR}/${ARCHIVE}* # Extract tar -xzf ${APPLICATION_DIR}/archive.tar.gz -C ${APPLICATION_DIR} # Delete archive rm ${APPLICATION_DIR}/archive.tar.gz # Copy database file to root folder if [ -f "${APPLICATION_DIR}/bitrix/backup/${ARCHIVE_NAME}.sql" ]; then mv ${APPLICATION_DIR}/bitrix/backup/${ARCHIVE_NAME}.sql ${APPLICATION_DIR}/bitrix.sql fi if [ -f "${APPLICATION_DIR}/bitrix/backup/${ARCHIVE_NAME}_after_connect.sql" ]; then mv ${APPLICATION_DIR}/bitrix/backup/${ARCHIVE_NAME}_after_connect.sql ${APPLICATION_DIR}/bitrix_after_connect.sql fi # From git repository else # Clone shopt -s dotglob \ && find . -mindepth 1 -delete \ && git clone --depth 1 ${APPLICATION_FROM} ${APPLICATION_DIR} \ && rm -rf ${APPLICATION_DIR}/.git \ && shopt -u dotglob fi # Upd ate after_connect_d7.php if exists if [ -f "${APPLICATION_DIR}/bitrix/php_interface/after_connect_d7.php" ]; then sed -i "s@utf8@utf8mb4@g" ${APPLICATION_DIR}/bitrix/php_interface/after_connect_d7.php fi # Update after_connect.php if exists if [ -f "${APPLICATION_DIR}/bitrix/php_interface/after_connect.php" ]; then sed -i "s@utf8@utf8mb4@g" ${APPLICATION_DIR}/bitrix/php_interface/after_connect.php fi # @todo add escape for password if [ -f "${APPLICATION_DIR}/bitrix/php_interface/dbconn.php" ]; then sed -i -E "s|\\\$DBHost.+|\\\$DBHost = \"mysql\";|g" ${APPLICATION_DIR}/bitrix/php_interface/dbconn.php \ && sed -i -E "s|\\\$DBName.+|\\\$DBName = \"${MYSQL_DATABASE}\";|g" ${APPLICATION_DIR}/bitrix/php_interface/dbconn.php \ && sed -i -E "s|\\\$DBLogin.+|\\\$DBLogin = \"${MYSQL_USER}\";|g" ${APPLICATION_DIR}/bitrix/php_interface/dbconn.php \ && sed -i -E "s|\\\$DBPassword.+|\\\$DBPassword = \"${MYSQL_PASSWORD}\";|g" ${APPLICATION_DIR}/bitrix/php_interface/dbconn.php # Switch on MySQLi if ! (( $(grep -wc "BX_USE_MYSQLI" "${APPLICATION_DIR}/bitrix/php_interface/dbconn.php") > 0 )); then sed -i "s@<?@<?php\ndefine(\"BX_USE_MYSQLI\", true);\n?><?@1" ${APPLICATION_DIR}/bitrix/php_interface/dbconn.php fi fi if [ -f "${APPLICATION_DIR}/bitrix/.settings.php" ]; then sed -i "s@//#docker@@g" ${APPLICATION_DIR}/bitrix/.settings.php \ && sed -i -E "s@'host' =>.+,@'host' => 'mysql',@g" ${APPLICATION_DIR}/bitrix/.settings.php \ && sed -i -E "s@'database' =>.+,@'database' => '${MYSQL_DATABASE}',@g" ${APPLICATION_DIR}/bitrix/.settings.php \ && sed -i -E "s@'login' =>.+,@'login' => '${MYSQL_USER}',@g" ${APPLICATION_DIR}/bitrix/.settings.php \ && sed -i -E "s@'password' =>.+,@'password' => '${MYSQL_PASSWORD}',@g" ${APPLICATION_DIR}/bitrix/.settings.php \ # Switch on MySQLi sed -i -E "s@MysqlConnection@MysqliConnection@g" ${APPLICATION_DIR}/bitrix/.settings.php fi fi ################################# ###DNS### ################################# # Se t IP for requests to self if [ ${APPLICATION_DOMAIN} != "_" ]; then while [ -z $(dig +short nginx) ] do sleep 2 done NGINX_IP=$(dig +short nginx | head -1) echo "${NGINX_IP} ${APPLICATION_DOMAIN}" >> /etc/hosts fi ################################# ###DB### ################################# if [ -f "${APPLICATION_DIR}/bitrix.sql" ]; then # Wait until DB will be available while [ -z $(dig +short mysql) ] do sleep 2 done # Check if DB is empty 0 - empty; !0 - some tables exists MYSQL_EMPTY=$(mysql -hmysql -u"${MYSQL_USER}" -p"${MYSQL_PASSWORD}" -sse "sel ect count(*) fr om information_schema.tables wh ere table_schema = '${MYSQL_DATABASE}';" | sed s/[^0-9]*//) # Import DB if DB is empty and import SQL file exists if [ ${MYSQL_EMPTY} = "0" ]; then mysql -hmysql -u"${MYSQL_USER}" -p"${MYSQL_PASSWORD}" ${MYSQL_DATABASE} < ${APPLICATION_DIR}/bitrix.sql # Delete sensitive SQL data if [ -f "${APPLICATION_DIR}/bitrix.sql" ]; then rm -rf ${APPLICATION_DIR}/bitrix.sql fi if [ -f "${APPLICATION_DIR}/bitrix_after_connect.sql" ]; then rm -rf ${APPLICATION_DIR}/bitrix_after_connect.sql fi fi fi ################################# ###END### # Run PHP-FPM php-fpm[/CODE] Соотвественно у нас в .env файл есть переменная APPLICATION_FROM которая принимает значения в виде ссылки на бэкап сайта [URL=https://dev.1c-bitrix.ru/bitrix/backup/1234567890.tar.gz]https://dev.1c-bitrix.ru/bitrix/backup/1234567890.tar.gz[/URL] или ссылки на git репозиторий [URL=mailto:git@github.com]git@github.com[/URL]:jquery/jquery.git Сейчас у нас немного другой механизм, но большая часть логики аналогична или не без изменений. |
|
|
|
|