Установка каталога ссылок Links 2


Прислал: NAS [ 07.05.2001 @ 05:55 ]
Раздел:: [ Статьи по Perl ]


Практически все вебмастера держат, на своих сайтах, небольшие разделы посвященные ссылкам на другие, интересные им сайты. Со временем эта страничка разрастается и превращается в трудно контролируемый раздел сайта.
Какой может быть выход из этого положения? Один из выходов - это поставить скрипт "каталога ссылок" на свой сайт. В этой статье мы рассмотрим один из лучших условно-бесплатных скриптов фирмы Gossamer Threads Inc "Links 2".

Настройка

Давая рекомендации по установке я исхожу их того, что у вас уже есть хостинг с поддержкой CGI-скриптов и Perl 5.
Прежде чем начать установку этой программы мы должны скачать необходимые дистрибутивы.
  • Архив Links 2 (Links 2)
  • Архив с модификацией Links 2, который позволяет создавать разделы использую буквы не только латинского алфавита, но и русского (руссификация). Изначально Links 2 позволяет создавать разделы только на английском, поэтому если вы собираетесь англоязычный каталог ссылок, то вы можете пропустить этот шаг.

Разархивируйте архив со скриптом на локальном компьютере. У вас должно получиться две директории cgi-bin и pages. Теперь нам необходимо заменить соответствующие файлы на файлы из архива 54-links2_nonenglish.zip. Это позволит нам создавать категории на русском языке. До того момента как мы перепишем все файлы на сервер, мы пропишем все переменные в файле links.cfg, который находится в директории admin.

Вначале проверьте во всех файлах с расширением .cgi путь к Perl, по умолчанию там стоит #!/usr/local/bin/perl, если есть, необходимость поменяйте на нужный вам путь.
Теперь откройте файл links.cfg и найдите строки
# PATH and URL of Admin CGI directory. No Trailing Slash
$db_script_path = "/alex/links/cgi-bin/admin";
$db_dir_url = "//localhost/links/cgi-bin/admin";
$db_script_path - это путь до директории admin на вашем сервере, исправьте его на нужное вам значение;
$db_dir_url - это адрес (URL) до директории admin на вашем сервере, исправьте его на нужное вам значение;

Последний закрываюший слэш во всех случаях сейчас и дальше ставить не требуется !
# URL of User CGI directory. No Trailing Slash.
$db_cgi_url = "//localhost/links/cgi-bin"
db_cgi_url - это путь до cgi-bin директории, в которой собственно и хранится вся программ каталога, включая директория admin;

# PATH and URL of Pages to be built. No Trailing Slash.
$build_root_path = "/alex/links/pages";
$build_root_url = "//localhost/links/pages";
$build_root_path - путь до директории, в котором собственно и будут хранится html файлы сгенерированные скриптом. Эту директорию необходимо создавать вне cgi-bin, так как файлы в ней будут доступны конечным пользователям;
$build_root_url - это соответственно адрес (URL) этой директории;

Следующие 6 переменных можно не менять.
# PATH and URL of What's New page. No Trailing slash.
$build_new_path = "$build_root_path/New";
$build_new_url = "$build_root_url/New";
# PATH and URL of What's Cool page. No Trailing slash.
$build_cool_path = "$build_root_path/Cool";
$build_cool_url = "$build_root_url/Cool";
# PATH and URL of What's Rating page. No Trailing slash.
$build_ratings_path = "$build_root_path/Ratings";
$build_ratings_url = "$build_root_url/Ratings";
# Database Options
# ------------------------------------------------
# You really need to use flock(). However if your system doesn't support it (Win95),
# then turn this off at your own risk!
$db_use_flock = 1;

Если устанавливаем скрипт на Unix машину, то оставляем 1, если же на Windows меняем на 0.
# Use Pragma: no-cache to stop browsers from caching output? (0 = cache, 1 = nocache)
$db_nocache = 0;

Параметр отвечающий за кэширование данных, 0 - кэшировать, а 1 соответственно нет.
# Use IIS headers? Set this to 1 if your web server needs the full headers (HTTP/1.0 etc.)
$db_iis = 0;

Если вы устанавливаете скрипт на IIS (Interenet information Server), то установите значение переменной $db_iis равное 1.
# Field number of category in category.db
$db_main_category = 1;

Эту переменную оставляем без изменений.
# Referers -- which hosts are allowed to add to your database.
@db_referers = ();

Здесь мы можем добавить адреса (URL), с которых разрешено будет добавлять ссылки. Если вы укажете адрес своего сайта, то ссылку в ваш каталог смогут добавить, только с вашего сайта, а с систем добавления ссылок (//1ps.ru) добавление не возможно.
# Email Options
# -----------------------------------------------
# NOTE: Be sure to edit the text of the message. It can be found
# in the templates directory: email-add.txt, email-del.txt and
# email-mod.txt respectively.
# Set only ONE of either $db_mail_path which should go to a
# mail program like sendmail, or $db_smtp_server which will use
# a SMTP server. Do not set both at once!
# PATH of sendmail. # SMTP Server
$db_mail_path = '';
$db_smtp_server = ''

Переменная $db_mail_path должна содержать путь к программе sendmail, обычно это /usr/sbin/sendmail, но в любом случае уточните у администратора.
Если же вы собираетесь использовать SMTP, то в переменной $db_smtp_server укажите его адрес.
# Email address of the administrator. BE SURE TO SET!
$db_admin_email = '';

Здесь укажите свой email адрес. На этот адрес будут приходить письма с информацией о новых добавленных ссылках.
# Notify visitors automatically when their links are validated?
$db_email_add = 0;

Если вы хотите оповещать пользователя о том, что его ссылка проверена и добавлена в каталог, по почте, то установите значение $db_email_add равное 1.
# Notify visitors automatically when their links are modified?
$db_email_modify = 0;

То же самое в случае изменения информации о ссылке.
# Log all outgoing messages? Put the full path to a logfile and make sure it
# exists and is writeable (chmod 666 -rw-rw-rw-). This logfile can get pretty
# big!
$db_mailer_log = '';

В $db_mailer_log введите имя файла, в котором будет хранится информация о всех разосланных письмах. Параметр не обязателен.
# Build Options
# -----------------------------------------------
# Setting for popular cutoff, can either be a percent (i.e. top 3%), or
# a fixed value (i.e. top 10). Enter 0.03 or 10 respectively.
$db_popular_cutoff = 0.03; # Top 3%

Параметр $db_popular_cutoff отвечает за генерацию страницы популярных ссылок. Может принимать процентное значение или целое число. Если вы установите, например, 10 то будет сгенерированна страница с десетью самыми посещаемыми ссылками.
# Number of days a link is considered New.
$db_new_cutoff = 14; # 14 days old

Количество дней, в течении которых ссылка имеет признак "новой".
# Return search results bolded (1 = yes, 0 = no).
$search_bold = 1;

Выделять искомые слова в результатах поиска (1) или нет (0).
# The name of an index file.
$build_index = "index.html";

Имя индексного файла. У вас может быть, например index.shtml.
# The extension to use for non index files:
$build_extension = ".html";

Расширение, которое будет добавляться к генерируемым файлам.
# Should your add.cgi automatically select what category the user
# is adding his link into?
$db_single_category = 1;

Если оставить оставить значение 1, то при добавлении ссылки, пользователю будет предложено добавить именно в тот раздел, в котором он находился. Иначе ему будет предложен выбор из всех категорий.
# Directory Permissions. Do NOT put quotes around it. Set to 0777
# for world writeable. If you put this at 0755, you might need a
# script to remove any directories created as they will be owned
# by the web server or user nobody. Better solution might be to
# run the nph-build routine from the command shell.
$build_dir_per = 0777;

Права доступа на директории, которые будет создавать скрипт. Скрипт должен иметь возможность записывать в эти директории данные.
# The script can now break up category pages that have more then x
# number of links in it. It will also create next and previous links
# to help navigate. Set this to 1 if you want to break up pages or 0 if
# you want to have only one page per category.
# Setting this to one, will also break up the What's New pages into
# per day sections (not affected by number of links per page).
$build_span_pages = 1;

Переменная отвечающая за построение раздела новых ссылок. Если 1, то строятся страницы со списком ссылок за каждый день, если 0, то строится одна единственная страница со списком всех новых ссылок.
# Number of links per page.
$build_links_per_page = 10;

Количество ссылок на странице.
# Detailed View: The script can build a single html page per link. This is
# great if you have a review in your database. To enable, you must set
# the directory where all the pages will be stored, the url to that directory
# and set the enable option.
$build_detailed = 0;
$build_detail_path = "$build_root_path/Detailed";
$build_detail_url = "$build_root_url/Detailed";

Строить ли детальную страницу к каждой ссылке(1) или нет (0) и пути к этим страницам.
# Use Templates: instead of editing site_html.pl, you can edit regular html pages
# encoded with special <%links_tags%> . It's not as flexible as site_html.pl, but it
# may be easier.
$build_use_templates = 1;

Строить ли страницы с использованием шаблонов или нет. Мы будем строить свой каталог используя шаблоны, которые представляют собой обычные html файлы с вкраплением специальных переменных.
# Site Title, the default title to use. You should really spend some time customizing
# the directory though!
$build_site_title = 'Gossamer Threads Links';

Заголовок вашего сайта.

Установка

Теперь необходимо скопировать все файлы из директории cgi-bin вашего компьютера на веб-сервер в вашу директорию cgi-bin с сохранением структуры директорий. Копировать все файлы следует исключительно в ASCII режиме !!! После этого скопируйте папку pages в корень вашего сервера, не в cgi-bin, в ней пока будет один файл links.css, в котором находится таблица стилей вашего каталога. лица стилей вашего каталога. Этот файл вы можете потом отредактировать.

Теперь вам необходимо установить права доступа на файлы каталога. 755 (-rwxr-xr-x) на все файлы с расширением .cgi и .pl
666 (-rw-rw-rw-) на все файлы виректории DATA.
666 (-rw-rw-rw-) на все файлы в директории TEMPLATES.
777 (drwxrwxrwx) на директорию HITS.
777 (drwxrwxrwx) на директорию RATINGS.
777 (drwxrwxrwx) на директорию PAGES
Подробнее узнать, как устанавливать права доступа и закачивать в режиме ASCII, можно здесь.

Для безопасности вам необходимо директорию ADMIN закрыть на пароль. Лучшего всего это сделать с помощью .htaccess. Подробности вы можете уточнить у своего хостинг провайдера.
Теперь для проверки на берите в вашем браузере URL //yourserver.com/cgi-bin/links/admin/admin.cgi исправив его под себя. Перед вами должна открыться панель администратора по управлению вашим каталогом.

Для того, чтобы каталог заработал нам необходимо сделать следующее:

  1. Добавить категорию. Незабудьте заполнить поле Nonenglish, это имя раздела на русском языке. Если вы хотите добавить подкатегорию, то вам следует вначале создать категорию, например с именем test, а затем создать категорию с именем test/test2, где test2 это соответственно подкатегория категории test. В поле nonenglish необходимо использовать обратный слэш / (тест/тест2)
  2. Добавить любую ссылку в категорию.
  3. Выполнить генерацию страниц каталога. Пункт меню "Build All"
  4. Проверить сгенерированные страницы по адресу //yourserver/pages/
  5. Добавить ссылку со страниц каталога, а не с административного интерфейса.
  6. Проверить ссылку. Пункт меню Validate.
  7. Сгенерировать страницы еще раз. Теперь в каталоге должно быть уже 2 ссылки.
Страницы каталога будут сгенерированы со стандартным дизайном. Для того чтобы его изменить, вам необходимо отредактировать файлы в директории admin/templates. Это обычные html файлы, которые вы сможете отредактировать в любом html-редакторе и перевести все сообщения на русский язык. В этих файлах необходимо оставлять переменные в специальных тегах <% %> .

Это вообщем-то всё :) Если есть вопросы, то оставляйте в комментариях или на форуме

© NAS