Тази статия съдържа инструкции за използване на наличния MongoDB сървър за бази данни на нашите сървъри, както и за инсталиране на собствен MongoDB сървър чрез нашата платформата за уеб приложения (WebApps).

Важно: Ако нямате раздел "Уеб приложения" във Вашия Контролен панел, тогава инструкциите в тази статия не са валидни за Вашия акаунт и сървър. Можете да ни пишете за повече информация и съдействие.

"SSH достъп" и "Мрежови инструменти" трябва да са активирани за Вашия акаунт през раздел "SSH Достъп" на Контролния панел.

Свържете към Вашия акаунт чрез SSH и следвайте стъпките за избрания от Вас метод за използване/инсталиране на MongoDB.

Използване на наличния по подразбиране MongoDB сървър

Можете да използвате "mongod" пакета на нашите сървъри, за да използвате MongoDB. По подразбиране MongoDB използва порт "27017" и съхранява данните си в директорията "/data/db". Тъй като тези порт и директория не са достъпни за хостинг акаунтите, при използване на "mongod" пакета трябва да се използват отделни порт ("port") и директория за съхранение на данните ("dbpath"). За целта трябва да създадете директория, където да съхранявате MongoDB данните (напр. в директорията ~/private/mongodb/data/db):

mkdir -pv /home/$USER/private/mongodb/data/db
След това създайте WebApps проект със следната sureapp CLI команда:

sureapp project create \
    --engine "custom" \
    --engine-version "-" \
    --release-dir "/home/$USER/private/mongodb/" \
    --start-cmd "mongod --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
    mongodb

Инсталиране на собствен MongoDB сървър

Ако искате Вашият проект да използва версия на MongoDB, която е различна от инсталираната по подразбиране на сървъра, тогава можете да следвате тези стъпки:

  1. Отидете в директорията, в която желаете да инсталирате MongoDB (напр. "~/.local/bin)
    cd /home/$USER/.local/bin
  2. Изтеглете файловете за желаната версия на MongoDB от официалната страница. Трябва да изберете версията на MongoDB (напр. 7.0.12) , "Debian 11.0 x64" за платформа, "tgz" за пакет и да кликнете на бутона за копиране на линка (напр. "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian11-7.0.12.tgz"). Можете да изтеглите файла на сървъра със следната "curl" команда:

    curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian11-7.0.12.tgz
  3. Разархивирайте изтегления файл с командата "tar":

    tar -zxvf mongodb-linux-x86_64-debian11-7.0.12.tgz
  4. Копирайте mongosh файловете в директорията на MongoDB (напр. "~/.local/bin).

    cp -R -n mongodb-linux-x86_64-debian11-7.0.12/bin/* /home/$USER/.local/bin
  5. Уверете се, че пътят до MongoDB файловете е добавен в променливата "PATH". Можете да направите това, като добавите следния ред с код в ".bashrc" файла на Вашия акаунт (~/.bashrc):

    export PATH=$HOME/.local/bin:$PATHАко MongoDB файловете се намират в друга директория, то я добавете в променливата "PATH":

    export PATH=<mongodb-install-directory>/bin:$PATH
  6. Създайте директорията на уеб приложението, където ще използвате MongoDB (напр. "~/private/mongodb"). В тази директория, трябва да създадете директория data/db (напр. "~/private/mongodb/data/db"):

    mkdir -pv /home/$USER/private/mongodb/data/db
  7. Създайте WebApps проект със следната sureapp CLI команда:

    sureapp project create \
        --engine "custom" \
        --engine-version "-" \
        --release-dir "/home/$USER/private/mongodb/" \
        --start-cmd "/home/$USER/.local/bin/mongod --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
        mongodb

    Важно: Заместете "/home/$USER/.local/bin/mongod" с пълния път до Вашия собствен MongoDB сървър.

Настройване на WebApps проект


Отворете раздел "Уеб приложения" във Вашия хостинг Контролен панел и кликнете на бутона с иконка на молив (Промени) до проекта "mongodb". Изберете домейна и поддомейна чрез съответните падащи менюта в показалия се екран.

Промяна на MongoDB WebApps проект

Стартирайте приложението чрез бутона с иконка на червен кръг (Enable app) до него.

Посетете линка от колоната "Адрес" за проекта, където трябва да видите следното съобщение:

It looks like you are trying to access MongoDB over HTTP on the native driver port.

Ограничаване на достъпа

Можете да включите автентикация за MongoDB, с което да ограничите достъпа до базите Ви данни. Ако сте активирали ограничението на достъпа за MongoDB, потребителите ще могат да изпълняват само действията, които са разрешени за техните роли. Можете да следвате тези стъпки, за да добавите администраторски потребител за MongoDB без ограничение на достъпа и след това да ограничите достъпа:

  1. Свържете се с MongoDB чрез mongosh:

    mongosh --port $PORT
    Бележка: Инструмента "mongosh" за управление на MongoDB през командния ред е заместистел на "mongo" инструмента, който е спрян от поддръжка от MongoDB v5.0.

  2. Създайте нов потребител с администраторски права:

    use admin
    db.createUser(
    {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    }
    )

    Важно: Заменете myUserAdmin и abc123 с потребителското име и паролата, които желаете да използвате.

  3. Излезте от mongosh.

  4. Променете стартовата команда за MongoDB приложението Ви, така че да съдържа опцията "--auth" за активиране на контрол на достъпа. Ако използвате наличния по подразбиране MongoDB сървър, можете да промените стартовата команда така:

    sureapp project modify\
        --start-cmd "mongod --auth --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
        mongodb

    или така, ако използвате собствена инсталация на MongoDB сървър:

    sureapp project modify\
        --start-cmd "/home/$USER/.local/bin/mongod --auth --dbpath /home/$USER/private/mongodb/data/db --port \$PORT" \
        mongodb
  5. Рестартирайте MongoDB приложението с тази команда:

    sureapp service manage --disable mongodb && sureapp service manage --enable mongodb

Свързване с MongoDB база данни

Стандартния формат за URI връзка с MongoDB база данни изглежда така:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]]][/[database][?options]]

Следователно за връзка с базата данни, дадена за пример в тази статия, можете да използвате следния низ:

mongodb://myUserAdmin:abc123@localhost:16250/admin