Как просто изменить настройки в php.ini на хостинге: phpinfo, putty?

Hosting master
Как просто изменить настройки в php.ini на хостинге: phpinfo, putty?

Основная проблема, это то, что большинство хостингов не дают напрямую изменить настройки в php.ini на тарифах виртуального (shared) хостинга. Или просто не выкладывают его в доступное и видимое место на сервере, поэтому приходится плясать с бубном и обращаться в тех саппорт за этим.

Некоторые хостинги предлагают простой вариант: создаем .user.ini в корне, вносим нужны значения. Но потом начинает выясняться, что не все, к огромному сожалению, умеет .user.ini. Поэтому, закатав рукава, придется приступать к работе ручками.

Как это начинается?

Проблема начинается тогда, когда тех-саппорт ни «бе» ни «ме», отвечают односложными фразами о том, что сайт сами делали, вот сами и мучайтесь (как Сбербанк, прямо, со своей фразой «где карту оформляли, туда и идите»). Дело в том, что Битрикс при переносе и установке требует, чтобы настройка mbstring.func_overload на сервере была = 2. А поменять ее через .user.ini не получается. И это превращается в проблему. Т.к. залезть еще глубже на сервер без SSH уже нельзя зачастую (за редким исключением).

И на помощь нам приходят:

SSH, phpinfo, putty (программа), буквально, 15 минут времени и каплю терпения.

Описанное ниже НЕ является перманентным решением проблемы. Это лишь на время (до обновления хостинга) решит вашу проблему с установкой. Большинство хостингов вполне нормально воспринимает, например, php.ini или .htaccess в корне сайта и вписанные туда настройки. По крайней мере, до версии php 7.1 (выставляется на сервере) обычно это было всегда возможно. Всегда спрашивайте сначала поддержку, что она скажет!

Пошаговое руководство по настройке php.ini. Пример: Битрикс + GoDaddy сервер на Linux

На самом деле, это значения не имеет, что за провайдер, что за сайт, хоть самописный, проблемы с работой php могут возникнуть на ровном месте. Создаем phpinfo.php файл в корне сайта (к примеру в папке /public_html). Код внутри такой:

phpinfo код внутри

Идем и смотрим, что он нам показывает по адресу: site.ru/phpinfo.php (вместо site.ru — свой сайт).

Поиск с помощью CTRL+F выручит везде. Видим несчастную настройку mbstring.func_overload, которая никак не хочет становиться «2»:

Значение mbstring.func_overload 0

Видим данные строчки, там где-то вначале. Это и есть путь до нашего файла:

Что показывает phpinfo

Подключение к SSH — тут посредством программы Putty

Включаем SSH в панели управления на хостинге. Это обычно включается в панели любого хостинга. Сохраняем адрес, порт, логин, пароль.

Вносим их, выбирая по-умолчанию ssh везде:

Подключение к SSH с помощью Putty

Вписываем логин/пароль. Причем, при вводе пароля не появляются никакие символы и это норма, надо его ввести и нажать Enter:

Вводим логин, пароль в Putty

В Putty пишем следующее и жмем Enter:

nano /opt/alt/php72/etc/php.ini

//это открывает в текстовом редакторе наш конфиг файл

Открывается наш файл конфиг сервера. Теперь мы легко можем вносить туда правки.

Жмем: CTRL+S, ищем mbstring.func_overload.

Находим, правим (исправлением текущей или добавлением mbstring.func_overload = 2), сохраняем (CTRL+O), выходим (CTRL+X). На этом все, по идее.

Если хостинг поддерживает сохранение и использование файлов в корне сайта (public_html).

После захода на сервер через ssh, вводим эту команду и жмем Enter:

cp /opt/alt/php72/etc/php.ini home/username/public_html

//Это копирует файл в папку public_html. Пути на другом хостинге будут другими

Это сохранит php.ini в корень сайта, где мы можем его править чем угодно, вносить нужные изменения. В этом файле находим любым редактором (VScode, Notepad++ и т.д.) нужную строчку "mbstring.func_overload", раскомментируем, если надо, и дописываем "2".

Можно также создать пустой *.ini файл в корне сайта (php.ini, user.ini и т.д. в зависимости от хостинга) и записывать настройки в него. Это также часто срабатывает на многих хостингах. Но для начала почитайте настройки своего хостинга в help, это бывает весьма полезно. 

Послесловие

В мире встречаются разные хостинги. Одни разрешают правку php.ini и кладут ее куда-то в доступное из CPanel место. Другие просто выносят настройки непосредственно в панель управления хостингом (это редкость). Но большинство скроет от вас этот файл, для прямого доступа, и придется ковыряться самому. А тот же Битрикс, без одной этой настройки отказывается отрабатывать restore.php до конца и не восстановит правильно сайт в нужном вам хостинге. Выбирайте правильный хостинг в нашем рейтинге хостингов для сайта! С ними у вас никогда не возникнет таких проблем.

Команды типа ‘nano’ могут не сработать, зависит от того, встроен ли редактор Nano (в основном, это не проблема).

PS. Не надо бояться консоли! И не забывайте, что есть еще файл .htaccess, в котором обычно и записываются все нужные настройки виртуального сервера.