Настройка PHP на хостинге через файл php.ini
Wednesday, 14 Apr 10 в 0:15
Я, конечно, не супер специалист во всяких делах, которые касаются настройки веб серверов, apache, php и всего прочего, поэтому так до сих пор и не завел себе отдельный сервак для проектов. Тем не менее, иногда в работе попадаются ситуации, когда приходится все же влезать в дебри и нюансы настроек – сегодня будет пост об одной из них. Предыстория достаточно тривиальная: занимался разработкой сайта на typo3 и там для работы с изображениями необходимо установить ImageMagick. Обращаюсь, значит к хостеру, они поставили, а оно почему-то все равно не работает. Потом нахожу запрещенную функцию exec, которая как раз для работы ImageMagick нужна – опять обращаюсь к хостеру. А тут еще сложная процедура общения, где я сначала пишу письмо в админке хостера, на него отвечают на почту клиенту и только потом я могу прочитать послание:)
В общем, кое-как 3 или даже 4 дня я помучался, после чего меня направлили на нужную страницу справки, где я нашел всю необходимую информацию. Как оказалось, я мог указывать для хостинга свои настройки PHP через файл php.ini, что, в принципе, было немного непривычно.
Итак, php.ini – это файл настроек и конфигурации PHP. В нем находится ряд директив, которые определяют различное поведение PHP, ну и, следовательно, сайта. Название файла должно быть именно таким, чтобы интерпретатор смог его найти. В интернете пишут, что он сначала ищет файл настроек php.ini в текущем каталоге, если его нет, то переходит в директорию, указанную в переменной окружения PHPRC, и в последнюю очередь проверят пусть, который задан при компиляции PHP. Как-то так, информация интересная, но больше теоретическая:)
Вернемся к реальным примерам. При работе с разными хостерами можно сказать у меня было несколько вариантов и нюансов настройки PHP.
1. Если в качестве админки используется cPanel, то там находим раздел «Конфигурация PHP», где опубликован перечень параметров PHP для хостинга. Иногда там можно поменять версию PHP, если сервер позволяет работать с 4 и 5 версиями.

Возможно, cPanel и предоставляет варианты изменения настроек PHP (кроме версии), но мне пока такое не попадалось. Поэтому чаще всего я прибегал ко второму варианту.
2. Вполне логично для пользователя, который не очень во всем этом разбирается попросить помощи у хостера. Иногда это является единственным возможным решениям. Тут, видимо, многое зависит от конфигурации и принципов работы сервиса у разным компания – одни дают пользователям больше свободы, другие, наоборот, стараются контролировать все настройки.
3. Некоторые хостеры доверяют своим клиентам настолько, что позволяют использовать свои настройки в php.ini на серверах. Как я понимаю, ряд настроек PHP устанавливается по умолчанию, но местами возникают ситуации, когда для тех или иных систем, скриптов может понадобится дополнительная функциональность – как, например, в моем случае с функцией exec или когда речь идет о wordpress можно вспомнить переменную memory_limit.
На одном из хостеров, с которым работаю, нашел инструкцию как же все-таки можно переопределить некоторые настройки php.ini под свои нужды:
В .htaccess добавляем следующие строки:
AddHandler php5-fastcgi .php Action php5-fastcgi /cgi-bin/php5.fcgi
Далее создаем файл в папе /cgi-bin/php5.fcgi
#!/bin/sh
exec /usr/bin/php -c /home/support/php.iniЗдесь /home/support/php.ini путь к вашему php.ini (конечно сам файл php.ini нужно будет там создать, убедитесь в правильности пути). После этого назначаем файлу php5.fcgi права 755 (chmod 755 php5.fcgi). Теперь обработка настроек PHP будет производится с учетом вашего файла php.ini.
К этой инструкции есть 2 уточнения. При создании файла php5.fcgi нужно использовать unix переводы строк т.е. \n. И если возникает 500 ошибка, проверьте лог файл ошибок, где скорее всего найдете в чем проблема.
Кстати, к этому алгоритму один из пользователей добавил комментарий – и очень полезный! Можно все организовать немного проще. Все в том же файле .htaccess добавляем путь к своему php.ini через специальную настройку:
suPHP_ConfigPath /home/accname/php/php.ini
У меня лично работает! Внимание, пусть /home/accname/php/php.ini подставляете свой.
Ну и напоследок 2 настройки php.ini ради которых и пришлось «заморачиваться по полной»:
- disable_functions – директива позволяет вам запрещать вызовы некоторых функций из соображений безопасности. Список указываем через запятую в виде имен функций.
- memory_limit – максимальный объем памяти, которая выделяется для выполнения скрипта.
Ну, и чтобы пост получится полноценным на 100% рассказываю как узнать настройки PHP. Для этого создаете на локальном компьютере файл info.php, где пишете код:
<?php phpinfo(); ?>
Сохраняем и копируем его на FTP хостинга в корневую директорию сайта, после чего запускаем. На экране должны отобразиться все настройки PHP, где и можно найти значение тех или иных функций для исправления в php.ini. Если есть что добавить – пишем в комментариях.
P.S. Постовой. Оптимизация, раскрутка и продвижение сайта в поисковых системах Google, Yandex.
Если вам нужна качественная разработка сайта, то можете обратиться в LTD-студию.
Красивая детская мебель – детская роджер от фабрики “Дива мебель”, доставка по Москве.
Дива мебель

CodeCamp – это всеукраинская ежегодная конференция по тематике современных технологий разработки программного обеспечения, веб программирования, информационной безопасности и разного рода инноваций. Двухдневный ивент, который состоится 17-18 апреля в Киевском политехническом институте должен заинтересовать всех тех, кто так или иначе работает или только собирается посвятить себя сфере информационных технологий. Мероприятие
Сначала небольшая предыстория. Я тут сегодня занимался переносом блога wordpress inside на новый хостинг. «Олимпийский» конкурс закончился, срок заказанного хостинга как раз приближался к своему завершению, уже даже 2 уведомления поприходило относительно продления. В одной из статей про 

