| Общие вопросы |
| Порядок работы с клиентами |
| Веб-сервер Apache |
| Характеристика Apache |
| Настройки Apache |
| Использование .htaccess |
| Язык PHP |
| Характеристика PHP |
| Используемая версия PHP |
| Основные настройки php.ini |
| Базы данных MySQL |
| Характеристика MySQL |
Поддержка
| Общие вопросы |
| Порядок работы с клиентами |
| Веб-сервер Apache |
| Характеристика Apache |
| Настройки Apache |
| Использование .htaccess |
| Язык PHP |
| Характеристика PHP |
| Используемая версия PHP |
| Основные настройки php.ini |
| Базы данных MySQL |
| Характеристика MySQL |
Тарифы
Хостинг сайтов
(PHP, MySQL, SSL, Perl)
| НАЧАЛО | 50 Мб | 49 руб. |
| РАЗВИТИЕ | 200 Мб | 99 руб. |
| ПРОГРЕСС | 500 Мб | 164 руб. |
| ЭВОЛЮЦИЯ | 1500 Мб | 284 руб. |
| ЛИДЕРСТВО | 3000 Мб | 449 руб. |
Хостинг электронной почты
(SMTP, POP3, IMAP, веб-интерфейс)
| ПОЧТА-НАЧАЛО | 100 Мб | 59 руб. |
| ПОЧТА-РАЗВИТИЕ | 200 Мб | 84 руб. |
| ПОЧТА-ПРОГРЕСС | 500 Мб | 134 руб. |
Регистрация доменов
| домен зоны RU | 1 год | 570 руб. |
| домен зоны COM | 1 год | 570 руб. |
| домен зоны ORG | 1 год | 570 руб. |
| домен зоны NET | 1 год | 570 руб. |
В данный момент основной веткой проекта PHP является версия 5. На нашем хостинге поддерживается текущий PHP 5 Stable Release. Некоторые компании все еще используют для хостинга PHP версии 4, объясняя это необходимостью поддерживать код, наработанный для более старой версии, тем паче что для PHP 4 все еще выпускаются новые релизы. Но мы считаем поддержку PHP 4 по умолчанию неоправданной, поскольку уже ведется разработка PHP 6, и сохранение старых вариантов кода сейчас может вызвать лишь дополнительные затруднения в будущем.
К тому же PHP 5 разрабатывался исходя из принципа максимальной обратной совместимости с PHP 4, и обеспечить ее вполне реально с помощью существующих директив конфигурации. Но в любом правиле бывают исключения, поэтому мы всегда готовы рассмотреть вопрос установки PHP 4 персонально для отдельного клиента, если его проект требует непременного использования PHP этой версии и обратную совместимость нельзя обеспечить средствами доступными в PHP 5. Тем более, что каждый сайт у нас обслуживается отдельным экземпляром Apache и установка PHP 4 не создаст никаких проблем и конфликтов с другими сайтами хостинга.
На нашем хостинге используется вариант работы интерпретатора PHP в виде отдельного скомпилированного модуля, подключаемого к Apache. PHP как CGI по умолчанию не устанавливается в первую очередь из соображений производительности. Если у клиента есть насущная необходимость использовать PHP в качестве CGI - мы готовы рассмотреть его обоснованную заявку.
Основной переработке в PHP 5 подверглась объектная модель. Соответственно, если Вы широко использовали методы ООП в своих проектах на PHP 4, то при переходе на PHP 5 могут возникнуть некоторые проблемы. Путей решения два: первый - сделать через панель управления заявку на включение опции zend.ze1_compatibility_mode для Вашего сайта, это действие переведет работу Zend Engine в режим совместимости с PHP 4. Второй способ (наиболее верный) - исправление несовместимых участков исходного кода.
Итак, на что же следует обратить основное внимание при миграции с PHP 4 на PHP 5?
Различие в работе strrpos() и strripos() - эти функции возвращают позицию последнего вхождения подстроки в заданную строку. В PHP 4 для поиска использовался только первый символ задаваемой подстроки. То есть пример strrpos('HOSTING','OCT') в PHP 4 возвращал значение 1, а в PHP 5 возвращает значение false. strripos() действуте точно также, только без учета регистра.
Неправильное использование смещения внутри строки вызывает E_ERROR вместо E_WARNING Например: $stroka = 'string_of_text'; unset($stroka[0]); - то есть код ошибки в результате выдается более жесткий, соответственно те скрипты, которые раньше работали, выдавая E_WARNING, теперь могут стать неработоспособными вследствие E_ERROR.
Функция array_merge() в качестве аргументов принимает только массивы - в PHP 4 можно в качестве аргументов помимо массива задавать переменные типа string или integer. В PHP 5 это вызовет ошибку E_WARNING. В качестве решения проблемы можно порекомендовать использовать приведение типов к array при задании аргументов для array_merge():
$first = 'QWERTY'; $second = array(1 => 'ASDFGH'); $result = array_merge((array)$first, $second);
Переменная сервера PATH_TRANSLATED не определяется неявно в PHP 5 - в отличие от PHP 4, где ей присваивается то же значение, что и переменной сервера SCRIPT_FILENAME (когда PATH_TRANSLATED не определяется явно в Apache). Применительно к нашему хостингу, $_SERVER['SCRIPT_FILENAME'] выдаст полный путь к исполняемому скрипту, а $_SERVER['PATH_TRANSLATED'] выдаст пустое значение.
Объект без свойств больше не считается "пустым". Поясним на примере:
Имена классов/методов возвращаются в том регистре, в котором были объявлены. Это касается результатов, выдаваемых функциями get_class(), get_parent_class() и get_class_methods(), а также магическими константами __CLASS__, __METHOD__ и __FUNCTION__. В PHP 4 все они выдавали результат в нижнем регистре. В PHP 5 регистр символов при выдаче результата такой же, какой использовался при объявлениии функции, класса или метода.
Изменения в работе функции ip2long(). Когда в качестве аргумента функции ip2long() передается неправильный ip-адрес, то результатом работы функции в PHP 5 будет FALSE, а не -1, как это было в PHP 4. Пример:
var_dump(ip2long('194.135.104.6'));
Результат:int(-1031313402)
var_dump(ip2long('194.135.256.6'));
Результат:bool(false)
Изменения в работе функции include() - предположим, в основном файле PHP вы используете функцию include('incfile.php'). В файле incfile.php объявляется некоторая функция testfunction(). Затем, в основном файле PHP команда include('incfile.php') встречается еще раз. То есть incfile.php включается дважды. В PHP 4 все отработало бы нормально, а вот PHP 5 выдает фатальную ошибку, сообщая, что функция testfunction() уже объявлена. В связи с этим рекомендуется использовать include_once() вместо include(). Кроме того, функции, объявленные во включенном файле, могут использоваться и в основном файле, вне зависимости от того, объявлены они до return() или после.
Более подробную информацию о совместимости между PHP 4 в PHP5 читайте в руководстве по PHP на странице Приложение B. Миграция с PHP 4 на PHP 5.