- Как настроить mongodb локально
- Содержимое пакета MongoDB
- Создание каталога для БД и запуск MongoDB
- Установка драйверов MongoDB
- Установка и подключение к MongoDB
- Установка
- Доступ по сети
- Аутентификация
- Примеры подключения из языков программирования
- MongoDB для начинающих: знакомство и установка (часть 1/3)
- Почему MongoDB
- Ключевая терминология
- Установка MongoDB на Windows
- 5 последних уроков рубрики «PHP»
- Фильтрация данных с помощью zend-filter
- Контекстное экранирование с помощью zend-escaper
- Подключение Zend модулей к Expressive
- Совет: отправка информации в Google Analytics через API
- Подборка PHP песочниц
Как настроить mongodb локально
Для установки MongoDB загрузим один распространяемых пакетов с официального сайта https://www.mongodb.com/try/download/community.
Официальный сайт предоставляет пакеты дистрибутивов для различных платформ: Windows, Linux, MacOS, Solaris. И каждой платформы доступно несколько дистрибутивов. Причем есть два вида серверов — Community и Enterprise. В данном случае надо установить версию Community. Хотя Enterprise-версия обладает несколько большими возможностями, но она доступна только в триальном режиме или по подписке.
На момент написания данного материала последней версией платформы была версия 5.0 , которая увидела свет в июле 2021 года и для которой постоянно выходят подверсии. Использование конкретной версии может несколько отличаться от применения иных версий платформы MongoDB.
Для загрузки нобходиомго функционала выберем нужную операционную систему и подходящий тип пакета. Рассмотрим на примере установки на ОС Windows.
MongoDB можно загрузить в ряде вариантов. Так, для Windows доступна загрузка установщика msi и также доступна загрузка zip-пакета. В реальности нам достаточно загрузить zip-архив и распаковать в нужной нам папке. Поэтому выберем этот вариант загрузки:
Если до установки уже была установлена более ранняя версия MongoDB, то ее необходимо удалить.
После загрузки архивного пакета распакуем его в папку C:\mongodb .
Содержимое пакета MongoDB
Если после установки мы откроем папку bin в распакованном архиве ( C:\mongodb\bin ), то сможем найти там кучу приложений, которые выполняют определенную роль. Вкратце рассмотрим их.
mongo : представляет консольный интерфейс для взаимодействия с базами данных, своего рода консольный клиент
mongod : сервер баз данных MongoDB. Он обрабатывает запросы, управляет форматом данных и выполняет различные операции в фоновом режиме по управлению базами данных
mongos : служба маршрутизации MongoDB, которая помогает обрабатывать запросы и определять местоположение данных в кластере MongoDB
Создание каталога для БД и запуск MongoDB
После установки надо создать на жестком диске каталог, в котором будут находиться базы данных MongoDB.
В ОС Windows по умолчанию MongoDB хранит базы данных по пути C:\data\db , поэтому, если вы используете Windows, вам надо создать соответствующий каталог. В ОС Linux и MacOS каталогом по умолчанию будет /data/db .
Если же возникла необходимость использовать какой-то другой путь к файлам, то его можно передать при запуске MongoDB во флаге —dbpath .
Итак, после создания каталога для хранения БД можно запустить сервер MongoDB. Сервер представляет приложение mongod , которое находится в папке bin. Для этого запустим командную строку (в Windows) или консоль в Linux и там введем соответствующие команды. Для ОС Windows это будет выглядеть так:
Командная строка отобразит нам ряд служебной информации, например, что сервер запускается на localhost на порту 27017.
И после удачного запуска сервера мы сможем производить операции с бд через оболочку mongo . Эта оболочка представляет файл mongo.exe , который располагается в выше рассмотренной папке установки. Запустим этот файл:
Это консольная оболочка для взаимодействия с сервером, через которую можно управлять данными. Второй строкой эта оболочка говорит о подключении к серверу mongod.
Теперь поизведем какие-либо простейшие действия. Введем в mongo последовательно следующие команды и после каждой команды нажмем на Enter:
Первая команда use test устанавливает в качестве используемой базу данных test. Даже если такой бд нет, то она создается автоматически. И далее db будет представлять текущую базу данных — то есть базу данных test. После db идет users — это коллекция, в которую затем мы добавляем новый объект. Если в SQL нам надо создавать таблицы заранее, то коллекции MongoDB создает самостоятельно при их отсутствии.
С помощью метода db.users.insertOne() в коллекцию users базы данных test добавляется объект < name: "Tom" >. Описание добавляемого объекта определяется в формате, с которым вы возможно знакомы, если имели дело с форматом JSON. То есть в данном случае у объекта определен один ключ «name», которому сопоставляется значение «Tom». То есть мы добавляем пользователя с именем Tom.
Если объект был успешно добавлен, то консоль выведет результат операции, в частности, идентификатор добавленного объекта.
А третья команда db.users.find() выводит на экран все объекты из бд test.
Из вывода вы можете увидеть, что к начальным значениям объекта было добавлено какое-то непонятно поле ObjectId . Как вы помните, MongoDB в качестве уникальных идентификаторов документа использует поле _id . И в данном случае ObjectId как раз и представляет значение для идентификатора _id.
Установка драйверов MongoDB
В дальнейшем в рамках данного руководства мы будет рассматривать взаимодействие с сервером MongoDB преимущественно через выше использованную оболочку mongo . Однако, мы также можем взаимодействовать с mongodb в наших приложениях, написанных на PHP, C++, C# и других языках программирования. И для этой цели необходим специальный драйвер.
На офсайте на странице https://docs.mongodb.com/ecosystem/drivers/ можно найти список драйверов для всех поддерживаемых языков программирования, в частности, для PHP, C, C++, C#, Java, Go, Python, Rust, Ruby, Scala, Swift, а также для Node.js.
Работа с драйверами на конкретных языках программирования будет рассмотрена в соответствующих разделах, посвященных этим языкам..
Источник
Установка и подключение к MongoDB
В данной инструкции мы рассмотрим процесс установки MongoDB на Linux Ubuntu (Debian). Также будут приведены примеры настройки подключения по сети, защита соединения с помощью шифрования и аутентификации.
Установка
На странице MongoDB Community Downloads смотрим стабильные версии программного продукта. На момент обновления инструкции это была 4.4.
Обратите внимание, установка MongoDB возможна на большое число популярных операционных систем — Amazon, Debian, Ubuntu, macOS, CentOS, Red Hat, Windows и другие.
Переходим на страницу загрузки ключей для проверки подлинности репозитория. Копируем ссылку для версии MongoDB, которую мы планируем установить:
* в данном примере мы скопировали ссылку на ключ для версии 4.4. Обратите внимание, что также есть возможность загрузки ключей для более свежих и менее стабильных версий.
С помощью скопированной ссылки скачиваем и устанавливаем ключ:
wget -qO — https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add —
Создаем файл для настройки репозитория Ubuntu:
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
* focal — название релиза Ubuntu. В данном примере, версия 20.04. На данный момент возможны варианты:
- focal: 20.04.
- bionic: 18.04.
- xenial: 16.04.
Обновляем список пакетов:
apt-get install mongodb-org
Стартуем сервис и разрешаем его автозапуск:
systemctl start mongod
systemctl enable mongod
Для подключения к СУБД вводим команду:
Можно для проверки ввести команду, которая покажет созданные базы данных:
После первой установки мы должны увидеть следующее:
admin 0.000GB
config 0.000GB
local 0.000GB
В качестве примера работы мы можем попробовать создать новую базу данных и коллекцию. Объекты в MongoDB создаются автоматически при первом к ним обращении.
Для создания базы просто обращается к ней:
* в данном примере будут создана база newDB.
Для создания коллекции, выполняем команду на вставку данных:
Выходим из оболочки SQL:
Доступ по сети
По умолчанию к установленной базе можно подключиться только с локального компьютера. Рассмотрим процесс настройки сетевого доступа.
Для начала, откроем порт в брандмауэре:
iptables -I INPUT -p tcp —dport 27017 -j ACCEPT
* по умолчанию, MongoDB работает на TCP-порту 27017.
В системах на базе Ubuntu и Debian брандмауэр работает по принципу разрешения. Если мы не меняли данной настройки, то нам не обязательно создавать разрешающее правило для Mongo.
Открываем конфигурационный файл СУБД:
Находим директиву net и в ней опцию bindIp — добавляем IP-адрес, на котором наш сервер должен принимать запросы для MongoDB:
net:
port: 27017
bindIp: 127.0.0.1, 192.168.1.15
* в нашем примере мы добавили к 127.0.0.1 адрес 192.168.1.15 — это сетевой адрес нашего сервера, на котором он должен принимать запросы.
Перезапускаем сервис mongod:
systemctl restart mongod
Чтобы проверить подключение, на другом компьютере должен быть установлен клиент для подключения к Mongo. Процесс его установки схож с установкой сервера. Рассмотрим пример для Ubuntu.
Устанавливаем ключ для репозитория:
wget -qO — https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add —
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
* как в случае с сервером, focal — название релиза Ubuntu. В данном примере, версия 20.04. Другие варианты: bionic: 18.04, xenial: 16.04.
Обновляем список пакетов:
Устанавливаем клиентскую часть:
apt-get install mongodb-org-shell
Теперь можно подключиться к нашему серверу:
* в данном примере мы подключаемся к серверу MongoDB 192.168.1.15.
Также мы можем использовать MongoDB Compass — это приложение под Windows, Linux и macOS для работы с базой Mongo в графическом интерфейсе. Скачать его можно на странице официального сайта.
Аутентификация
По умолчанию, мы можем подключиться к СУБД без авторизации. Если нам необходимо повысить безопасность работы с базой, можно требовать ввода логина и пароля.
Заходим в командную оболочку Mongo:
Подключаемся к базе admin:
Создаем пользователя, под которым будем авторизовываться:
* в данном примере мы создадим пользователя с правами доступа на все базы. Логин root, пароль будет запрошен после ввода.
Придумываем и вводим пароль
После создания пользователя мы должны увидеть, примерно, следующую картину:
Successfully added user: <
«user» : «root»,
«roles» : [
<
«role» : «userAdminAnyDatabase»,
«db» : «admin»
>,
«readWriteAnyDatabase»
]
>
Выходим из командной оболочки:
Открываем конфигурационный файл:
Находим директиву security и задаем параметр authorization:
security:
authorization: enabled
Перезапускаем сервис mongod:
systemctl restart mongod
Теперь пробуем подключиться к mongo. Мы можем авторизоваться несколькими способами.
а) Авторизация при подключении:
mongo —authenticationDatabase «admin» -u «root» -p
* в данном примере мы подключимся к базе под пользователем root. Пароль будет запрошен системой после ввода команды.
б) Авторизация после подключения:
Теперь усилим безопасность, зашифровав передачу данных. Для этого нам понадобиться сертификат. В нашем примере, мы будем использовать самоподписанный сертификат, но в продуктивной среде, лучше его купить или запросить у Let’s Encrypt.
Создаем каталог, в котором разместим наши сертификаты:
mkdir -p /etc/ssl/mongodb
Сгенерируем самоподписанный сертификат:
openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/mongodb/cert.pem -keyout /etc/ssl/mongodb/cert.pem -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=mongo.dmosk.local/CN=mongo»
Выставим в качестве владельца на файлы сертификата пользователя mongodb:
chown mongodb:mongodb /etc/ssl/mongodb/cert.pem
Открываем конфигурационный файл СУБД:
В директиву net дописываем опции TLS:
net:
.
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb/cert.pem
* в данном примере мы указали необходимость шифрования данных при передаче, а также путь до сгенерированного нами сертификата.
Перезапускаем сервис mongod:
systemctl restart mongod
Для подключения к базе с использованием шифрования используем команду:
mongo —tls —tlsAllowInvalidCertificates
* в данном примере мы указываем при подключении использовать шифрование с использованием TLS. Опция tlsAllowInvalidCertificates говорит, что клиент должен принять неправильный сертификат (так как у нас он самоподписанный).
Так как у нас еще настроена аутентификация, для подключения введем такую команду:
mongo —tls —tlsAllowInvalidCertificates —authenticationDatabase «admin» -u «root» -p
Для подключения к нашему серверу по сети, полная команда будет такой:
mongo «mongodb://192.168.1.15:27017» —tls —tlsAllowInvalidCertificates —authenticationDatabase «admin» -u «root» -p
Примеры подключения из языков программирования
Рассмотрим небольшие примеры для подключения к MongoDB из языков программирования PHP и Python.
Для возможности работы PHP с Mongo необходимо установить соответствующее расширение. Выполняем пошагово следующие действия:
apt-get install php-pear php-dev
pecl channel-update pecl.php.net
pecl install mongodb
Для каждого возможного варианта использования PHP необходимо создать отдельный конфигурационной файл. В данном примере, под php 7.4 для cli, php-fpm, apache.
Источник
MongoDB для начинающих: знакомство и установка (часть 1/3)
MongoDB — это система управления базами данных, которая значительно отличается от MySQL. Основная разница заключается в том, что в MySQL запросы пишутся на языке SQL, а в MongoDB на BSON (бинарный JSON). Это значит, что работа с этой системой может осуществляться в основном через JavaScript выражения.
Также MongoDB включает в себя собственную утилиту для выполнения команд, направленных на работу с БД. В данном цикле статей, мы затронем следующие темы:
- Установка и запуск MongoDB на Windows
- Работа с MongoDB через консоль
- Интеграция MongoDB и PHP
Разработчикам не составляет труда быстро освоить работу с Mongo, если они знакомы с JSON. Этот формат использует выражения, которые состоят из пар “ключ”: “значение”.
Почему MongoDB
Между не табличными СУБД многие пользователи делают выбор в пользу MongoDB. Во-первых, данную систему можно установить практически на всех операционных системах (Windows, OSX, Linux). Во-вторых, проект до сих пор активно развивается и с завидной частотой команда разработчиков публикует обновления. Также мне кажется, что MongoDB предоставляет хорошую документацию для начинающих.
MongoDB лучше подходит в тех случаях, когда таблицы можно представить в виде объектов. По-моему, подобные системы лучше использовать при разработке приложений для мобильный устройств. В этом плане, Mongo предоставляет отдельные библиотеки, как для iOS, так и для Adndroid-а.
Ещё один весомый аргумент в пользу MongoDB: работать с данной системой можно на многих языках программирования, таких как C/C++, Python, PHP, Rubym Perl, .NET и даже Node.js.
MongoDB — это реальное решение, если вы хотите отступить от SQL и попробовать что-то новенькое.
Ключевая терминология
Перед тем как приступить к установке MongoDB, давайте разберёмся с основными понятиями.
Как и MySQL, MongoDB может содержать множество баз данных, только вместо таблиц они содержат “коллекции”.
Коллекция — это что-то типа таблицы, только без колонок. Вместо этого каждая строка содержит наборы записей в виде ключ:значение.
Пример:
Внутри коллекции Users (пользователи) может располагаться запись с ключами firstname (имя) и lastname (фамилия). В то же время, та же коллекция может содержать запись с другими ключами: firstname, lastname, e-mail, birth (день рождения). В этом-то и заключается гибкость MongoDB.
Каждая из этих записей, или строк, называется “документ”, но это не тот документ типа .txt или .html. Данная запись хранится в памяти в JSON формате.
Пример:
Предположим, в нашей коллекции содержится 500 документов. Как уже говорилось раньше, каждый из них может содержать разные поля. Единственное поле, которое должно быть у каждой записи, — это уникальный идентификатор (id), который добавляется автоматически.
Поначалу данная терминология может быть непривычной. Всё будет намного понятнее, когда вы увидите работу с СУБД на практике.
Установка MongoDB на Windows
Сперва качаем архив с MongoDB для win32 или win64.
Распаковываем скачанный архив и помещаем его, к примеру, на диск C, в каталог mongodb. Причём, проследите за тем, чтобы каталог bin был доступен по адресу C:\mongodb\bin .
Далее прописываем путь к папке bin в настройках нашей ОС, для того чтобы к .exe файлам данной папки мы могли достучаться из любого места. Итак, делаем правый клик на Компьютер — Свойства. В списке слева, выбираем “Дополнительные параметры системы”:
Далее, нажимаем на кнопку “Переменные среды”:
В открывшемся окне ищем системную переменную Path. Кликаем по ней дважды. В поле “значение переменной” переходим в самый конец, ставим знак “;” и вписываем путь к каталогу bin:
Отлично! Жмём “ок”. и переходим к следующему шагу.
Для начала, нам необходимо создать каталог, где будут храниться наши БД. К примеру, C:\databases . Создаём эту папку.
Далее нам необходимо зарегистрировать MongoDB как сервис, чтобы он запускался автоматически при включении компьютера. Для этого вызываем командную строку и пишем:
Данная команда создаст специальный лог файл и настройки конфигурации для сервиса.
Далее создаём сервис:
Прежде чем запустить его, давайте отредактируем файл mongod.cfg , вписав туда настройку dbpath — путь к папке с нашими базами данных. В моём случае, после правки файла его содержание должно выглядеть примерно так:
Возвращаемся к командной строке и запускаем сервис MongoDB:
Для того чтобы проверить, будет ли сервис запускаться автоматически, нажимаем сочетание клавиш “windows+r”, пишем “services.msc”, нажимаем ОК.
В списке сервисов ищем MongoDB и, если его тип запуска не автоматический, то выставляем данный пункт, предварительно сделав правый клик, и выбрав, “свойства”.
Теперь, когда мы создали сервис, который будет запускать MongoDB при включении компьютера, нам не нужно будет делать это вручную.
Для проверки работы MongoDB открываем командную строку и пишем:
Нажимаем Enter. Далее можем работать с данной СУБД. К примеру, посмотрим, какие сейчас у нас есть базы:
В ответе вы должны увидеть вот такую вот строку:
Итак, MongoDB установлена и сконфигурирована. В следующей части мы рассмотрим основные команды для работы с данной СУБД.
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.hongkiat.com/blog/webdev-with-mongodb-part1/
Перевел: Станислав Протасевич
Урок создан: 3 Апреля 2013
Просмотров: 111749
Правила перепечатки
5 последних уроков рубрики «PHP»
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Источник