============================================= ============================================= What would you like to do? 1: Attempt to reinstall this existing certificate 2: Renew & replace the cert (limit ~5 per 7 days) Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel): ===============================> 2 ============================================= ============================================= ============================================= ============================================= You have an existing certificate that contains a portion of the domains you requested (ref: /etc/letsencrypt/renewal/ego-media.ru.conf) It contains these names: ego-media.ru, egomedia.ru, www.ego-media.ru You requested these names for the new certificate: ego-media.ru, www.ego-media.ru, egomedia.ru, www.egomedia.ru. Do you want to expand and replace this existing certificate with the new certificate? (E)xpand/(C)ancel: ======================> E ============================================= ============================================= ============================================= Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. 1: No redirect — Make no further changes[…]

Rsnapshot — утилита для создания копий состояния файловых систем на базе rsync. Она упрощает создание периодических копий с локальной и удаленных машин по ssh. Она использует, по возможности, жесткие связи, что позволяет существенно уменьшить объем необходимого дискового пространства. Устанавливаем rsnapshot: sudo apt install rsnapshot Настройка rsnapshot Создаем директорию в которой будем хранить наши бекапы: sudo mkdir /files_backup Теперь можно перейти к настройке, собственно, rsnapshot: sudo nano /etc/rsnapshot.conf snapshot_root — директория,которую мы только что создали и в которую вы хотите сохранять «снимки». Настройка резервного копирования Rsnapshot | sys.dmitrow.com interval xxx yy — ххх — название интервала (например hourly, daily), yy — количество снимков для каждого. Например: interval alpha 6 interval delta 7 Означает, что мы хотим хранить 6 ежечасных копий и[…]

Для того, чтобы ежедневно (на ваше усмотрение) создавать резервные копии баз MySQL в отдельные файлы мы должны создать на сервере простенький скрипт, например, в корне раздела: sudo nano /backup_mysql.sh После чего нам нужно вставить в него следующее содержимое: В этом содержимом нужно обязательно заменить два параметра: MPASS=’*****’ — заменяем звездочки на ваш пароль root пользователя mysql BAKRSNROOT=/backup_mysql — заменяем /backup_sql на вашу директорию для архивов mysql Создаем указанную выше директорию для бекапов mysql: sudo mkdir /backup_mysql После чего можно для теста запустить скрипт из консоли: sudo sh /backup_mysql.sh После чего можно проверить, создались ли резервные копии: sudo ls -l /backup_mysql В ответ на эту команду в консоли вы должны увидеть список созданных архивов бд вида: DB_NAME-YYYY.MM.DD_HH_MM_SSpm.sql.gz …. DB_NAME2-YYYY.MM.DD_HH_MM_SSpm.sql.gz где DB_NAME[…]

Одним из способов выгрузки ежедневных (и не только) бекапов баз данных с серверов я использую смонтированный по webdav яндекс диск. Просто, надежно, и довольно быстро настраивается. WebDAV (Web Distributed Authoring and Versioning) — это протокол для передачи данных и работы с ними, построенный поверх HTTP 1.1. Здесь следует заметить, что передача может быть как защищенной, так и незащищенной. В самом протоколе защищенность отсутствует, но она может быть добавлена через реализацию аутентификации на веб-сервере и шифрование посредством SSL, следовательно, в таком случае будет использоваться не HTTP, а HTTPS. Изначально DAV разрабатывался для совместного создания и редактирования веб-страниц, но в процессе использования он нашел применение в качестве сетевой распределенной файловой системы, эффективной для работы в высоконагруженной среде и поддерживающей неустойчивое соединение. Таким[…]

Nginx Директива client_max_body_size задаёт максимально допустимый размер тела запроса клиента, указываемый в строке «Content-Length» в заголовке запроса. Если размер больше заданного, то клиенту возвращается ошибка «Request Entity Too Large» (413). Следует иметь в виду, что браузеры не умеют корректно показывать эту ошибку. sudo nano /etc/nginx/nginx.conf Далее находим или вставляем в секцию http следующую строчку: client_max_body_size 100m; После чего нужно будет не забыть перезагрузить nginx: sudo service nginx reload Apache/Php Нужно изменить в php.ini сервера максимально разрешенный объём загружаемых файлов на нужное значение и перезагрузить apache. Это параметры upload_max_filesize и post_max_sizе. sudo nano /etc/php/php7.3/apache2/php.ini Находим и изменяем следующую директиву: upload_max_filesize 100M и эту: post_max_sizе 100M Сохраняем файл и перезагружаем apache: sudo service apache2 reload Nginx: timeout Бывает такое, что загружаешь большой[…]

Обзор расширения OPCache для PHP можно почитать на хабре Включение: sudo phpenmod opcache Выключение: sudo phpdismod opcache Тут можно ознакомиться со скриптами для мониторигна работы OPCache Тут можно почитать ещё одну полезную статью И даже тут А тут ещё одну 🙂

Рассмотрим основные команды, используемые при работе с сервером через SSH. ls Выводит список файлов и папок в текущей директории. ls -la или ll Выводит список файлов и папок в текущей директории, а также их размеры, владельца, права на них и дату последнего изменения. cd Переход в указанную директорию.Вводится так: cd директория mv Перемещение или переименование файла или папки.Вводится так: mv текущее_имя новое_имя rm Удаление файла или папки.Вводится так: rm путь_к_файлу cp Копирование файла или папки в другое место.Вводится так: cp имя_файла куда_скопировать chmod Изменяет права доступа на файл или папку. chown Изменяет владельца файла или папки.Вводится так: chown пользовать:группа файл mkdir Создание директории по указанному пути.Вводится так: mkdir путь mc Запускает файловый менеджер Midnight Commander.

Будем считать, что у вас уже есть сервер с настроенным и работающим сайтом. Доменное имя у него пусть будет phpmyadmin.site. Для начала вам нужно закачать в корневую или любую другую директорию сайта (на ваш выбор) архив phpmyadmin. Скачивать мы будем с официального сайта: https://www.phpmyadmin.net Теперь у нас есть два варианта развития событий: Закачать напрямую через wget ssh консоль сервера; Скачать архив себе на компьютер, а затем уже закачать и распаковать или закачать распакованную версию на ваш сайт через sftp/ftp. Во верхнем правом углу видим кнопку «Download 4.x.x», нажимаем её и скачиваем к себе на компьютер, а потом закачиваем к себе на сайт или же, дабы упростить это действие я закачиваю напрямую на свой сервер: Перехожу в корневую директорию своего сайта:[…]

Есть прекрасный сервис https://tools.pingdom.com/… Когда-нибудь я напишу по нему подробный обзор Тестирование утилитой ab (Apache Benchmark) ab -c 8 -n 10000 http://mail.ru/ 8 потоков, 10000 запросов Результат теста: 53.63 страниц в секунду, на тестирование затрачено 186.452 секунд. loader.io: https://loader.io

Создаем папку для рамдиска (точку монтирования): sudo mkdir /mnt/ramdisk Монтируем: sudo mount -t tmpfs -o rw,size=2G tmpfs /mnt/ramdisk ВНИМАНИЕ: Здесь: size=2G это значит, что рамдиск будет иметь размер 2 Гб. Для создание рамдиска размером 256Мб следует вписать: size=256M После чего проверяем правильность создания рамдиска командой: df -h И видим следующий результат: Filesystem Size Used Avail Use% Mounted onudev 2.0G 0 2.0G 0% /devtmpfs 395M 620K 394M 1% /run/dev/vda2 89G 74.5G 580G 6% /tmpfs 2.0G 0 2.0G 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgrouptmpfs 395M 0 395M 0% /run/user/1000tmpfs 2.0G 0 2.0G 0% /mnt/ramdisk Теперь вы можете использовать рамдиск как вы используете обычные разделы жесткого диска. Вы даже можете редактировать любые файлы прямо из РАМДИСКА. Чтобы[…]

Для того, чтобы измерить скорость записи на диск, можно воспользоваться стандартной утилитой linux — dd. С ее помощью мы создадим на диске файл размером 1 Gb частями по 1Mb. Измеряем скорость записи на диск: sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync После чего мы можем наблюдать результат. На одной из моих виртуальных машин он получился следующий (FirstVDS): 1024+0 records in1024+0 records out1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.19209 s, 336 MB/s На другом результаты оказались совершенно иные (Amazon Micro Instance EC2): 1024+0 records in1024+0 records out1073741824 bytes (1.1 GB, 1.0 GiB) copied, 13.5856 s, 79.0 MB/s На третьем результаты тоже оказались весьма иными (FirstVDS): 1024+0 records in1024+0 records out1073741824 bytes (1.1 GB) copied, 7.75306 s, 138 MB/s Четвёртому результату вы[…]

FLANKER | ФЛАНКЕР БАЙКАЛ

Т.к. большинство моих и клиентских сайтов на wordprss даже в 2019 году работает на сервере под управлением Ubuntu + nginx + apache + php mpm-itk, и многие из них не имеют до сих пор правильной переадресации с www на домен без www (или наоборот), а так же на некоторых сайтах есть по несколько доменов, а некоторые клиентские сайты содержат до 5 дополнительных доменов, которые просто созвучны, а какие-то ещё и имеют кириллическую версию или наоборот, то правильным было бы настроить таки переадресацию и не средствами .httaccess (от apache я планирую избавиться после переноса всех старых сайтов на новый сервер под ubuntu 18.04, который настраиваю на текущий момент). Ну так вот, когда-нибудь я может перепишу и эту статью, а пока: Если[…]

Для начала нам нужно установить certbot: sudo apt install python-certbot-nginx Теперь Certbot готов к использованию, но для того, чтобы он мог настроить SSL для Nginx, нам сперва необходимо проверить кое-какие настройки Nginx. Шаг 2 — Проверка настроек Nginx Certbot должен иметь возможность найти корректный серверный блок в вашей конфигурации Nginx для того, чтобы автоматически конфигурировать SSL. Для этого он будет искать директиву server_name, которая совпадает с доменным именем, для которого вы запросите сертификат. Если вы следовали инструкциям по настройке серверного блока в руководстве по установке Nginx, у вас должен быть серверный блок для вашего домена по адресу /etc/nginx/sites-available/example.com с уже правильно настроенной директивой server_name. Для проверки откройте файл серверного блока в nano или любом другом текстовом редакторе: sudo nano /etc/nginx/sites-available/example.com Найдите строку с server_name.[…]

Маленькая метка-заметка о проблеме переноса сайта на wordpress, которая возникла у меня сегодня. Перенеся на https уже несколько сайтов, я успел набить руку, но сегодня я столкнулся с проблемой при переносе сайта на wordpress. Хоть перед переносом я и почитал пару статей и даже посмотрел пару видеороликов о возможных проблемах, но интернет не готовил меня к тому, что после получения сертификата, установки его на NGINX, изменения путей в админке и базе WP я увижу прекрасную циклическую перезагрузку главной страницы сайта. При этом я не мог зайти и в админку сайта и «почему-то» в исходном коде страницы авторизации wordpress я продолжал видеть кучу путей http://, а не https:// и вели они на стандартные файлы wordpres, т.е. это была не проблема моей[…]

PHP имеет встроенные функции для отправки почтовых сообщений однако обычно такие письма сразу же попадают в спам. Поэтому необходимо использовать API для отправки электронных писем, которые будут попадать именно в папку «Входящие» почтового ящика адресата, а не в спам. Большинство APIплатные, но если вам необходимо с чего-то начать нужен бесплатный сервис. Тут на сцене появляется Mailgun. 10.000 электронных писем бесплатно каждый месяц. Регистрация также бесплатная, данные кредитной карты не требуются. Зарегистрируйтесь на https://mailgun.com/signup и войдите в свой аккаунт. Для использования сервиса вам понадобиться Mailgun API Key а также указать свой домен. Также необходимо будет подвердить право владения доменом. Без этого, количество писем будет ограничено 300 в сутки.Перейдите на https://mailgun.com/cp/my_account и в левом верхнем углу вы увидите свой API Key, строка вида key-3358fhrhs333dsj43e3e5532. Mailgun предлагает собственный класс для отсылки сообщений, однако здесь я бы хотел бы поделиться[…]

Устанавливаем PPTP сервер: sudo apt install pptpd Редактируем файл конфигурации: sudo nano /etc/pptpd.conf В нём находим или исправляем имеющиеся строчки: option /etc/ppp/pptpd-optionsbcrelay eth0 logwtmplocalip 10.1.0.1remoteip 10.1.0.2-255 Редактируем следующий конфиг: sudo nano /etc/ppp/pptpd-options В нём находим или исправляем имеющиеся строчки: name pptpdrefuse-paprefuse-chaprefuse-mschaprequire-mschap-v2require-mppe-128#Google #1:ms-dns 8.8.8.8#CloudFlare #1:ms-dns 1.1.1.1#Yandex #1: ms-dns 77.88.8.8#Google #2: ms-dns 8.8.4.4#CloudFlare #2:ms-dns 1.0.0.1#Yandex #1:ms-dns 77.88.8.1proxyarpnodefaultroutelocknobsdcomp Правим ещё один конфиг авторизации пользователей: sudo nano /etc/ppp/chap-secrets В нём настраиваем авторизацию: client server secret IP addressesusername pptpd password * Снова правим очередной конфиг: sudo nano /etc/ppp/ip-up В нём добавляем в конец: ifconfig $1 mtu 1492 Снова правим: sudo nano /etc/sysctl.conf В нем нужно раскомментировать строчку: net.ipv4.ip_forward=1 sysctl -p Смотрим, через какой интерфейс в интернет смотрит сервер: ifconfig В моём случае eth0 (да и[…]

Иногда, необходимо знать какая версия пакета (программы) находится в репозиториях. Например, вы хотите установить какую-либо программу и нужно для себя узнать: или качать с официального сайта эту программу, или можно спокойно установить из репозиторев Ubuntu. Такая возможность есть. Для начала, найдем нужную программу в репозиториях, например Mozilla Firefox: sudo apt-cache search firefox На этот запрос мы получим огромный перечень пакетов, в которых встречается слово firefox. Т.е. пакет такой есть, а теперь узнаем версию пакета: sudo apt-cache show firefox | grep -i version Система ответит, что у нее есть пакеты firefox версии 65.0.1 и 59.0.2: Version: 65.0.1+build2-0ubuntu0.18.04.1Version: 59.0.2+build1-0ubuntu1 Сравниваем с версией пакета, который находится на официальном сайте и принимаем правильное решение.

Вспомнилась цитата с одно ещё не заблокированного интернет-ресурса: — Скоро и на сковородку придется VPN ставить =/ — Главное, чтобы на унитаз не пришлось, а то пошёл посрать, а унитаз заблокирован. — Придется срать через Нидерланды. SOCKS — сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS — это сокращение от «SOCKet Secure». SOCKS не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и базируется на стандарте TCP/IP — протоколе 4-го уровня. Socks — это о-о-о-очень старый протокол. Вышел в свет аж в 1992-м году. Ясен пень, что в те далёкие времена ни о каком SSL никто ничего не слышал. Поэтому данные, в том числе логины и пароли на подключение к серверу всегда передаются[…]

vnStat: мониторинг трафика сетевых интерфейсов на UBUNTU 18.04 LTS

Висит у меня на Amazon AWS виртуалка, которая используется исключительно под proxy/vpn и захотелось мне посмотреть, а сколько же я использую на ней трафика. Панель управления от Amazon не позволила мне без дополнительных телодвижений посмотреть трафик за расчетный период, после чего я решил прямо на сервак воткнуть утилиту vnStat. vnStat ведёт лог трафика за определённый период и хранит собранную статистику по каждому выбранному администратором интерфейсу, предоставляя доступ к ней в случае необходимости. vnStat, в отличие от снифферов, например таких, как Wireshark, не собирает информацию непосредственно с сетевого интерфейса, а анализирует данные, предоставляемые ядром через файловые системы proc и sys, что даёт возможность использовать эту утилиту даже непривилегированным пользователем. Установка vnStat на сервере с Ubuntu 18.04. LTS vnStat в Ubuntu имеется в стандартных репозиториях,[…]

Пункт 1.0.0.0 (изменение часового пояса сервера) sudo dpkg-reconfigure tzdata В появившемся меню выбираем «Europe» -> «Moscow» Обратите внимание, что крон автоматически не подхватывает новый часовой пояс, его надо перезагрузить: sudo service cron restart Пункт 1.0.0.1 (проверяем настройку кириллицы в консоли) Неплохо бы чтобы в консоли понимались файлы с русскими символами, для этого устанавливаем пакет локалей sudo apt install locales после этого настраиваем его: sudo dpkg-reconfigure localesможно выбрать только одну локализациюen_US.UTF-8 Пункт 1.0.0.2 (изменяем название сервера/hostname) На мой взгляд правильно каждый сервер называть своим понятным и читаемым именем, а не тем, что вам приподносит хостер, например мы можем заменить «мзы-server-548739» на понятное для вас имя «companyname-ru-msk-WEBServer-01»: echo ‘companyname-ru-msk-WEBServer-01 ‘ > /etc/hostname для обновления настроек нужно перезагрузить серверsudo reboot Пункт 1.0.1 (обновляем[…]