Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Мая 26, 2019, 16:21 по Москве
Начало Помощь Поиск Войти Регистрация
Новости: Не ленись, тренируйся! Telegram - t.me/screensquid

+  Break-people
|-+  Центральная больница
| |-+  Webmin
| | |-+  [Тема закрыта] Сайт в Docker контейнере на домашнем ПК и доступ к нему из инте
« предыдущая тема следующая тема »
Страниц: [1] 2 3 Печать
Автор Тема: [Тема закрыта] Сайт в Docker контейнере на домашнем ПК и доступ к нему из инте  (Прочитано 9355 раз)
vint
Гость
« : Декабря 14, 2016, 14:16 по Москве »

Опыта общения на форуме почти нет,поэтому не уверен в правильности создания темы.
ЗАДУМКА:

1.Покупка VPS от REG.RU - https://hosting.reg.ru/vps/plan/XEN-1-0615 с предустановленным

centos6-x86 или centos7-x86_64 (бесплатная поддержка DNS на тарифе —

https://hosting.reg.ru/vps/free_dns)

2.Регистрация доменных имен (3х-5ти) на  REG.RU

3.Установка Webmin - http://ipv4host.net/install-vpn-server/install-webmin.html

4.Получить статический IP-адрес через VPN-соединение

  a)установка OpenVPN - http://ipv4host.net/install-vpn-server/install-openvpn-server.html

                                                                (хотелось бы SoftEther-VPN, но нет инструкции)
 
  b)маршрутизация — NAT, чтобы запросы идущие на IP VDS перенаправлялись на 
     
  домашний сервер - http://ipv4host.net/install-vpn-server/install-openvpn-server/install-nat.html

  c)настройка VPN-сервера для построения сети на базе NeoRouter -

http://ipv4host.net/install-vpn-server/install-neorouter-server.html

5.Создание сайтов (3х-5ти) на домашнем ПК используя развертывание Wordpress и

PhpMyAdmin с помощью Docker Compose на примере—

https://manjaro.ru/blog/how-to/how-to-install-wordpress-and-phpmyadmin-with-docker-compose-on-ubuntu-14_04.html#cut ,

по контейнеру на сайт

6.Настройка доменных имен и возможности доступа к сайтам из интернет

     Возможна ли реализация 6 пункта и если да, нет ли где-нибудь пошагового руководства,

ведь установка DNS сервера на домашнем компьютере по примеру -

http://maxistar.ru/blog/DNS-сервер-на домашнем/   не является полным руководством из-за

отсутствия описания настройки Primary DNS и Slave DNS.
« Последнее редактирование: Января 16, 2017, 18:39 по Москве от KerryT » Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #1 : Декабря 14, 2016, 15:09 по Москве »

Возможно.

Отвечу вопросом на вопрос, а что не получается?:)
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project
vint
Гость
« Ответ #2 : Декабря 14, 2016, 17:37 по Москве »

     Вот до этого места - "Primary DNS и Slave DNS" боле-менее ясно. Даже понимания нет надо ли оно,тем более моих весьма скудных знаний хватает лишь на то, чтобы осваивать такие вещи по внятной инструкции. Браться за сие не вижу смысла не поняв сути так,чтобы на финише упереться в это - Primary DNS и Slave DNS. Можете ткнуть носом, где почитать?
      Весьма благодарен, за отклик!
Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #3 : Декабря 14, 2016, 18:06 по Москве »

Например,

http://tforum.break-people.ru/index.php?topic=80.0

Дак если не браться, откуда вопросам браться?:) Здесь есть как минимум два доведенных до конца опыта, двоих бесстрашных DiGriz69 и nic, которым мы помогали по ходу дела.. уже два года они не возвращались если не больше, видно помогли:)
« Последнее редактирование: Декабря 14, 2016, 18:21 по Москве от KerryT » Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project
vint
Гость
« Ответ #4 : Декабря 14, 2016, 18:16 по Москве »

     бесстрашных? ;D
     Спасибо! Буду осваивать. Как бы там ни было, я думаю, что хоть какое-то понимание вопроса должно быть иначе просто переложить решение на кого-то и списать решение. Понимаю,что нестыковок с моим образованием будет немало.
Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #5 : Декабря 14, 2016, 18:24 по Москве »

Когда появятся вопросы, тогда интересней:)

Бесстрашных, да:) Один даже давал root доступ к своему серверу, чтобы я настройку сделал. Вобщем-то незнакомому человеку, но все получилось, а он надеюсь сменил пароли:)

P.s. CentOS это очень хорошо. И дома ставь :)
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project
vint
Гость
« Ответ #6 : Декабря 14, 2016, 18:32 по Москве »

     Дома кубунту десктоп, на ней и хочу с Docker поэксперементировать, что быть было экономнее - пенсия не велика. Как меня угораздило забрести на ваш форум, почитал форум и решился с вопросом. Решился потому как я ведь понимаю, как мои вопросы выглядят со стороны. Читаю по ссылке - пока венегрет :)
Записан
vint
Гость
« Ответ #7 : Декабря 24, 2016, 08:53 по Москве »

   Всем доброго дня накануне новогодних праздников!
В попытке развернуть сайт с помощью Docker Compose можно лишь использовать готовые образы с Dockerhab.Создать образ с движком instantcms довольно не просто.В этой попытке я взял за основу Dockerfile официального Wordpress и попытался изменить его.Выполнив
docker build -t ....образ даже собрался,на радостях я даже ЗАpushЫЛ его в Dockerhab.Собрал для теста docker-compose.yml с таким содержимым:
instantcms:
  image: vintl1/instantcms251
затем:
docker-compose upи....Ну всем уже ясно, что не пойдет так,кроме меня.Образ то вроде собрался,вот кстати содержимое Dockerfile:
FROM php:5.6-apache

# install the PHP extensions we need
RUN set -ex; \
\
apt-get update; \
apt-get install -y \
unzip \
libjpeg-dev \
libpng12-dev \
; \
rm -rf /var/lib/apt/lists/*; \
\
docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
docker-php-ext-install gd mysqli opcache
# TODO consider removing the *-dev deps and only keeping the necessary lib* packages

# set recommended PHP.ini settings
# see https://secure.php.net/manual/en/opcache.installation.php
RUN { \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=2'; \
echo 'opcache.fast_shutdown=1'; \
echo 'opcache.enable_cli=1'; \
} > /usr/local/etc/php/conf.d/opcache-recommended.ini

RUN a2enmod rewrite expires

VOLUME /var/www/html

RUN set -ex; \
        curl -o  instantcms_20160418_v2.5.1.zip -fSL "http://www.instantcms.ru/load/url=/download/2.0/instantcms_20160418_v2.5.1.zip"; \
# upstream tarballs include ./instantcms/ so this gives us /usr/src/instantcms
unzip instantcms_20160418_v2.5.1.zip -d /usr/src/instantcms/; \
chown -R www-data:www-data /usr/src/instantcms

COPY docker-entrypoint.sh ~/instantcms/

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["apache2-foreground"]
но не могла эта конструкция работать из-за пуркта 39,а именно:
COPY docker-entrypoint.sh ~/instantcms/Если бы я глянул на содержимое при копировании,сразу бы понял,что моя идея невыполнима.Dockerfile методом тыка вроде изменил, но docker-entrypoint.sh - мне не поддастся. Вот его содержимое:

#!/bin/bash
set -euo pipefail

# usage: file_env VAR [DEFAULT]
#    ie: file_env 'XYZ_DB_PASSWORD' 'example'
# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
#  "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
file_env() {
local var="$1"
local fileVar="${var}_FILE"
local def="${2:-}"
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
exit 1
fi
local val="$def"
if [ "${!var:-}" ]; then
val="${!var}"
elif [ "${!fileVar:-}" ]; then
val="$(< "${!fileVar}")"
fi
export "$var"="$val"
unset "$fileVar"
}

if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
file_env 'WORDPRESS_DB_HOST' 'mysql'
# if we're linked to MySQL and thus have credentials already, let's use them
file_env 'WORDPRESS_DB_USER' "${MYSQL_ENV_MYSQL_USER:-root}"
if [ "$WORDPRESS_DB_USER" = 'root' ]; then
file_env 'WORDPRESS_DB_PASSWORD' "${MYSQL_ENV_MYSQL_ROOT_PASSWORD:-}"
else
file_env 'WORDPRESS_DB_PASSWORD' "${MYSQL_ENV_MYSQL_PASSWORD:-}"
fi
file_env 'WORDPRESS_DB_NAME' "${MYSQL_ENV_MYSQL_DATABASE:-wordpress}"
if [ -z "$WORDPRESS_DB_PASSWORD" ]; then
echo >&2 'error: missing required WORDPRESS_DB_PASSWORD environment variable'
echo >&2 '  Did you forget to -e WORDPRESS_DB_PASSWORD=... ?'
echo >&2
echo >&2 '  (Also of interest might be WORDPRESS_DB_USER and WORDPRESS_DB_NAME.)'
exit 1
fi

if ! [ -e index.php -a -e wp-includes/version.php ]; then
echo >&2 "WordPress not found in $(pwd) - copying now..."
if [ "$(ls -A)" ]; then
echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!"
( set -x; ls -A; sleep 10 )
fi
tar cf - --one-file-system -C /usr/src/wordpress . | tar xf -
echo >&2 "Complete! WordPress has been successfully copied to $(pwd)"
if [ ! -e .htaccess ]; then
# NOTE: The "Indexes" option is disabled in the php:apache base image
cat > .htaccess <<-'EOF'
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
EOF
chown www-data:www-data .htaccess
fi
fi

# TODO handle WordPress upgrades magically in the same way, but only if wp-includes/version.php's $wp_version is less than /usr/src/wordpress/wp-includes/version.php's $wp_version

# version 4.4.1 decided to switch to windows line endings, that breaks our seds and awks
# https://github.com/docker-library/wordpress/issues/116
# https://github.com/WordPress/WordPress/commit/1acedc542fba2482bab88ec70d4bea4b997a92e4
sed -ri -e 's/\r\n|\r/\n/g' wp-config*

if [ ! -e wp-config.php ]; then
awk '/^\/\*.*stop editing.*\*\/$/ && c == 0 { c = 1; system("cat") } { print }' wp-config-sample.php > wp-config.php <<'EOPHP'
// If we're behind a proxy server and using HTTPS, we need to alert Wordpress of that fact
// see also http://codex.wordpress.org/Administration_Over_SSL#Using_a_Reverse_Proxy
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
EOPHP
chown www-data:www-data wp-config.php
fi

# see http://stackoverflow.com/a/2705678/433558
sed_escape_lhs() {
echo "$@" | sed -e 's/[]\/$*.^|[]/\\&/g'
}
sed_escape_rhs() {
echo "$@" | sed -e 's/[\/&]/\\&/g'
}
php_escape() {
php -r 'var_export(('$2') $argv[1]);' -- "$1"
}
set_config() {
key="$1"
value="$2"
var_type="${3:-string}"
start="(['\"])$(sed_escape_lhs "$key")\2\s*,"
end="\);"
if [ "${key:0:1}" = '$' ]; then
start="^(\s*)$(sed_escape_lhs "$key")\s*="
end=";"
fi
sed -ri -e "s/($start\s*).*($end)$/\1$(sed_escape_rhs "$(php_escape "$value" "$var_type")")\3/" wp-config.php
}

set_config 'DB_HOST' "$WORDPRESS_DB_HOST"
set_config 'DB_USER' "$WORDPRESS_DB_USER"
set_config 'DB_PASSWORD' "$WORDPRESS_DB_PASSWORD"
set_config 'DB_NAME' "$WORDPRESS_DB_NAME"

# allow any of these "Authentication Unique Keys and Salts." to be specified via
# environment variables with a "WORDPRESS_" prefix (ie, "WORDPRESS_AUTH_KEY")
UNIQUES=(
AUTH_KEY
SECURE_AUTH_KEY
LOGGED_IN_KEY
NONCE_KEY
AUTH_SALT
SECURE_AUTH_SALT
LOGGED_IN_SALT
NONCE_SALT
)
for unique in "${UNIQUES[@]}"; do
uniqVar="WORDPRESS_$unique"
file_env "$uniqVar"
if [ "${!uniqVar}" ]; then
set_config "$unique" "${!uniqVar}"
else
# if not specified, let's generate a random value
current_set="$(sed -rn -e "s/define\((([\'\"])$unique\2\s*,\s*)(['\"])(.*)\3\);/\4/p" wp-config.php)"
if [ "$current_set" = 'put your unique phrase here' ]; then
set_config "$unique" "$(head -c1m /dev/urandom | sha1sum | cut -d' ' -f1)"
fi
fi
done

file_env 'WORDPRESS_TABLE_PREFIX'
if [ "$WORDPRESS_TABLE_PREFIX" ]; then
set_config '$table_prefix' "$WORDPRESS_TABLE_PREFIX"
fi

file_env 'WORDPRESS_DEBUG'
if [ "$WORDPRESS_DEBUG" ]; then
set_config 'WP_DEBUG' 1 boolean
fi

TERM=dumb php -- "$WORDPRESS_DB_HOST" "$WORDPRESS_DB_USER" "$WORDPRESS_DB_PASSWORD" "$WORDPRESS_DB_NAME" <<'EOPHP'
<?php
// database might not exist, so let's try creating it (just to be safe)
$stderr fopen('php://stderr''w');
// https://codex.wordpress.org/Editing_wp-config.php#MySQL_Alternate_Port
//   "hostname:port"
// https://codex.wordpress.org/Editing_wp-config.php#MySQL_Sockets_or_Pipes
//   "hostname:unix-socket-path"
list($host$socket) = explode(':'$argv[1], 2);
$port 0;
if (
is_numeric($socket)) {
$port = (int) $socket;
$socket null;
}
$maxTries 10;
do {
$mysql = new mysqli($host$argv[2], $argv[3], ''$port$socket);
if ($mysql->connect_error) {
fwrite($stderr"\n" 'MySQL Connection Error: (' $mysql->connect_errno ') ' $mysql->connect_error "\n");
--$maxTries;
if ($maxTries <= 0) {
exit(1);
}
sleep(3);
}
} while (
$mysql->connect_error);
if (!
$mysql->query('CREATE DATABASE IF NOT EXISTS `' $mysql->real_escape_string($argv[4]) . '`')) {
fwrite($stderr"\n" 'MySQL "CREATE DATABASE" Error: ' $mysql->error "\n");
$mysql->close();
exit(1);
}
$mysql->close();
EOPHP
fi

exec 
"$@"
Видимо мораль сей басни такова, что двоечники нервно курят в сторонке.
Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #8 : Декабря 24, 2016, 17:00 по Москве »

А вопрос-то какой? Что делает это код?:)
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project
vint
Гость
« Ответ #9 : Декабря 27, 2016, 14:19 по Москве »

   И снова здрасте!
Файл docker-entrypoint.sh по всей видимости делает предварительную настройку движка и базы данных.Пришлось пойти другим путем, а именно я создал  docker-compose.yml, вот его содержимое:
instantcms_v2.5.1:
  image: cloudhero/apache-php
  volumes:
    - ~/instantcms/html:/var/www/html
  links:
    - instantcms_db:mysql
  ports:
    - 80:80
instantcms_db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: мой пароль
phpmyadmin:
  image: corbinu/docker-phpmyadmin
  links:
    - instantcms_db:mysql
  ports:
    - 81:80
  environment:
    MYSQL_USERNAME: root
    MYSQL_ROOT_PASSWORD: мой пароль
в каталоге ~/instantcms/html, предварительно соданном на локальном хосте, разместил файлы движка.В принципе эта конструкция заработала, тоесть и установочный скрипт запустился правильно в браузере и phpmyadmin, но сумма неудобств заставила меня отказаться от использования Docker, довольно не просто конфигурировать сервер, отсутствие подключения по SFTP, менять права на файлы и каталоги движка дельфином, да и результат проблематично переносить к провайдеру.
   Радует лишь то, что хоть какой-то опыт и понимание я приобрел.Из первоначальной задумки выполнено лишь три пункта:
1.Покупка VPS от REG.RU - https://hosting.reg.ru/vps/plan/XEN-1-0615 с предустановленным

centos6-x86 (бесплатная поддержка DNS на тарифе —

https://hosting.reg.ru/vps/free_dns)

2.Регистрация доменных имен (3х-5ти) на  REG.RU

3.Установка Webmin - http://ipv4host.net/install-vpn-server/install-webmin.html
   Создание нового виртуального хоста в панели webmin, заливка файлов движка по SFTP, установка Apache, MySQL, PHP, phpMyAdmin, Memcached, маломальское конфигурирование.Изменил DNS имена и IP домена на данные моего VPS.Прошли почти сутки, пока не работает домен. Может еще не время, а может накосячил гденить.По SSH как-то странно подключаюсь, раньше такого опыта не имел.Захожу ssh root@айпи vps ввожу пароль и вот так меня встречает сервер:
-bash-4.1#
Каким должно быть приветствие?
Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #10 : Декабря 27, 2016, 17:33 по Москве »

Ну собственно, да :) вас приветствует bash :) судя по #, доступ рутовый. Каждый сам для себя решает конечно, но я бы рутом не цеплялся по ssh. Как-то страшно:)

Вобщем-то если не большой секрет, то имя домена который купили, дайте в личку, чтобы хоть от чего-то оттолкнутся:)

Думаю, что домен просто не делегировался:)

nslookup должен развеять сомнения :)
« Последнее редактирование: Декабря 27, 2016, 17:49 по Москве от KerryT » Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #11 : Декабря 27, 2016, 21:01 по Москве »

nmap говорит:

Цитировать
PORT      STATE    SERVICE
22/tcp    open     ssh
80/tcp    open     http
83/tcp    open     mit-ml-dev
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds
1723/tcp  filtered pptp
3306/tcp  open     mysql
10000/tcp open     snet-sensor-mgmt

Что как бы намекает, что апач у вас есть и порт слушается. Я вам больше скажу, если вы вобьете IP адрес в браузер - то увидите установку Instant CMS.

Так что надо глядеть, что у вас там настроено в апаче. Честно говоря, ни разу не работал с русскими доменами. В идеале - спросить у техподдержки, как прописывать домен в апаче. Если нет возможности, то попробуйте те буквы с цифрами вбить в качестве доменного имени при создании виртуального хоста.

vint@вот_тут_у_вас_что + рус. (кинул в личку)
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project
vint
Гость
« Ответ #12 : Декабря 27, 2016, 21:14 по Москве »

Тех поддержка говорит,что мой сайт с их стороны уже доступен, приложили скрин. Что значит с их стороны, для осталось загадкой.
« Последнее редактирование: Декабря 27, 2016, 21:18 по Москве от vint » Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #13 : Декабря 27, 2016, 21:24 по Москве »

я думаю они имели ввиду по IP
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project
vint
Гость
« Ответ #14 : Декабря 27, 2016, 21:26 по Москве »

Нет,нет. На скрине в адресной строке мой домен/install
Записан
Страниц: [1] 2 3 Печать 
« предыдущая тема следующая тема »
 


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0 RC1 | SMF © 2006–2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!