diff --git a/mochalov_danila_lab_1/LocalSettings.php b/mochalov_danila_lab_1/LocalSettings.php new file mode 100644 index 0000000..9644427 --- /dev/null +++ b/mochalov_danila_lab_1/LocalSettings.php @@ -0,0 +1,140 @@ + "$wgResourceBasePath/resources/assets/change-your-logo.svg", + 'icon' => "$wgResourceBasePath/resources/assets/change-your-logo-icon.svg", +]; + +## UPO means: this is also a user preference option + +$wgEnableEmail = true; +$wgEnableUserEmail = true; # UPO + +$wgEmergencyContact = ''; +$wgPasswordSender = ''; + +$wgEnotifUserTalk = false; # UPO +$wgEnotifWatchlist = false; # UPO +$wgEmailAuthentication = true; + +## Database settings +$wgDBtype = 'mysql'; +$wgDBserver = 'mariadb'; +$wgDBname = 'my_wiki'; +$wgDBuser = 'wikiuser'; +$wgDBpassword = 'password'; + +# MySQL specific settings +$wgDBprefix = ""; +$wgDBssl = false; + +# MySQL table options to use during installation or update +$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary"; + +# Shared database table +# This has no effect unless $wgSharedDB is also set. +$wgSharedTables[] = "actor"; + +## Shared memory settings +$wgMainCacheType = CACHE_NONE; +$wgMemCachedServers = []; + +## To enable image uploads, make sure the 'images' directory +## is writable, then set this to true: +$wgEnableUploads = false; +$wgUseImageMagick = true; +$wgImageMagickConvertCommand = '/usr/bin/convert'; + +# InstantCommons allows wiki to use images from https://commons.wikimedia.org +$wgUseInstantCommons = false; + +# Periodically send a pingback to https://www.mediawiki.org/ with basic data +# about this MediaWiki instance. The Wikimedia Foundation shares this data +# with MediaWiki developers to help guide future development efforts. +$wgPingback = false; + +# Site language code, should be one of the list in ./includes/languages/data/Names.php +$wgLanguageCode = 'ru'; + +# Time zone +$wgLocaltimezone = 'UTC'; + +## Set $wgCacheDirectory to a writable directory on the web server +## to make your wiki go slightly faster. The directory should not +## be publicly accessible from the web. +#$wgCacheDirectory = "$IP/cache"; + +$wgSecretKey = '35e36bd38120ddaa8ba6e353d81951b7b85c7be00e0ee915c4bb4bfa44477368'; + +# Changing this will log out all existing sessions. +$wgAuthenticationTokenVersion = '1'; + +# Site upgrade key. Must be set to a string (default provided) to turn on the +# web installer while LocalSettings.php is in place +$wgUpgradeKey = '698fd18eabeec460'; + +## For attaching licensing metadata to pages, and displaying an +## appropriate copyright notice / icon. GNU Free Documentation +## License and Creative Commons licenses are supported so far. +$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright +$wgRightsUrl = ''; +$wgRightsText = ''; +$wgRightsIcon = ""; + +# Path to the GNU diff3 utility. Used for conflict resolution. +$wgDiff3 = '/usr/bin/diff3'; + +## Default skin: you can change the default skin. Use the internal symbolic +## names, e.g. 'vector' or 'monobook': +$wgDefaultSkin = 'vector-2022'; + +# Enabled skins. +# The following skins were automatically enabled: +wfLoadSkin( 'MinervaNeue' ); +wfLoadSkin( 'MonoBook' ); +wfLoadSkin( 'Timeless' ); +wfLoadSkin( 'Vector' ); + + +# End of automatically generated settings. +# Add more configuration options below. + diff --git a/mochalov_danila_lab_1/README.md b/mochalov_danila_lab_1/README.md new file mode 100644 index 0000000..2d59f12 --- /dev/null +++ b/mochalov_danila_lab_1/README.md @@ -0,0 +1,40 @@ +# Лабораторная работа №1 + +## Описание +Для выполнения данной лабораторной работы были развернуты следующие сервисы: + - mediawiki - Вики-движок; + - mariadb - БД для сервиса mediawiki; + - drupal - Система управления контентом; + - postgres - БД для сервиса drupal. + +В файле docker-compose прописаны инструкции для запуска четырех контейнеров с сервисами. +Для пояснения инструкций для каждой строки добавлены комментарии с объяснением. + +## Запуск +Для запуска необходимо перейти в папку с файлом docker-compose и ввести команду в терминале +``` +docker compose up -d +``` +Флаг -d позволяет запустить контейнеры в фоновом режиме, оставляя доступ к консоли. + +Для полноценного первого запуска сервиса drupal необходимо открыть его веб-клиент и следовать инструкциям. +Для полноценного первого запуска сервиса mediawiki необходимо открыть его веб-клиент после запуска и следовать инструкциям по настройке. +После получения файла LocalSettings.php необходимо: + - расскоментировать строчку ./LocalSettings.php:/var/www/html/LocalSettings.php в docker-compose + - перенести файл в директорию с файлом docker-compose и перезапустить контейнер. + +Для проверки контейнеров после запуска можно использовать команду +``` +docker ps -a +``` +В случае если все контейнеры успешно запущены мы увидим в их в консоли со статусом Up +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +e86a2cd3b071 mediawiki "docker-php-entrypoi…" 42 seconds ago Up 39 seconds 0.0.0.0:8080->80/tcp mochalov_danila_lab_1-mediawiki-1 +260ca4b612fe postgres:16 "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 5432/tcp mochalov_danila_lab_1-postgres-1 +1fbd6c3922e2 mariadb "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 3306/tcp mochalov_danila_lab_1-mariadb-1 +a7d4e194a30a drupal:10-apache "docker-php-entrypoi…" 42 seconds ago Up 40 seconds 0.0.0.0:3000->80/tcp mochalov_danila_lab_1-drupal-1 +``` + +## Демонстрация работы +Для демонстрации работоспособности записан ролик. Доступ по [ссылке] (https://drive.google.com/file/d/1GkJSwaoSUjggKQIRJlNQtJ12QEDtium6/view?usp=sharing) diff --git a/mochalov_danila_lab_1/docker-compose.yml b/mochalov_danila_lab_1/docker-compose.yml new file mode 100644 index 0000000..d977dcb --- /dev/null +++ b/mochalov_danila_lab_1/docker-compose.yml @@ -0,0 +1,52 @@ +services: + mediawiki: # Сервис MediaWiki + image: mediawiki # Образ MediaWiki из Docker Hub + restart: always # Автоматический перезапуск контейнера при сбое + ports: + - 8080:80 # Проброс порта 80 из контейнера на порт 8080 хоста + depends_on: + - mariadb # Запуск MediaWiki только после запуска MariaDB + volumes: + - images:/var/www/html/images # Монтирование volume для хранения данных + - ./LocalSettings.php:/var/www/html/LocalSettings.php # Монтирование локального файла настроек (ЗАКОММЕНТИРОВАТЬ ДО НАСТРОЙКИ) + + mariadb: # Сервис MariaDB + image: mariadb # Образ MariaDB из Docker Hub + restart: always # Автоматический перезапуск контейнера при сбое + environment: # Переменные окружения для настройки базы данных + MYSQL_DATABASE: my_wiki # Название базы данных + MYSQL_USER: wikiuser # Имя пользователя для доступа к базе данных + MYSQL_PASSWORD: password # Пароль для пользователя + MYSQL_RANDOM_ROOT_PASSWORD: 'yes' # Случайный пароль для пользователя root + volumes: + - db_maria:/var/lib/mysql # Монтирование volume для хранения данных базы + + drupal: # Сервис Drupal + image: drupal:10-apache # Образ Drupal + ports: + - 3000:80 # Проброс порта 80 из контейнера на порт 3000 хоста + volumes: # Монтирование volumes для хранения локальных файлов Drupal + - drupal-modules:/var/www/html/modules + - drupal-profiles:/var/www/html/profiles + - drupal-themes:/var/www/html/themes + - drupal-sites:/var/www/html/sites + restart: always # Автоматический перезапуск контейнера при сбое + depends_on: + - postgres # Запуск Drupal только после запуска Postgres + + postgres: # Сервис PostgreSQL + image: postgres:16 # Образ PostgreSQL + environment: + POSTGRES_PASSWORD: password # Пароль для пользователя postgres + restart: always # Автоматический перезапуск контейнера при сбое + volumes: + - db_postgres:/var/lib/postgresql # Монтирование volume для хранения данных базы + +volumes: + images: # Volume для хранения изображений MediaWiki + db_maria: # Volume для хранения данных MariaDB + db_postgres: # Volume для хранения данных Postgres + drupal-modules: # Volumes для хранения локальных данных Drupal + drupal-profiles: # Volumes для хранения локальных данных Drupal + drupal-themes: # Volumes для хранения локальных данных Drupal + drupal-sites: # Volumes для хранения локальных данных Drupal