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

Почему не запускаются PHP-скрипты на бесплатном хостинге

Почему не запускаются PHP-скрипты на бесплатном хостинге

Итак, ваши действия и неожиданные результаты. Вы скачали готовый скрипт (программу, например, на PHP), возможно, даже протестировали её работу на своём домашнем или рабочем компьютере, результатами остались довольны. И теперь вы загружаете программу с помощью FTP-клиента на свой сайт, ожидая увидеть аналогичный результат, но вместо него видите только ошибки либо уведомление, что страница не найдена.

Многие бесплатные хостинги с поддержкой языков программирования высокого уровня, таких как Perl, PHP, работают под управлением операционной системы FreeBSD (и производных от неё модификациях). Данная операционная система имеет монолитное ядро и бесплатна, в то же время весьма надёжна и стабильна. Однако, при переносе файлов и папок (в том числе и запускаемых на выполнение программ) с операционных систем семейства MS Windows FreeBSD не устанавливает корректно атрибуты файлов.

Лирическое отступление об атрибутах файлов в UNIX-системах

Выставление атрибутов файла 755 в UNIX

Выставление атрибутов файла 755 в UNIX

 

В UNIX-системах в отличие от Windows любая папка и файл имеет 3 права и 3 уровня доступа. Права по отношению к файлу могут быть:

  • R — право на чтение
  • W — право на запись
  • X — право на выполнение

Права по отношению к папке могут быть:

  • R — право на чтение данных из папки
  • W — право на запись данных в папку
  • X — право на вход в папку

В то же время различаются три уровня доступа:

  • U — владелец файла/папки
  • G — член группы владельца
  • O — все остальные пользователи или программы

Атрибуты файла/папки принято записывать одним из двух способов. Первый способ состоит в перечислении установленных или сброшенных атрибутов для каждого из уровней доступа. Если право есть, указывается «r«, «w» и «x«, если права нет, указывается ««.

Пример: Разрешаем пользователю читать и записывать файл, всем остальным только читать: «RW- R— R—«.

Второй способ заключается в приведении трёх битовых триад к записи в восьмеричной системе счисления. Просто запомните, если вы не программист, что:

  • R4, если установлен, и 0, если сброшен
  • W2, если установлен, и 0, если сброшен
  • X1, если установлен, и 0, если сброшен

Триада запишется, как сумма значений «R» + «W» + «X«. Три триады прав для уровней доступа запишутся, как последовательные три числа.

Пример: Разрешаем пользователю читать и записывать файл, всем остальным только читать: «RW- R— R—«. Этот же пример в цифровой записи будет выглядить, как 644.

Так почему же не работает PHP-программа на бесплатном хостинге?

Для корректной работы программы у неё должен быть выставлен признак «X» для всех уровней доступа. Кроме того, у папки, из которой вызывается программа также должны быть установлены разрешения на доступ к содержимому «X«. Кроме того, у владельца должны быть права на чтение и запись, а всем остальным достаточно только права на чтение.

Если вышеизложенные права записать по правилам UNIX-атрибутов, то мы получим «RWX R-X R-X» или 755. Именно эти атрибуты выставляются в приведённой иллюстрации.

Как поменять атрибуты файлов и папок в UNIX?

С помощью любого SSH-клиента вы можете подключиться к файловой системе своего сервера и используя команду chmod выставить нужные атрибуты указанному файлу: «chmod 755 index.php«. Для большинства людей, малознакомых с работой с командной строкой, данный способ покажется, скорее всего, сложным.

Более лёгкий способ. Используйте для подключения к своему серверу любой FTP-клиент, например, FAR Manager (с его помощью и был сделан скриншот) или Total Commander. В таком случае вы будете перемещаться по файлам и папкам в более привычном и удобном интерфейсе.

Выставили атрибуты? Проверьте, заработало?:)

Уделим также внимание изменению атрибутов в Windows. Как ни удивительно, но подобные вопросы часто задаются.

Смена атрибутов на Windows-хостинге

В операционной системе Windows файлы и папки могут иметь следующие основные атрибуты:

  • R — Read only (только чтение)
  • A —Archive (архивный)
  • H — Hidden (скрытый)
  • S —System (системный)

Для справки упомянем о дополнительных свойствах файлов и папок, которые зависят от платформы операционной системы, в обзоре мы их рассматривать не будем. Compressed, Encrypted, Not indexed, Sparse, Temporary, Offline, Reparse point, Virtual. Некоторые атрибуты, как уже писалось, зависят от версии операционной системы, некоторые от файловой системы жёсткого диска (или RAID-массива). Например, атрибут Compressed (сжат) присутствует в файловой системе NTFS, а в файловой системе FAT16/FAT32 его просто нет.

Самый простой способ изменения атрибутов файла на Windows-хостинге. Подключаемся к площадке с помощью FTP-клиента (Far Manager, Total Commander, Windows Commander или аналогичного). Выделяем интересующие файлы/папки (клавиша Insert или клик правой кнопкой мышки). Открываем диалоговое окно изменения атрибутов файла (Ctrl+A или Меню Files — File Attributes). Выставляем/сбрасываем интересующие нас атрибуты и применяем нажатием кнопки Ok/Set.

Изменение атрибутов файлов на Windows-хостинге с помощью командной строки

Подключаемся к файловой системе сервера с помощью клиента. Установка/снятие атрибутов производится с помощью команды ATTRIB. В команде применяются ключи [+R|-R][+A|-A][+H|-H][+S|-S] для установки или снятия соответствующих атрибутов, путь к файлу/папке (допускается маскирование), а также дополнительные ключи: [/S] — применить к папке и вложенным папкам, [/D] — обработка не только файлов, но и папок.

Примеры:

ATTRIB DEFAULT.HTML +R +H — приведёт к установке атрибутов Read only и Hidden файлу Default.html в текущей папке.

ATTRIB *.HTML -R -H -S /S — приведёт к сбросу атрибутов Read only, Hidden, System всем файлам с расширением *.html в текущей папке и во всех вложенных.

Комментарии:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

девятнадцать + тринадцать =

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.