Информационный портал

Информационно-новостной портал

Новости рекламы и маркетинга. Новости Интернета.
Море полезной информации на сайте RetailDepartment.ru
Поделиться ссылкой с друзьями

Подготовка PHP для запуска сервера

Twitter
Нравится
RedLine


лого php

php

Подготовка PHP для запуска сервера

22.01.2010
сайт автора: http://webi.ru
публикация данной статьи разрешена только со ссылкой на сайт автора статьи

В этой статье расскажу о самых основных настройках 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 необходимые для запуска нового сервера. Все остальные настройки можно оставить по умолчанию, для запуска сервера этого хватит.
Но пока еще сервер не готов к запуску, читайте следующие статьи.

 


Комментарии Подготовка 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 Алексей
Огромное, человеческое спасибо за материал.

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

Источник: http://webi.ru/webi_articles/php_ini_edit.html

Добавить комментарий

Правила добавления комментариев


Защитный код
Обновить

Download SocComments v1.3