Хостинг в Украине: смена оперативной памяти

До недавнего времени я создавал плагины и сайты на WordPress, арендуя обычный виртуальный хостинг у хостинг провайдеров.

2016 10 08 19 39 24 2016 09 15 FirstVDS F share YandexDisk WORK 2016 09 15 FirstVDS php.ini PhpStorm 201 800x480 Хостинг в Украине: смена оперативной памяти

Хостинг в Украине: небольшое улучшение

Для себя я уже давно выделил специальную панель ISP за ее практичность и комфорт. Так получилось, что я все время работал на ОС Windows, поэтому Linux для меня — просто темный лес.

Веб-ресурсы со временем росли, становились более требовательны, по крайней мере к пространству диска и к оперативной памяти.

Несколько месяцев назад я вдруг решил арендовать VPS Украина на ОС Linux и сам установить туда BILL и ISP для создания, управления всеми услугами. Поколдовав пару часов с SSH консолью и документацией, я запустил собственный первый сервер на ОС CentOS.

На протяжении недели я выяснил: почему mail.ru и gmail.ru не принимают письма с моего собственного хостинга, как устанавливать специальные ограничения на пространство диска, контролировать разнообразные настройки языка php для каждого отдельного виртуального хостинга, а также что BILL, имея в своем функционале возможность приобретения дополнительных параметров, включая важный пункт «Оперативная память», на самом деле не может ее устанавливать.

2016 10 08 22 39 46 hiweb.space 1500 Google Chrome Хостинг в Украине: смена оперативной памяти

И дело здесь не в самом BILL, а в ISP Lite. Так мне ответила техническая поддержка ISP System:

Настройки специального дополнения «Оперативная память» в биллинге влияет на ОЗУ, выделяемую клиенту в ISPmanager. Однако у вас применяется ISPmanager Lite, где нет каких-либо ограничений на ОЗУ.

Специальное ограничение на ОЗУ есть лишь в ISPmanager Business. Печаль. Поторчав пару часов в гугле, ничего бесплатного и путного я не нашел. Есть лишь возможность менять параметр ручками.

  • Изменить файл с названием php.ini в директории пользователя.
  • Открыть возможность пользователю в ISPmanager самому менять параметры PHP. Это по сути меняет тот же файл с названием php.ini и на усмотрение клиента.

2016 10 08 19 41 08 185.146.156.241 1500 Google Chrome 800x500 Хостинг в Украине: смена оперативной памяти

Данные способы просто убивали автоматику приобретения и обслуживания хостинга. Раз у меня теперь собственный сервер, то и есть саму возможность зайти в приложение, перехватить событие и просто переписать в файлах пункт memory_limit на нужное значение.

Альфа-решение

Прежде всего, был очень простой план: найти в базе данных билла установленную информацию для каждого пользователя и затем переписать их в файлах с названием php.ini простым скриптом PHP. Сам PHP запускать при помощи CRON.

Однако вспоминая ситуации, когда для веб-сайта вложенных 128 Мб не хватало, я понимал следующее: такие случаи происходили случайно, они требовали чуть ли не молниеносного решения. Заставить CRON каждые пару минут запускать данный скрипт — очень безграмотное решение задачи, причем с холостой работой 99% времени.

Бета-решение

Начал искать подходящий способ повесить скрипт на событие смены дополнительных услуг виртуального хостинга. Все мучения лишь начинались, поскольку документация на веб-сайте ISPsystem совсем не обновляется. Об этом признаются на своем форуме сами модераторы и администраторы.

Погуглив, я нашел хороший способ создать обработчик событий на языке PHP — это просто волшебно! Ну, как минимум, для меня, поскольку 90% моего рабочего времени уходит за написанием специальных скриптов именно на данном языке.

Была поставлена главная цель, чтобы скрипт выполнялся моментально после изменения дополнительных услуг пользователем в панели BILL и значение ограничения обязательно записывалось в файл с названием php.ini для выбранного виртуального хостинга. Вся моя работа шла методом тыка и проб. В результате был найден вполне рабочий метод менять значения в файле с названием INI во время обновления дополнительных услуг виртуального хостинга в BILLmanager.

В инструкциях этот эвент имеет название «vhost.edit», который возникает во время открытия установок хостинга, а также после нажатия на «ОК». Скрипт работал на событие и хорошо справлялся со своей задачей. Тем не менее, я не разобрался с папками php-bin, и вложенным в них файлом под названием php.ini. А именно: вначале эти папки находились и отлично работали по адресу /var/www/{user}/data/php-bin/, но через какое-то время после моих «издевательств» над ISP, а также сервером в общем, они сменили свое местонахождение на /var/www/php-bin/{user}/.

По упомянутой выше официальной документации от ISP для этого есть специальная опция — DisableSecurePhpBin, однако она не влияла никак. Поэтому я добавил в свой плагин поиск файла с названием php.ini в обоих местах, а также поиск файла /var/www/{user}/data/php-bin/.php.ini.

Что следует сделать

Долго расписывать я не буду, а дам просто уже готовую инструкцию по применению моего мини-плагина для BILLmanager:

Необходимо создать два файла с root-правами и таким содержанием:

/usr/local/mgr5/etc/xml/billmgr_mod_hiweb_vhostram.xml

1 Хостинг в Украине: смена оперативной памяти

/usr/local/mgr5/addon/hiweb_vhostram.php

2 766x800 Хостинг в Украине: смена оперативной памяти

3 710x800 Хостинг в Украине: смена оперативной памяти

4 762x800 Хостинг в Украине: смена оперативной памяти

Добавить к нужному тарифному плану дополнительную функцию «Оперативная память». У меня она была полностью доступна сразу же после установки ISP, потом BILL менеджеров. Осталось ее лишь включить в тарифный план, указав несколько данных:

2016 10 08 21 07 29 hiweb.space 1500 Google Chrome 800x370 Хостинг в Украине: смена оперативной памяти

2016 10 08 21 09 06 hiweb.space 1500 Google Chrome 800x370 Хостинг в Украине: смена оперативной памяти

Кроме того, надо перевести WWW-домен → PHP в режим «CGI»:

2016 10 08 21 02 56 hiweb.space 1500 Google Chrome 701x800 Хостинг в Украине: смена оперативной памяти

Попробовать докупить ОЗУ для виртуального хостинга в BILL manager и затем нажать «ОК»:

2016 10 08 19 30 51 hiweb.space 1500 Google Chrome 800x562 Хостинг в Украине: смена оперативной памяти

На всякий случай, файл PHP для полной проверки работы смены ограничения ОЗУ на виртуальном хостинге. Создайте его в корне необходимого хоста, рядом с файлом с названием index.php. После этого вызвать его для полноценной проверки вашдомен.ru/имя файла.php:

5 672x800 Хостинг в Украине: смена оперативной памяти

6 Хостинг в Украине: смена оперативной памяти

Вывод

Актуальная документация позволит сэкономить множество времени! Этот плагин — мой первый опыт написания таких дополнений и не факт, что он будет работать корректно, поскольку я еще только разбираюсь в хитросплетениях Linux и серверного программного обеспечения. Полагаю, что если я выберу хостинг в Украине, то со временем я доработаю его, в случае если будет смысл.


Поделитесь с друзьями



Оставить комментарий