Добро Пожаловать  Ru.Board
 

Навигация
  • Главная
  • Форум
  • Темы
  • Топ лист
  • Файловый архив

  • Реклама





    Проголосуй!
    Статьи на какие темы вы бы желали видеть на нашем сайте?

    Системное администрирование Windows
    Администрирование *nix систем
    Обзоры пользовательского программного обеспечения
    Вебмастеринг: тонкости сайтостроения
    Вебмастеринг: юзабилити сайтов
    Вебпрограмминг: полезные решения
    Linux-системы: вопросы по работе
    Вопросы по аппаратной части компьютеров
    Обзоры программ для администраторов
    Компьютерная безопасность (для пользователей)
    Компьютерная безопасность (для администраторов)
    Другое


    Результаты
    Другие Опросы

    голосов: 16198

    Избранное
  • Установка Php-Nuke
  • Установка IkonBoard на локалхосте



    Форум по движку IkonBoard V.2

    Файловый архив для вебмастеров: полезные скрипты

    Форум по операционным системам: Linux, Windows, Mac

  • Поиск по сайту




    IkonBoard: Основные причины ошибки 500 в IkonBoard V. 2
    Опубликовал lynx 17.07.2003 03:25

    IkonBoard v2.1.*
    Error 500 - внутренняя ошибка сервера. Ошибка 500 означает, что сервер столкнулся с обстоятельствами, которые не дают ему выполнить запрос клиента. Обстоятельства эти могут быть очень разные.
    В данной статье мы рассмотрим те из них, с которыми наиболее часто встречаются администраторы IkonBoard V.2.

    Итак,

    Причинами ошибки 500 могут быть следующие

    1. Неправильный путь к интерпретатору Perl.

    На большинстве серверов Perl установлен в директорию /usr/bin, поэтому путь к нему выглядит:

    #!/usr/bin/perl
    Но есть сервера, где Perl расположен по другому пути, например,
    #!/usr/local/bin/perl
    Если первая строка скрипта, которая должна содержать правильный путь к интерпретатору, будет указывать на другой путь, сервер выдаст ошибку 500. В данном случае ошибка 500 означает, что сервер не смог выполнить скрипт по причине того, что не нашел программы, с помощью которой серверу указано этот скрипт выполнить.

    Данная причина справедлива для Unix/Linux платформ. На платформах Windows ситуация с путем к интерпретатору выглядит несколько иначе.

    В Windows можно дать указание веб-серверу читать путь к интерпретатору не из первой строки скриптов, а из реестра Windows, куда прописывается Perl при инсталляции. Это указание должно находиться в файле httpd.conf в секции main server's configuration веб-сервера Apache и выглядит так:

    ScriptInterpreterSource registry

    Примечание: Директива ScriptInterpreterSource может принимать значение script или registry. В первом случае путь к интерпретатору будет браться из первой строки скрипта, во втором - из реестра Windows. Директива работает только под Windows и также может быть прописана в <VirtualHost> или <Directory>.
    Документация по директиве ScriptInterpreterSource:
    httpd.apache.org/docs/mod/core.html#scriptinterpretersource,
    на локалхосте:
    http://127.0.0.1/manual/mod/core.html#scriptinterpretersource

     

    2. Файлы *.cgi не указаны в конфигурации сервера как CGI-скрипты.

    В редких случаях в конфигурационном файле сервера файлы с расширением *.pl указаны как CGI-скрипты, а файлы с расширением *.cgi нет. Это указание осуществляется директивой AddHandler. Для нормальной работы IkonBoard V.2 она должна иметь следующий вид:

    AddHandler cgi-script .cgi

    В этой директиве могут указаны и файлы с другими расширениями (.pl, .bat, exe), но расширение .cgi должно присутствовать обязательно.

    Примечание: Директива AddHandler может быть указана в секции main server's configuration файла httpd.conf, а также в <VirtualHost>, <Directory> и в файле .htaccess.
    Документация по директиве AddHandler:
    httpd.apache.org/docs/mod/mod_mime.html#addhandler,
    на локалхосте:
    http://127.0.0.1/manual/mod/mod_mime.html#addhandler

     

    3. Файлы *.cgi не ассоциированы в системе с Perl (только для Windows).

    В Windows для того, чтобы операционная система понимала, с помощью какой программы она должна выполнить файлы с тем или иным расширением, в реестре Windows расширение этих файлов должно быть ассоциировано с этой программой.
    При инсталляции Perl расширение .pl автоматически ассоциируется с программой perl.exe, а вот файлы с расширением .cgi приходится ассоциировать с perl.exe вручную.

    Наиболее простой способ ассоциировать файлы следующий.
    В программе-обозревателе (например, Проводник) находите файл с расширением .cgi и запускаете его двойным нажатием мыши. Система спросит вас, с помощью какой программы она должна открыть этот файл, указываете ей полный путь к perl.exe, нажимаете галочку "Использовать эту программу для всех файлов такого типа" и запускаете файл. Изменения в реестр в этом случае система внесет сама.

    В некоторых случаях такой способ не срабатывает. Тогда можно использовать другой аглоритм.
    Открываете "Мой компьютер" -> Сервис -> Свойства папки -> вкладка "Типы файлов".
    Там находите расширение .pl и по его примеру создаете новый тип для расширения .cgi, то есть делаете следующее:
    "Новый тип" -> указываете расширение, нажимаете "ОК", потом "Изменить" - система предложит вам выбрать программу, с помощью которой она должна открывать файлы заданного типа, выбираете perl.exe.

    Подробнее об ассоциации файлов *.cgi c Perl в Windows читайте в теме: «Не обрабатываются файлы *.cgi».

     

    4. Права на скрипты не разрешают их выполнение (только для Unix/Linux).

    В системах Unix/Linux разрешение на выполнение файла устанавливается с помощью прав доступа. Права выставляются командой chmod и поэтому еще называются чмодами или пермишенами (permition (англ.) - разрешение).
    Чтобы система могла выполнить скрипт, ему должны быть выставлены права на выполнение и очень часто также на чтение. Права выставляются для владельца файла, группы владельца файла и остальных пользователей, то есть состоят из трех записей или трех цифр (можно использовать как буквенные, так и числовые обозначения прав доступа). Права могут быть даны или запрещены на чтение, запись и выполнение.
    Таким образом, системе нужно указывать три вида прав доступа (на чтение, на запись, на выполнение) для владельца файла, три вида прав доступа для группы владельца файла и три вида прав доступа для остальных пользователей.
    Тем, кто хочет более подробно овладеть данным вопросом, рекомендуем почитать темы «Что такое chmod (права, пермишены) и какие chmod ставить на файлы и директории», «Error 500», статью «Администрирование пользователей в системах Unix» и начальные сведения по Linux/Unix, ссылки на которые собраны в теме «Ссылки для системных администраторов».

    Не вдаваясь в детали, следует запомнить, что для нормальной работы IkonBoard V.2 права на файлы и папки должны быть следующие.

    Всем скриптам (всем файлам *.cgi) должны быть выставлены права 755.
    Всем папкам должны быть выставлены права 777.
    Файлам *.lib обычно выставляют права 755, но на бесплатных хостингах, где нет разрешения использовать директивы файла .htaccess, из соображений безопасности библиотечным файлам *lib следует выставлять права 700. Подробности читайте в теме «Фикс потенциальной проблемы на некоторых хостингах».
    Файлу template.dat рекомендуется выставить права 777, хотя ему может хватить и 755.
    Не влияет на появление ошибки 500, но имеет смысл быть упомянутым, раз уж речь зашла о правах на файлы, то обстоятельство что файлу Guest.cgi, расположенному в папке members, из соображений безопасности следует выставить права, запрещающие запись в него, то есть 555 или 444. Подробнее читайте в теме «Запретить гостям (Guest) создавать сообщения».

    Ошибка 500 появляется тогда, когда системе недостаточно прав на выполнение скрипта.
    Реже ошибка 500 появляется, если права на скрипты, которые вы выставили, не соответствуют рекомендациям вашего хостера. Например, на некоторых хостингах может быть запрещено выставлять слишком высокие права (скажем, 777 для папок).
    В целом, необходимо придерживаться следующих правил. Сначала внимательно прочитать инструкции вашего хостера, и если в них нет четких указаний, какие права можно ставить папкам и скриптам, то выставлять права, как указано выше.
    Эти же указания содержатся в файле readme.txt дистрибутива IkonBoard V.2, который можно скачать из файлового архива Ru.Board.

     

    5. Неправильный режим закачки файлов на сервер.

    Неправильный режим закачки файлов на сервер также может служить причиной появления ошибки 500, так как приводит к повреждению файла.
    Режим закачки файлов (transfer mode) может быть текстовым (ASCII) и бинарным (двоичным, BINARY).
    Для закачки скриптов (и других текстовых файлов) обязательно надо использовать режим ASCII, при котором обрезаются Windows-символы конца строк (^M), приводящие в Unix к ошибке (более подробно об этом читайте тут).
    Для закачки картинок, архивов (zip, rar и т.д.) и других двоичных файлов необходимо использовать режим BINARY.

    Ошибка 500 появится, если вы закачаете скрипт в режиме BINARY вместо ASCII.

     

    6. Ошибки синтаксиса кода, появляющиеся при установке хаков/модернизации скриптов.

    Установка хаков (модификаций кода скриптов, как правило, добавляющих новые возможности форуму) предполагает вставку нового кода, либо замену имеющегося кода другим.
    При выполнении этих действий несложно ошибиться, например, пропустив строки кода или наоборот оставив те, что необходимо удалить.
    Невнимательность при установке хаков может привести к такому нарушению кода скриптов, который будет вызывать ошибку 500 сервера при запуске.
    Например, можно случайно удалить символ «;» в конце скрипта, что даст ошибку 500. Особенно легко удалить этот символ в конце файла ikon.lib.

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

     

    Итак, мы рассмотрели основные причины появления ошибки 500 при администрированиии IkonBoard V.2. Следует отметить, что большинство из описанных причин будут справедливы и для других конференций и просто скриптов.
    Искренне надеемся, что данная статья поможет вам при администрировании вашего форума.
     

    См. также Обзор форума IkonBoard V. 2 (карта форума) » Статьи, хаки - вся IkonBoard V. 2 в одной теме


    КомментироватьВерсия для печати

     
    Категории
  • В помощь сисадмину
  • Все о софте
  • Вебмастеру
  • Игры
  • Hardware
  • О сайте
  • Программирование
  • Операционные системы
  • IkonBoard
  • InvisionBoard
  • Скрипты в примерах
  • Php-Nuke
  • Цифровое изображение
  • Юмор

  • Ссылки по теме
  • http://ikonboard.com
  • Русский IkonBoard
  • Ещё о IkonBoard v2.1.*
  • Новости от lynx


    Популярная статья в категории IkonBoard v2.1.*:

    Установка IkonBoard на локалхосте.



  • This web site was made with PHP-Nuke