Что такое PHP?
PHP - язык написания сценариев, внедренных в HTML. Задача языка
состоит в том, чтобы дать возможность web-разработчикам легко и
быстро создавать динамично изменяемые html-страницы. Главным
образом, область применения PHP сфокусирована на написание
скриптов, работающих на стороне сервера - для обработки данных
форм, генерирования динамических страниц или отсылки и приема
cookies.
Какие инструменты нужны для работы с PHP?
Для создания и тестирования PHP-скриптов необходимы:
-
Любой текстовый редактор, позволяющий сохранять файлы в
ASCII-коде. Примером такого редактора является обычный Блокнот,
имеющийся в каждой Windows.
-
Парсер PHP. Для отладки на локальной машине может быть
использована версия PHP для Windows.
-
FTP-клиент для загрузки файлов на сервер. Лучше всего для этого
подходит FAR Manager, позволяющий, кроме всего прочего,
устанавливать права доступа к файлам.
Расширение файлов
Инструкции языка PHP обрабатываются в файлах с расширением php,
php3 и php4.
Версии PHP, используемые на наших серверах
Установлен ли на хостинге Zend Optimizer?
Zend Optimizer установлен на наших серверах и работает для
версий PHP 4.x только в режиме CGI, так как при установке
данного продукта пришлось отказаться от модулей xslt и imagic,
что неприемлимо для общей работы PHP.
Как сделать, чтобы мои php-скрипты работали с ZendOptimizer?
Необходимо в файл .htaccess вставить следующие строки:
AddType zend-script .php
Action zend-script /cgi-php/php4
Возможно ли сделать одновременную обработку как обычных
php-скриптов, так и кодированных?
Да, конечно, такая ситуация возможна. Для этого необходимо
кодированные php-скрипты переименовать в *.phpz и вставить в
.htaccess следующие строки:
AddType zend-script .phpz
Action zend-script /cgi-php/php4
В таком случае *.php будут восприниматься как обычные
php-скрипты и обрабатываться модулем php, а *.phpz будут
восприниматься как закодированные php-скрипты и обрабатываться в
режиме CGI с помощью Zend Optimizer.
Установлена ли на серверах 5-я версия PHP?
Да, установлена. По умолчанию для *.php скриптов запускается PHP
4-й версии. Для того, чтобы Ваши скрипты обрабатывались PHP 5
необходимо переименовать их в *.php5.
Не хочется ничего переименовывать, хочется, чтобы все файлы с
расширением *.php обрабатывались PHP версии 5 по умолчанию.
Нет ничего проще. Просто поместите следующие строки в файл
.htaccess:
AddType php5-script .php
Action php5-script /cgi-php/php5
А что-то у меня не работают функции http-авторизации.
Да, действительно, при использовании Zend Optimizer'a или PHP
версии 5 обработка идет в режиме CGI. В этом режиме по умолчанию
не работают функции http-авторизации.
А как все-таки заставить работать http-авторизацию при работе с
PHP в режиме CGI?
Для тех, кому все же нужна http авторизация в режиме cgi, мы
можем предложить решение.
Для этого необходимо в файле .htaccess , лежащим в директории
доступ к которой нужно закрыть, прописать:
AddType php5-script .php
Action php5-script /cgi-php/php5
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
После чего создать файл, который будет обрабатывать введенные
данные, например так:
<?php
$a = base64_decode( substr($_SERVER["REDIRECT_REMOTE_USER"],6))
;
if ((strlen($a) == 0) || ( strcasecmp($a, ":" ) == 0 ))
{
header('WWW-Authenticate: Basic realm="Private"');
header('HTTP/1.0 401 Unauthorized');
}
else
{
list($name, $password) = explode(':', $a);
$_SERVER['PHP_AUTH_USER'] = $name;
$_SERVER['PHP_AUTH_PW'] = $password;
}
?>
После этих действий переменные $_SERVER['PHP_AUTH_USER'] и
$_SERVER['PHP_AUTH_PW'] становятся доступными, как если бы
авторизация проходила в обычном режиме.
Можно ли запускать PHP со своим php.ini файлом?
Если PHP работает в режиме CGI то возможно использовать
собственный файл настроек php.ini, для этого необходимо
прописать в .htaccess, который лежит в public_html, следующее:
AddType zend-script .php
Action zend-script /cgi-bin/php4
В каталоге cgi-bin создаем файл php4 с таким содержимым:
#!/usr/local/bin/bash
export PHPRC=/home/user
/home/http/cgi-php/php4
После чего ставим ему права на исполнение командой: chmod +x
php4
После этого нужно не забыть еще создать .htaccess в cgi-bin
директории сайта со строками:
CharsetRecodeMultipartForms off
CharsetDisable on
Есть альтернативный, более красивый вариант файла /cgi-bin/php4
всего из одной строки:
#!/home/http/cgi-php/php4 -c/home/user/php.ini
Путь /home/user/php.ini замените на путь до Вашего файла
настроек php (с именем файла).
Между "-c" и указанием пути не должно быть пробела.
Пока этот вариант работает не на всех серверах. Пожалуйста,
уточняйте подробности у службы поддержки.