Особенности работы PHP
- Модуль Apache или внешнее приложение?
- Как изменить настройки?
- Как работает PHP?
- PHP и кодировки
- Версии PHP
- Обращение к переменным окружения (environment)
- HTTP аутентификация через PHP
- Запуск PHP-скриптов из cron'а
1. Модуль Apache или внешнее приложение?
PHP у нас работает как CGI приложение, а НЕ как модуль Apache.
2. Как изменить настройки?
Глобальные настройки, описанные в системном файле php.ini
, можно изменить в файле
.user.ini
, расположенном в текущем каталоге. Все описанные в нём настройки
распространяются на скрипты, находящиеся в текущем каталоге и его подкаталогах. Например,
если для работы скриптов нужно разрешить short_open_tag, то в файле ~/htdocs/.user.ini
необходимо прописать:
short_open_tag = On
3. Как работает PHP?
Интерпретатор PHP находится в Вашем домашнем каталоге на сервере в подкаталоге cgi-bin/
. Для того, чтобы документы с расширением .php
воспринимались вебсервером, как PHP документы, и соответсвенно запускались через PHP интерпретатор, необходимо, чтобы в файле .htaccess для этого каталога были строки:
Action php-script /cgi-bin/php
AddHandler php-script .php
Вместо .php
может стоять список любых других расширений (разделитель - пробел).
4. PHP и кодировки
Кодировка PHP документов устанавливается в файле .user.ini
, расположенном в текущем каталоге:
default_charset = "windows-1251"
Если параметр default_charset не определён в файле .user.ini
или php.ini
, то кодировка
PHP документов определяется директивами AddDefaultCharset
, AddCharset
и т. п. в файле
.htaccess
, находящемся в подкаталоге cgi-bin/
(другими словами, в том каталоге,
где находится интерпретатор, а не документы).
5. Версии PHP
Поскольку для каждого виртуального сервера используется отдельная копия интерпретатора PHP, то они могут быть разные у разных пользователей. Пользователь, обладающий соответсвующими техническими навыками, сам может скомпилировать в своем домашнем каталоге PHP той версии и с теми параметрами, какими пожелает.
Узнать версию своего PHP и некоторые его параметры можно выполнением простого скрипта:
<?php
phpinfo();
?>
6. Обращение к переменным окружения (environment)
Для доступа к переменным окружения (environment) не создаются автоматически одноименные переменные PHP. Для доступа к ним нужно использовать функцию getenv
. Примеры использования смотрите на www.php.net/manual/en/function.getenv.php. Там есть пример получения IP адреса клиента, который будет правильно работать и у нас.
7. HTTP аутентификация через PHP
HTTP аутентификацию можно использовать только в PHP, работающем, как модуль Apache, поэтому у нас её использовать нельзя.
8. Запуск PHP-скриптов из cron'а
Для запуска PHP-скрипта из cron'а рекомендуется выполнить соответствующий HTTP запрос. Это можно сделать, например, командой:
lynx -source http://domain.colocall.com/path/script.php >/dev/null
Не рекомендуется выполнять PHP-скрипты непосредственно через интерпретатор PHP, т. к. настройки, прописанные в файле .user.ini
, работать не будут.