Поддерживаемые на нашем хостинге модули PHP

[PHP Modules]

  • pdo_sqlite
  • bcmath
  • calendar
  • cgi
  • ctype
  • curl
  • date
  • dbase
  • dom
  • exif
  • filter
  • ftp
  • gd
  • gettext
  • hash
  • iconv
  • imap
  • json
  • libxml
  • mbstring
  • mcrypt
  • mhash
  • mysql
  • mysqli
  • openssl
  • pcre
  • PDO
  • pdo_mysql
  • pdo_sqlite
  • posix
  • pspell
  • Reflection
  • session
  • SimpleXML
  • soap
  • sockets
  • SPL
  • SQLite
  • standard
  • tokenizer
  • wddx
  • xml
  • xmlreader
  • xmlwriter
  • xsl
  • Zend Optimizer
  • zip
  • zlib
[Zend Modules]

  • Zend Extension Manager
  • Zend Optimizer

PHP.INI директивы

Самостоятельная установка PHP модулей

Часто задаваемые вопросы клиентов и примеры PHP-скриптов

PHP - это интерпретируемый язык программирования для создания активных web-страниц. PHP-код легко встраивается в код HTML и обрабатывается на стороне сервера; последний, в свою очередь, отдает клиенту контент в виде HTML. PHP обладает мощными возможностями для работы с СУБД, в частности, MySQL.

На нашем виртуальном хостинге PHP-скрипты обрабатываются внешним PHP-CGI обработчиком, а не аналогичным модулем Web-сервера Apache.

Часто задаваемые вопросы клиентов и примеры PHP-скриптов

Какие версии PHP поддерживаются на сервере?


В настоящий момент 4.3.9, 4.4.х, 5.2.х и 5.3.х. Переключить версию для основного домена вы можете через cPanel.
Если для дополнительного домена Вам требуется другая версия PHP, то Вы можете указать её вручную, создав в директории домена файл .htaccess с содержимым:

Если Вам требуется PHP 4.4: AddType application/x-httpd-php44 .php
Если Вам требуется PHP 5.2: AddType application/x-httpd-php5 .php
Если Вам требуется PHP 5.3.:AddType application/x-httpd-php53 .php


На тарифном плане "Персональный" доступен только PHP 5.2.


Как посмотреть текущие настройки PHP на хостинге?


Для этого существует специальная функция phpinfo(). Создайте в директории ~/public_html файл, например, info.php со следующим содержимым:

<?php
phpinfo();
?>

после этого обратитесь непосредственно к данному файлу через web, например, http://example.org/info.php.


Версия PHP была изменена через панель управления, однако отображается по-прежнему старая. В чем дело?


cPanel не умеет определять версию php. То, что версия была изменена, можно проверить, используя функцию phpinfo().


Для чего нужен файл php.ini? Где лежит глобальный (основной) php.ini? Где размещать свой php.ini?


Php.ini - это конфигурационный файл, в котором содержатся все настройки PHP. Основной php.ini сервера можно посмотреть с помощью SSH, находится он в /usr/local/lib и там, в соответствии с версией PHP, нужно смотреть файл:
* Для PHP 4.3.9 - php.ini
* Для PHP 4.4 - php4.ini
* Для PHP 5 - php5.ini

Ваш собственный php.ini нужно размещать в вашей домашней директории на одном уровне с папкой public_html.

Обратите внимание на то, что указывать значения параметров выше, чем положено по вашему тарифному плану, бессмысленно, так как данные настройки не вступят в силу. Это замечание касается клиентов виртуального хостинга.


Как можно отключить Register Globals?

Для этого нужно в домашней директории создать файл php.ini и прописать в нем register_globals = Off;


Куда пишутся ошибки PHP? Как посмотреть более подробно из-за чего ошибка?


Ошибки логируются в файл error_log, который создается на том же уровне, что и PHP-скрипт, для которого вы хотите посмотреть сообщения об ошибках. Для более содержательного сообщения об ошибке в PHP-скрипт нужно добавить строчку

error_reporting(E_ALL);
Внимание: Обязательно убирайте эти строчки после отладки скриптов, так как сообщение об ошибке может содержать приватную информацию.


Пытаюсь закачать через некую форму на PHP файл размером 10мб, выдается ошибка.


По умолчанию можно закачивать файлы не более 2мб (upload_max_filesize = 2M; значение из главного php.ini). Поднять этот параметр можно в локальном php.ini (прописав ту же директиву, например, upload_max_filesize = 8M), но не выше установленного вашим тарифным планом лимита.


При попытке открыть станицы, закодированные с помощью Zend Guard, выдается ошибка:

 Fatal error: Incompatible file format: The encoded file has format ID 
2006022801, whereas the Optimizer can read up to 2004102401 in 
/home/shablon1/public_html/index.php on line 0

Ошибка означает, что файлы, которые вы хотите распаковать, закодированы более новой версией Zend.
У нас установлены одновременно Zend Optimizer 2.6.0 и 3.2.2. Версия 2.6.0 используется для PHP 4, 3.2.2 - для PHP 5. Если вам нужна поддержка файлов, упакованных современными версиями Zend Guard, то вам следует переключить свой сайт на использование PHP 5 (это можно сделать в cPanel).


Не работает функция "virtual()" в PHP-скриптах.


Так как у нас стоит модифицированная версия PHP, которая работает как CGI, то использование данной функции невозможно. В качестве альтернативы вы можете воспользоваться функциями include(); или require(); или создать функцию, которая делает то же самое, что и virtual(), например, так:

function safe_virtual($filename)
{
$curDir = getcwd();
virtual($filename);
chdir($curDir);
};

Как убрать PHPSESSID?


Добавьте в .htaccess директивы:

php_value session.use_only_cookies 1
php_value session.use_trans_sid 0

После смены версии PHP в панели управления на более высокую команда php -v возвращает все равно 4.3.9.


Так вы смотрите версию /usr/local/bin/php, она всегда 4.3.9 (по умолчанию); когда версия меняется, исполняются:

/usr/local/apache/bin/php-cgi.4.4
/usr/local/apache/bin/php-cgi.4.4.0
/usr/local/apache/bin/php-cgi.5

И если вам нужно оперировать с ними через командную строку, нужно писать полный путь.


Какую php-функцию в скриптах необходимо использовать для отправки писем?


Для отправки писем через скрипт необходимо использовать функцию mail(). fsockopen() НЕ будет работать, так как работа с сокетами отключена на серверах в целях безопасности.

Обратите внимание на то, что особенность отправки почты с панелей такова, что письма можно отправлять не чаще, чем 1 раз в 0,3с. Если отправлять письма скриптом, то они отправляются сразу пачкой и не проходят в этот интервал. Легче всего этого избежать, добавив в скрипты sleep(1); после mail(), и тогда письма будут отправляться нормально.


Есть ли Ioncube loader на хостинге? Если нет, то как подключить?


Для подключения Ioncube loader на хостинге вам необходимо скачать версию .so файла с официального сайта в папку на хостинге, после чего вам необходимо создать php.ini файл в домашней директории хостинга.
Для подключения модуля вам необходимо прописать следующую строку в созданном файле php.ini: zend_extension = /public_html/путь/до/модуля/ioncube_loader_.so


PHP.INI

php.ini - это текстовый файл, в котором содержатся все настройки РНР (директивы), конфигурации модулей расширения и переменные среды. Через файл конфигурации можно настроить РНР на максимальное быстродействие, отключить потенциально опасные функции и модули. По умолчанию, настройки берутся из файла /usr/local/lib (там по версиям php.ini, php4.ini, php5.ini). Но пользователь может изменить некоторые настройки для себя, создав в своей домашней директории файл php.ini и прописав в нём необходимые директивы.

Наиболее часто используемые директивы php.ini:

Вести или не вести лог ошибок php:

log_errors = 1/0*

Включает/выключает использование magic_quotes для операций GPC (Get/Post/Cookie). Если включено, то все апострофы, кавычки и обратный слэш автоматически экранируются:

magic_quotes_gpc = 1/0

Максимальный объём памяти, который разрешается использовать скрипту. X - нужное число мегабайт. Естественно, значение не может превышать установленный тарифным планом лимит памяти (но по умолчанию на сервере стоит не самое большое возможное значение):

memory_limit = XM**

Устанавливает максимальный допустимый размер POST-данных. Это свойство также влияет на закачиваемые файлы. Чтобы закачивать большие файлы, это значение должно быть выше upload_max_filesize. Если в конфигурационном скрипте включено ограничение памяти, memory_limit также будет влиять на закачивание файлов (переменная memory_limit должна быть больше, чем post_max_size):

post_max_size = XM

Разрешение/запрет загрузки файлов на сервер:

file_uploads = On/Off 

Директива устанавливает временную директорию для загружаемых файлов:

upload_tmp_dir = <путь до директории>

Максимальный размер закачиваемого файла:

upload_max_filesize = XM

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных. Начиная с версии PHP 4.2.0, в целях безопасности, значением по умолчанию для этой директивы является off:

register_globals = 1/0

Включает/отключает защищенный режим в PHP:

safe_mode = 1/0

Использовать куки для хранения id сессии на стороне клиента:

session.use_cookies = 1/0

Включить/отключить отображение идентификатора сессии в адресной строке:

session.use_trans_sid = 1/0

* 0 - опция отключена, 1 - опция включена. Можно также использовать текстовые значения: Off и On, соответственно.
**Доступные опции: K (для Килобайтов), M (для Мегабайтов) и G (для Гигабайтов; доступна начиная с PHP 5.1.0); они чувствительны к регистру.
Всё остальное считается байтами. 1M равно одному Мегабайту или 1048576 байтам. 1K равно одному Килобайту или 1024 байтам.

Самостоятельная установка PHP модулей:

Мы стараемся регулярно обновлять ПО на наших серверах. Может случиться так, что вам понадобится какой-либо "нестандартный" модуль PHP, которого нет на нашем сервере. Вы можете установить его самостоятельно, используя наши рекомендации.

Установка модулей

Допустим, модуль называется php-templates.
Сначала создадим папку для установки:

mkdir ~/php

Установка через PECL


Достаточно ввести следующую команду:

pecl install --installroot=~/php php-templates

Однако, этот способ не всегда работает, и в таких случаях приходится устанавливать "вручную":

Установка "вручную"


# Скачиваем архив с модулем и распаковываем

curl -LO http://downloads.sourceforge.net/php-templates/php_templates-1.7.2.tar.gz
pax -rzf php_templates-1.7.2.tar.gz

# Заходим в распакованную папку и читаем инструкции по установке:

cd templates
cat INSTALL

# Если нет других указаний, устанавливаем модуль стандартным для PHP образом:

phpize
./configure --enable-templates=shared
make

Получаем скомпилированный модуль:

[testcom0@cp9 ~/templates]$ ls -l ./modules/templates.so
-rwxrwxr-x  1 testcom0  virthost  82849 Jul 24 12:50 ./modules/templates.so

Этот модуль копируем в созданную ранее папку:

cp ./modules/templates.so ~/php/

Возможные проблемы

Предварительное замечание: после любых изменений в ~/.profile необходимо перелогиниваться (su -l).


Не найден autoconf


Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.

Решается определением переменной в файле ~/.profile:

PHP_AUTOCONF=autoconf259; export PHP_AUTOCONF
PHP_AUTOHEADER=autoheader259; export PHP_AUTOHEADER

Не подходит версия PHP


Нужно выставить использование нужной версии, добавив одну из трёх указанных ниже строчек в
~/.profile:
Для использования PHP 4.3:

PHP_PEAR_PHP_BIN=/usr/local/apache/bin/php-cgi
Для использования PHP 4.4:
PHP_PEAR_PHP_BIN=/usr/local/apache/bin/php-cgi.4.4
Для использования PHP 5.x:
PHP_PEAR_PHP_BIN=/usr/local/apache/bin/php-cgi.5
Затем (для любой версии PHP) надо добавить в ~/.profile строчку:
export PHP_PEAR_PHP_BIN

Вы ознакомились с наиболее часто задаваемыми вопросами, но не нашли нужного ответа? Или информации на сайте оказалось недостаточно?

Тогда напишите нам!

*Ваш e-mail:

 Номер вашего Лицевого счета:

 Категория вопроса:

*Вопрос:

*Введите отображаемый код: