php
Подготовка PHP для запуска сервера22.01.2010 сайт автора: http://webi.ru
публикация данной статьи разрешена только со ссылкой на сайт автора статьи
Данная статья входит в цикл статей, посвященных установке веб сервера на windows.
|
В этой статье расскажу о самых основных настройках 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.ini
expose_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 =C:/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 необходимые для запуска нового сервера. Все остальные настройки можно оставить по умолчанию, для запуска сервера этого хватит.
Но пока еще сервер не готов к запуску, читайте следующие статьи.
Комментарии
RSS комментарии
01.06.2010 Благодарю
Огромное спасибо за (" open_basedir =C:/xampp/ ") и "( date.timezone = "Europe/Moscow" )"
22.10.2010 Спасибо
date.timezone = "Europe/Moscow"
10.01.2011 serdjuzz
здравствуйте ,
XAMPP пишет что PHP - activated?
но тем не менее файл hello.php (с телом:
<html>
<head>
<title>Тестируем PHP</title>
</head>
<body>
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
<?php phpinfo(); ?>
</body>
</html>)
не работает ?
в чем причина ? (запускаю из C:\Xampp)
спасибо
10.01.2011 админ
serdjuzz, я надеюсь вы запускаете эту страницу через http://localhost ?
10.01.2011 serdjuzz
пробуем теперь так:...
http://localhost/xampp/customveda/hello.php - путь к файлу в браузере
пишет:
Object not found!
The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
If you think this is a server error, please contact the webmaster.
Error 404
localhost
10.01.2011 20:59:40
Apache
10.01.2011 админ
serdjuzz, в предыдущем сообщении вы писали, что запускаете скрипт из C:\Xampp
Вы прямо в эту папку и положили скрипт?
C:/Xampp/customveda/hello.php
Если да, то работать не будет, файлы нужно класть в c:\xampp\htdocs\
23.01.2011 Евгений
А где запускать команду
<? print_r(DateTimeZone::listIdentifiers()); ?>
23.01.2011 админ
Евгений, ну это вопрос прямо на засыпку.
Это php код.
Вставляете его в текстовый файл, даете файлу PHP имя, например 1.php, грузите его на свой сервер и запускаете его через браузер.
А чтобы лучше было видно все зоны, лучше вывести код в тегах <pre>.
Вот так
<pre>
<? print_r(DateTimeZone::listIdentifiers()); ?>
</pre>
Можете посмотреть, что на моем сервер показывает этот код
http://webi.ru/1.php
01.02.2011 Гошка
Спасибо
27.07.2011 Дмитрий
Спаисбо большое)
09.06.2012 Николай
У меня с date.timezone проблеми, ошибка не исчезает(((((
14.06.2012 Екатерина
Здравствуйте! Вышла ошибка "404 The requested URL /phpinfo.php was not found on this server." Текстовый файл phpinfo.php проверила находится C:/Apache2.2/htdocs Что еще не учла?
27.12.2012 Алексей
Огромное, человеческое спасибо за материал.
03.08.2014 Stepan_Efimov
Автору большое спасибо, очень хорошая статься.
Добавить свой комментарий
|