В этой статье расскажу о самых основных настройках php, которые наиболее важны.
Это минимум, который необходим для запуска нового сервера.
Все настройки делаются с помощью файла
php.iniНаходится он может где угодно, если вы не знаете где находится
php.ini, выполните
phpinfo(); в скрипте и найдите параметр
Loaded Configuration File, тут и будет путь до конфига
php.
Открывайте этот файл, будем его править.
Не приятный заголовок, который выдает сервер при работе PHP скрипта.
X-Powered-By:Этот заголовок появляется когда информация выводится с помощью
PHP скрипта.
Если запросить статический
html документ, то этого заголовка не будет, но если информацию на страницу выведет
PHP скрипт, то в этом заголовке будет подобное
X-Powered-By: PHP/5.2.5То есть заголовок объясняет всем, что страница создана с помощью
PHP и показывает версию
PHP.
Даже если вы используете
mod rewrite и обращаетесь к страницам как к статическим документам, то этот заголовок все равно расскажет всем, что страница создана с помощью
PHP.
Лучше убрать этот заголовок. Полезно, если вы хотите замаскировать свой сайт под полностью статический, ну и хулиганы лишний раз не узнают версию
PHP.
Находим в
php.iniexpose_php = onменяем значение на
offКороткие теги php.
Классически начало php скрипта обозначается
<?php, но можно для упрощения начинать скрипт просто <?, вот этот вариант и называется короткий тег.
По умолчанию обычно короткие теги отключены в php, но большая часть программистов используют короткие теги в своих скриптах, поэтому лучше включить короткие теги, чтобы не было проблем.
Для включения находим
short_open_tag = offи меняем значение на
onЕсли
short_open_tag не нашли, добавьте сами.
Запрет на выход за пределы директории.
Если php запущен под windows, то по умолчанию из любого php скрипта можно получить доступ к любому файлу на компьютере.
Стандартными средствами windows нельзя ограничить доступ как в unix. По этой причине, очень давно я случайно очистил весь свой диск С:/ , естественно потеряв всю систему.
Можно ограничить доступ php скриптов к директориям и файлам через php.ini.
Находите параметр
open_basedir =Возможно он будет закрыт комментарием (;), тогда удалите комментарий и пропишите путь, выше которого php скрипты не смогут получить доступ.
Например
open_basedir =/xampp/Если вы устанавливали сервер с помощью xampp, то весь сервер у вас находится в одной папке, поэтому можно разрешить доступ ко всей папке сервера, либо можете ограничить только папкой, в которой лежат скрипты.
Слэш в конце обязателен, если его не поставить (
C:/xampp), то в данном примере доступ будет разрешен и к папке xampp и к папке xamppaswe, то есть к любой папке которая начинается на xampp.
Этот параметр можно будет менять в виртуальных хостах, назначая для каждого сайта свой каталог доступа.
Подробнее об этом читайте основные настройки
apache.
Глобальные переменные
register globalsОбязательно проверьте, чтобы
register_globals = Off
обязательно был
off, никогда не ставьте on, за исключением тех случаев, когда этого требуют надежные скрипты.
Этот параметр отключает копирование глобальных переменных (
POST,
GET,
SESSION и т.д.) в обычные.
То есть, если есть переменная
$_GET['webi'], то при включенном параметре автоматически создается еще и обычная переменная
$webi, содержащая данные из
$_GET['webi'].
Но некоторые считают, что при отключении register globals глобальные переменные совсем отключаются и они не смогут получить доступ к
POST,
GET и т.д.
Поэтому напоминаю, что отключается только копирование глобальных переменных в обычные.
Время.
С помощью функций даты и времени проверьте какое время возвращает
PHP.
Скорее всего оно будет не вашей временной зоны, так как по умолчанию время в
PHP устанавливается в
UTC(не
GMT).
Если время на сервере для вас имеет значение, тогда в
php.ini находите и редактируйте параметр
date.timezoneВ этом параметре укажите необходимую вам временную зону, например у меня стоит зона Новосибирская
date.timezone = "Asia/Novosibirsk"
Для Москвы это выглядит так
date.timezone = "Europe/Moscow"
Узнать как правильно пишется ваша временная зона можно так
[? print_r(DateTimeZone::listIdentifiers()); ?]
Это выдаст полный список временных зон.
Это были наиболее важные моменты в настройке php необходимые для запуска нового сервера. Все остальные настройки можно оставить по умолчанию, для запуска сервера этого хватит.