Показаны сообщения с ярлыком apache. Показать все сообщения
Показаны сообщения с ярлыком apache. Показать все сообщения

вторник, 23 марта 2021 г.

Создание поддомена на голой VPS без контрольной панели (КП) от хостинга

Возникла у меня сгодня мысль написать одну утилику, которая бы парсила входящую почту по IMAP, сохраняла бы их в БД и отображала на веб-странице. Но речь сегодня не об этом. 

На вопрос где развернуть разработку этой утилиты, мне на ум сразу же пришло использовать своей рабочий VPS с рабочим доменом, и просто создать там поддомен, на котором можно было бы поиграться со скриптами, не трогая основной проект. Но проблема была в том, что мой VPS крутился без интеграции с КП хостинга, поэтому такая базовая операция, как создание поддомена, оказалась довольно замороченной. Итак, вот что я сделал:

1) Добавил A-запись в DNS c названием нового поддомена и айпи-адресом сервера. Так как я пользуюсь Cloudflare, то записи поменял в их КП. В ином случае нужно было бы менять DNS записи в КП хостинга. 

2) Создал и настроил виртуальные хосты на Apache, руководствуясь этим старым гайдом (если CentOS, то желательно юзать этот гайд, хотя в принципе подходит и тот и другой). Вообще-то говоря, это самая важная часть. При создании веб-сервера, нужно в первую очередь создавать и настраивать виртуальные хосты, чтобы в случае чего можно было без проблем добавить поддомены.

Итак, я всё сделал, файлы сайта перенёс в новую директорию и... сайт с поддоменом не открывается - браузер пишет, что имя домена не найдено. В чём же дело? Оказалось, что дело в моем тупом корпоративном интернете (да, я занимаюсь этой фигней во время рабочего дня), который очень долго хранит локальный DNS-кэш.

среда, 10 марта 2021 г.

Принцип работы email на mediawiki

 Оказывается, в mediawiki недостаточно просто настроить smtp на сервере, чтобы она могла отправлять письма. При таком варианте появляется ошибка Unknown error in PHP's mail() function, несмотря на то, в консоли функция mail() отправляет письмо успешно:

# php -r "mail('test_user@test_email.ru', 'hello', 'blablablah');"

Чтобы отправка email начала функционировать в медиавики, нужно в файл настроек добавить переменную $wgSMTP:

$wgSMTP = [

    'host'     => 'smtp.mail.com', // could also be an IP address. Where the SMTP server is located. If using SSL or TLS, add the prefix "ssl://" or "tls://".

    'IDHost'   => 'lopar-wiki.tk',      // Generally this will be the domain name of your website (aka mywiki.org)

    'port'     => 587,                // Port to use when connecting to the SMTP server

    'auth'     => true,               // Should we use SMTP authentication (true or false)

    'username' => 'lopario@lopar-wiki.tk',     // Username to use for SMTP authentication (if being used)

    'password' => '********'       // Password to use for SMTP authentication (if being used)

];

То есть отправка почты идёт мимо настроенного на сервере msmtp и функции mail(), а через свою имплементацию протокола SMTP в библиотеке классов PEAR, который в свою очередь использует класс Net_Socket::, использующий API для подключения через TCP/IP сокеты. 

Вопрос - зачем тогда вообще на сервере настраивать smtp, если это может делать сама php?