Внимание Акция! Следите за новостями на нашем сайте, отвечайте на вопросы и получите гарантированную скидку в 5% на все наши услуги. Посмотрите более подробную информацию о этой акции.

Проверить домен:

Вход для клиентов:


Статьи / Немножечко PHP

Почему мой сайт не работает/работает не правильно?

У многих пользователей часто возникают подобные вопросы. Довольно часто разработчики сайтов прибегают к помощи программного комплекса «Денвер» или ему подобных при разработке и тестировании своего сайта. Этот комплекс хорош во всех отношениях, в нем есть практически все что нужно для разработчика, он быстро разворачивается и стабильно работает. Но в то же время этот комплекс работает в окружении ОС Windows которая существенно отличается от ОС Linux использующейся на нашем хостинге. Поэтому за частую у пользователей возникают трудности при переносе своего сайта на хостинг. Происходит это именно из-за кардинальных отличий между операционными системами. Постараемся дать Вам несколько советов которых следует придерживаться при разработке сайтов, чтобы избежать проблем при установке сайта на хостинг-площадке. Первое и, наверное, самое главное отличие это написание путей к файлам. В Win пути выглядят примерно таким образом: C:\\www\mysite\index.php Если использовать такой путь на хостинге, то ничего хорошего из этого не получится т.к. пути в Linux выглядят немного иначе, а именно: /home/username/mysite/index.php Обратите внимание на то, что путь начинается со знака слеша (/). Вы так же можете использовать относительные пути к файлам. Мы не будем вдаваться в детали описания построения относительных путей в рамках этой статьи, документацию об этом можно найти в любом руководстве по Linux.

Давайте разберёмся с тем как же избежать неоднозначности в путях и сложностей при установке сайта на хостинге. Первое правило, никогда не пишите с Ваших скриптах пути вида C:\\www\mysite\index.php такой путь никогда не будет найден на хостинге. Используйте либо относительные пути, либо полные в стиле nix* Кроме этого хорошей практикой является использование констант в которых записывается полный путь к корню сайта. Приведем небольшой пример:

<?php
// зададим полный путь к директории нашего сайта
// и объявим его в виде константы
define("MY_SITE_ROOT"'/home/username/mysite');

// объявим константу в которой будет храниться разделитель директорий
define('DIR_SEP'DIRECTORY_SEPARATOR);

// здесь идет какой-то Ваш код

// Теперь, допустим, нам нужно просмотреть какую-то директорию
// и напечатать ее содержимое.
// Давайте посмотрим как это сделать используя объявленные
// нами константы:

// открываем директорию по адресу /home/username/mysite/userdir/tmp
$d dirMY_SITE_ROOT DIR_SEP 'userdir' DIR_SEP 'tmp');
echo 
"Дескриптор: ".$d->handle."<br>\n";
echo 
"Путь: ".$d->path."<br>\n";
while (
false !== ($entry $d->read())) {
    echo 
$entry."<br>\n";
}
$d->close();
?>

Вот таким простым способом можно избежать ошибок при переносе сайта на хостинг.

Кроме этого обратите внимание на регистр символов в именах файлов и каталогов. В nix* системах в именах файлов регистр имеет значение, например файл c именем MY_FILE.PHP и файл my_file.php – это разные файлы, в отличии от Win.

О других распространенных ошибках мы поговорим в следующей статье.