Титульная страница
ISO 9000 ISO 14000 Forum
Титульная страница
Цель системы качества
Управление качеством
ISO
ISO 9000
ISO 13485
ISO 14000
ISO 17025
OHSAS 18001
ISO 19011
Total Quality Management
Project Management
Фармацевтика
Отраслевые стандарты
Информационные технологии
Оформление документации
Ссылки 
Поиск на сайте
Forum
Реклама на сайте





Установка CGI скриптов




Установка CGI скриптов - не вляпайся!

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

Когда я сказал, что я не профи, то соврал! Есть у меня одно умение, в котором я признанный профессионал - это совершать все возможные и самые наиглупейшие ошибки!!! Поковыпявшись в CGI скриптах всего три недельки, я умудрился совершить почти все ошибки при их усановке: все что можно сделать неправильно - я сделал! Поэтому, чтоб уберечь вас от неверных действий, я изложу вам основные моменты по установке CGI скриптов. Не пугайтесь, это не так сложно как кажется - даже у меня что-то получилось, а я сам услышал о них недавно! Приступим....

Зачем нам нужны эти скрипты?

Форум, чат, доска объявлений, голосование, гостевуха, каталог, топ, магазин и аукцион - все это можно сделать с помощью CGI. Возникает вопрос, что такое скрипт? Грубо говоря, скрипт - это программка, которая запускается не на вашем компьютере, а на сервере. В результате работы скрипта, сайт превращается из существа пассивного, в существо активное, у вас появляется больше возможностей как для общения с посетителями (форумы, чаты, mail формы, опросы, голосования, рассылки), так и в управлении сайтом (организация оперативно обновляемых новостей, баннерокрутилка, публикация статей через веб и т.д.) Кроме того, некоторые скрипты могут стать основой вашего сайта (например, каталог, топ-рейтинг, служба поздравительных открыток, поисковая машина…) - у вас уже загорелись глаза? То-то же, скрипты открывают новые горизонты, у кого-то появляются нездоровые желания создать свой Yahoo!, а кто-то просто хочет сделать на сайте гостевую книгу.

Нужно ли для этого знать языки программирования?

Э....я например только в школе Basic проходил - вопросы есть? Конечно, если что-то знаешь, то хорошо, но эти советы не для знающих ;-) Вот что желательно, так это понимать хоть примерно (процентов на 60) надписи на английском - существует огромное количество бесплатных скриптов (см. ссылки в конце статьи), почти все они имеют подробные инструкции по установке, кроме того, в самом коде присутствуют подробные комментарии. Стоит добавить, что наиболее распространенный язык для написания CGI скриптов - это Perl, но не надо думать, что "Говорим CGI - подразумеваем Perl!" Совсем нет! Perl cgi скрипты просто более популярны (возможно из-за того, что Perl - язык программирования под Unix, а большинство серверов в Сети работает под юниксоидными системами, и Perl к тому же, не самый сложный в освоении язык, но при этом предоставляющий мощные и довольно простые в использовании возможности при работе с текстом, строковыми данными и т.д.). Есть CGI скрипты и на C/C++, но это уже для windows'ких серверов, а там более популярна технология ASP, а сейчас речь не об этом…

Где ставить cgi скрипты?

На своем сервере, надо чтобы он поддерживал CGI, кроме того, узнайте полный путь к папке cgi-bin (что-то типа "home/home-webservis/kakadu/public_html/cgi-bin" не путайте это с URL, в приведенном случае, URL папки CGI будет выглядеть обычно, т.е. примерно так: http://kakadu.al.ru/cgi-bin) - обо всем этом вы сможете прочитать в FAQ вашего хостинга, посмотрите путь к почтовой папке (например /usr/sbin/sendmail), и ГЛАВНОЕ, узнайте путь к Perl, по умолчанию считается #!/usr/bin/perl, но могут быть вариации… "

Сheck that the Path to perl is correct. Links defaults with #!/usr/local/bin/perl".

Многие прекращают знакомство со скриптами после подобной фразы. Вас просят убедиться, что правильно прописан путь к perl (а этот путь вы посмотрели - в пред.пункте). Теперь, чем вскрыть скрипт (*.cgi, *.pl)? Можно сделать это в текстовом редакторе, но это не лучший способ для новичков. Я делаю это с помощью PerlBuilder http://www.solutionsoft.com/ (для его функционирования вам придется скачать ActivePerl, его предлагают прям там). Чем он хорош (т.е. Perl Builder)? Проверка синтаксиса, вскрывает все: *.cgi, *.pl, *.html, *.cfg, *.def, *.php, *.html и т.д. Вы сможете проверить работоспособность скрипта прямо у себя дома на компьютере! Правда, особо не обольщайтесь - топ дома вы не запустите, но добьетесь вывода кода html - значит работает!

Итак, открываете файл, там в самом верху строка: #!/usr/bin/perl - исправляете ее на нужную! И все! Если, что-то надо прописать в самом скрипте (опции, например, или пути к папкам(!) - весьма часто встречается) - то внимательно следуйте инструкциям! Если что-то добавляете в код, то перед этим делайте резервную копию - а вдруг? Мы то не программисты!

"...Upload everything in cgi-bin in ASCII mode to a directory on your server that can run cgi..."

Теперь надо создать на сервере необходимые директории и загрузить туда файлы - четко следуйте инструкциям! Загружать надо в ASCII режиме! Что это? Есть два режима: ASCII и Binary - обычно для закачки/перекачки используется второй, но со *.cgi, *.pl файлами это не пройдет: 500 Server Errors - эта ошибка чаще всего появляется из-за неправильного режима загрузки! Выбор режима загрузки производится с помощью вашего ftp клиента (у меня Сutftp, скачать можно здесь: http://www.cuteftp.com/products/cuteftp/) - есть там нечто вроде Transfer Type - это оно самое, часто стоит на автомате (Auto), но иногда выбирает не тот режим (убедился лично) - лучше поставьте ASCII и не мучайтесь!

Set permissions:

chmod 755 (-rwxr-xr-x) on all .cgi files.
chmod 666 (-rw-rw-rw-) on all files in the data directory.
chmod 777 (drwxrwxrwx) on the public directory

Тоже многие тут спотыкаются - а что я вытворял!!! Бедный сервер наверное свихнулся - о существовании таких прав доступа, что я ставил, он и не подозревал! Итак, теперь надо установить права доступа: 755 - наивысший приоритет, всем файлам *.cgi, *.pl надо установить его. В инструкциях все пишут - следуйте им! Если есть сомнения, то можно действовать по такому принципу - всем файлам, которые для массового использования ставим 777 , всем исполнительным (*.cgi, *.pl) -755, а тем, которые непонятно какие - 666. Если скрипт не запускается и выдает ошибку (500 Server Errors - очень часто ;-) ), то возможно вы не правильно расставили права, проверьте все (*.cgi, *.pl) в первую очередь! Как эти права расставлять? Опять с помощью FTP клиента: Change File Attributes - и пишете в появившемся окошке необходимые права! Теперь дополнение одного из моих читателей:

................

Было бы неплохо не просто порекомендовать какие права доступа ставить (и для каких файлов), а подробно объяснить, что обозначает каждая буковка в записи "drwxrwxrwx" и цифра в команде "CHMOD" . Это позволило бы новичкам, прочитавшим статью, сэкономить кучу времени и нервов (GK: как он прав!).

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

"Кто" подразделяются на три вида:

  • "Owner" - владелец файла/папки
  • "Group" - группа, к которой относится владелец
  • "Everyone" - все остальные пользователи

"Что" подразумевает: какие действия с файлами/папками могут производить Пользователи, Группа или Владелец, а именно:

  • "Read" - чтение
  • "Write" - запись
  • "Execute/Search" - выполнение (для файлов) и поиск (для каталогов).

Число, следующее после команды "chmod xyz имя_файла/папки" расшифровывается следующим образом:
- первая цифра (x) - это права владельца
- вторая (y) - права группы
- третья (z) - права доступа для остальных пользователей.
Каждая цифра - состоит из суммы чисел, которыми эти права обозначаются:

  • Чтение - число 4
  • Запись - число 2
  • Выполнение/поиск - число 1

То есть, если нужно предоставить владельцу право читать, записывать и выполнять файл, то число x получается из суммы 4+2+1 = 7. Если нужно установить права доступа только для чтения и выполнения, то 4+0+1 = 5.

Рассмотрим конкретный пример: что означает это преславутое число 755?
Первая цифра - 7 - право доступа для Владельца (4+2+1) чтение+запись+выполнение.
Вторая цифра - 5 - право доступа для Группы (4+0+1) чтение+выполнение.
Третья цифра - 5 - право доступа для остальных Пользователей (4+0+1) чтение+выполнение. Данное число (755) рекомендуется устанавливать для CGI скриптов, а остальным файлам - 660 (GK: подразумеваются только скриптовые файлы, а не все остальные! Ваши публичные документы имеют доступ 777 - то есть самые широкие права). Также, если есть файлы, в которых хранятся данные "не для чужих глаз" (а именно: шаблоны, файлы регистрации и т.д), то для них я бы порекомендовал установить права доступа - 600 (GK: а часто им ставят 666).

Теперь рассмотрим, что означают буковки "drwxrwxrwx" при выдаче листинга файлов в каталоге. Тут все очень просто:
d - указывает на то, что это папка. Если стоит "-" - значит это файл.
rwx - права доступа для владельца - "r"ead, "w"rite и e"x"ecute, если вместо какой-либо буквы стоит "-", то это означает, что данное право отсутствует.
Cледующая троица "rwx" аналогична предыдущей, только она определяет права доступа для группы.
И последняя троица "rwx" также определяет права доступа для остальных пользователей. Следовательно, права доступа к файлу 755 выглядят так: "-rwxr-x-r-x"

. .........

Я могу лишь выразить благодарность!

А что дальше?

По идее, если все вы сделали правильно, то скрипт установлен - его можно запускать и, возможно, настроить какие-нибудь опции, но все это происходит уже в привычной форме, через окно броузера. Очень вероятно, что скрипт не запустится и выдаст ошибку - проверьте, правильно ли вы все сделали! Все мои ошибки, возникали из-за моей невнимательности или когда я, изображая Билл Гейтса, пытался маааленько изменить код - а Perl то я не знаю ;-)
В общем, что-то я поставил, кое с чем еще извращаюсь - зайдите ко мне на сайт, посмотрите!

Где взять скрипты?

Надеюсь, что все любители отвечать на этот вопрос примерно так: "Потратить часок-другой и написать самому!" уже давно прекратили чтение этой статьи, а оставшиеся, как и я, довольно смутно представляют себя в роли программиста… Не унывайте! Я уже говорил в начале статьи, что существует множество бесплатных скриптов и я не соврал! Более того, таких скриптов очень много, конечно они довольно часто уступают по возможностям скриптам платным, но, к счастью, из-за большого их количества часто удается подобрать то, что нужно. Вот несколько наиболее интересных, на мой взгляд, ссылок на скриптовые ресурсы:

1. http://webscript.ru - мне действительно нравится этот каталог! На первый взгляд, скриптов тут не очень-то и много (всего пару сотен), но должен признать, что тут подобраны наиболее интересные и популярные скрипты, существующие в Сети. Да и сайт русскоязычный, что для многих весьма важно.
2. http://hotscripts.com - а вот это мировой гигант, собравший не только perl cgi скрипты, но и скрипты, написанные на языках C/C++, Python, есть там и PHP скрипты, и Java, и DHTML… Вам же следует пройти в раздел Perl (большинство скриптов написано на этом языке) http://hotscripts.com/perl , после чего вы сможете лицезреть несколько тысяч скриптов! Там перечислены не только бесплатные, но и платные скрипты (но об этом там написано, думаю, что слово "Free!" никто не пропустит). Все скрипты довольно удачно разбиты по категориям, и там нетрудно найти то, что надо. Всем рекомендую!

Есть и еще множество каталогов скриптов, но, мне кажется, они все уступают HotScripts.com или WebScript.ru (если говорить о русскоязычных ресурсах), как по подборке скриптов, так и по удобству пользования сайтом. Среди достойных внимания назову еще :

The CGI Resource Index (http://www.cgi-resources.com) - весьма нравился мне, пока я не нашел Hotscripts.com
CGI City ( http://www.icthus.net/CGI-City/ ) - не самая удобная навигация, но попадаются довольно интересные скрипты.
FreePerlCode ( http://www.freeperlcode.com/guide/ ) - Как и следует из названия, здесь вы можете получить CGI PERL скрипты - они бесплатные, их можно скачать.

 

Rambler's Top100
Hosted by uCoz