Форум своими руками

Антон Орлов (Москва)

Кипящие страсти. Жареные факты и перепалки. Степенный разговор солидных людей о вечном. И все это — между теми, кто никогда не был ни писателем, ни журналистом. Как вы думаете, где такое возможно? Только в одном месте — на Интернет-форумах, настоящих центрах общения в Сети. Сейчас практически каждый сколь-нибудь крупный сайт имеет свой форум, на котором зачастую обсуждаются темы далекие от тех, которым посвящен сайт. Наверняка и вы задумывались — а не снабдить ли мой сайт подобным средством общения?..

Строго говоря, форум — это комплекс веб-страниц, предназначенных для обмена сообщениями с возможностью классификации этих сообщений по темам и сохранения их для последующего прочтения. Создается такой комплекс на базе современных языков веб-программирования.

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

Небольшой цикл статей посвящен именно таким комплексам, с помощью которых вы сможете снабдить свой сайт форумом за несколько минут. В этой статье я приведу общие сведения об устройстве и установке Интернет-форумов, а в следующих номерах «Магии ПК» вы найдете серию рассказов о наиболее интересных разработках и сможете выбрать ту из них, которая вам больше всего приглянется.

Большая часть современных Интернет-форумов сделана на основе языка программирования PHP и системы управления базами данных MySQL. Этот язык и эта СУБД позволяют создавать мощные и функциональные разработки, к тому же они установлены почти на всех сервисах хостинга. Форумы на основе языка PERL уже уходят в прошлое и не совершенствуются. Заполучить в свое распоряжение набор программ для создания форума очень просто — посетите сайт с каталогом программного обеспечения и найдите в соответствующем разделе ссылки на сайты разработчиков форумов. Такие же ссылки обычно указываются в нижней части веб-страниц форумов. Ну и, наконец, вы можете дождаться публикации в нашем журнале цикла рассказов о таких программах. Весьма неплохой каталог пакетов программ, позволяющих создать на своем сайте форум, вы можете найти по адресу http://klinika.hitline.ru в разделе «Форумы на PHP». Загрузка многих пакетов возможна прямо с этого сайта, причем каждая ссылка снабжена довольно подробным описанием. Приведу список сайтов, с которых можно скачать самые популярные и большие пакеты для создания форумов:

http://www.phpbb.com

http://www.invisionboard.com

http://zorum.phpoutsourcing.com

http://www.xmbforum.com

http://www.phorum.org

Все эти форумы построены на основе PHP и MySQL и устанавливаются однотипно. Вам потребуется лишь хостинг с поддержкой упомянутых технологий. Ну и, разумеется, определенные знания о самих технологиях. О PHP в нашем журнале рассказывалось уже неоднократно, а о принципах работы с MySQL вы можете прочитать на следующей странице.

Установка форума

Итак, чтобы ваш сайт обзавелся форумом, следует:

1. Загрузить архив с файлами форума с нужного вам сайта. В архиве будет находиться набор сценариев на PHP и графические изображения, использующиеся в дизайне форума.

2. Закачать файлы форума на свой сайт в отдельную папку. При желании вы можете присвоить папке с форумом отдельное доменное имя, если вы, конечно, знаете, как это сделать.

3. Установить права доступа к файлам с помощью FTP-клиента. Например, в CuteFTP для этого необходимо, выделив файл или группу файлов, выбрать из контекстного меню пункт «CHMOD» и в появившемся диалоговом окне отметить требуемые позиции. Команды установки прав доступа обычно есть и в веб-интерфейсах управления файлами на сервисах хостинга.

Обычно те права доступа, которые получают по умолчанию файлы и папки, закачиваемые на аккаунт на сервисе хостинга (например, для папок — 770, 755, для файлов — 660, 644), позволяют форуму функционировать вполне нормально. Однако некоторые из форумов требуют, чтобы отдельным их файлам и папкам были назначены специальные права, например, запрет на чтение содержимого какой-либо папки. Поэтому, загрузив файлы форума на свой сайт, поищите в документации упоминание о необходимости присвоения специальных прав доступа для каких-либо его компонентов и, если найдете — выполните эти действия.

Если по установке форум не начал правильно работать, то, вполне возможно, что это именно из-за настроек прав доступа к файлам и папкам. Исправить ситуацию можно, например, присвоив права «777» тем файлам и папкам, в которые сценариями форума осуществляется запись, а остальным компонентам форума назначив права «755».

4. Создать для форума базу данных (БД) и запомнить ее название. В этой БД и будут храниться практически все данные форума, от списка его участников до текстов сообщений и названий обсуждаемых тем.

Для создания базы данных обычно имеется специальная команда в интерфейсе аккаунта на сервисе хостинга, ее и надо выполнить. Как правило, при создании БД требуется задать пароль на доступ к ней, а иногда еще и логин.

Кроме того, создать БД можно и специальной программой, например, MySQLFront. Однако в этом случае необходимо в интерфейсе аккаунта на сервисе хостинга разрешить работу с вашими базами данных на данном сервисе с URL или IP-адреса того узла, на котором эта программа установлена (то есть с адреса вашего компьютера), попросту указав этот адрес в специальном поле. А если IP-адрес вашего компьютера не постоянный, то сделать это будет не так просто.

Обратите внимание, что создать БД для форума вам придется обязательно, причем сделать это надо будет вручную — через веб-интерфейс службы хостинга или специальной программой. Ни один из программных комплектов Интернет-форумов не имеет команд автоматического создания базы данных для форума.

5. Открыть браузером веб-страницу инсталлятора форума и ввести на ней требуемые данные, в частности, следующие:

* адрес узла, на котором расположена БД. Учтите, что если сценарии форума и используемая вами MySQL размещены на одном и том же узле Сети (а если и сценарии, и БД вы устанавливаете на одном и том же аккаунте сервиса хостинга, то так будет всегда), то этот адрес должен быть localhost;

* название базы данных — той, которую вы создали для форума;

* логин и пароль для доступа к базе данных — введите те значения, которые вы задали для этой БД.

Обычно инсталлятор требует ввести еще и некоторые другие сведения, например, логин и пароль администратора форума. Придумайте их и сообщите инсталлятору. Впоследствии, войдя посредством этих авторизационных данных на форум, вы сможете получить над ним полный контроль: настраивать его внешний вид, удалять и перемещать сообщения участников форума, запрещать отдельным участникам работать с форумом и многое другое.

После ввода данных на странице инсталлятора форума нажмите кнопку запуска инсталляции, расположенную там же, и подождите немного. Если вы ввели правильные данные и MySQL работает без сбоев, инсталлятор упорядочит внутреннюю структуру выделенной для форума базы данных, создав там набор таблиц, в которых и будет храниться вся информация форума. Собственно, это создание таблиц внутри БД форума и является основным этапом его установки, и именно здесь возникает большинство проблем.

Если создание таблиц прошло нормально, то через некоторое время вы получите сообщение об успешной инсталляции и приглашение начать работу с форумом. Введенные вами при установке сведения о параметрах доступа к БД будут записаны в специальный файл и станут использоваться командами сценариев форума.

6. Если инсталлятора нет…

В некоторых форумах сценарий инсталляции отсутствует. В таком случае процесс установки форума после создания БД для него может включать в себя следующие действия:

* Отредактировать один из файлов форума (чаще всего он называется config.php или как-то похоже), указав в его тексте параметры доступа к базе данных (то есть адрес узла, имя БД, логин и пароль для доступа к ней); затем

* Открыть браузером специальную страницу с программой создания таблиц в базе данных, если таковая есть. Ее имя будет указано в документации к форуму.

либо

Вручную создать нужные таблицы в веб-интерфейсе сервиса хостинга или специальной программы. Список таблиц будет прилагаться в документации к форуму.

либо

Воспользоваться специальным файлом SQL-команд.

Иногда к форуму вместо инсталлятора прилагается файл с SQL-командами, которые, собственно, и создают таблицы. Чаще всего такой файл имеет расширение .sql. В интерфейсе практически всех программ и веб-сценариев для работы с MySQL есть специальный раздел как раз для ввода таких команд, который обычно так и называется — «SQL», «SQL-запрос», «Query», «SQL-Query». Войдя в этот раздел интерфейса, откройте файл с SQL-командами в «Блокноте» и скопируйте все его содержимое в окно ввода SQL-команд, после чего запустите их на выполнение соответствующей кнопкой.

Обычно помимо окна ввода SQL-команд в интерфейсах программ и веб-сценариев для работы с MySQL есть еще и средство загрузки файла с SQL-командами целиком. Вы можете воспользоваться и им, попросту указав нужный файл на своем жестком диске.

7. Удалить инсталляционные файлы форума. Сценарии установки форума обычно не имеют системы регламентации доступа (в самом деле, зачем она нужна, если сработать сценарии должны лишь однажды и лишь под управлением одного человека?). Поэтому, если оставить эти сценарии в свободном доступе, то каждый, кто посетит страницу с инсталлятором, сможет привести форум в полную негодность, например, изменив имя БД форума или введя неверный пароль. Конечно, чтобы это сделать, необходимо знать имя инсталляционного файла, но разве трудно попросту подобрать название install.php или sm_install.php или скачать дистрибутив такого же форума и посмотреть, как он там называется…

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

Базы данных и MySQL

База данных

В самом общем случае база данных — это просто набор структурированных данных, с которым можно работать определенным образом. Например, все файлы на жестком диске можно назвать базой данных — их совокупность структурирована (разнесена по каталогам) и с ней можно работать, читая, переименовывая, удаляя и создавая файлы.

Однако в настоящее время базой данных чаще именуют совокупность данных, представленную в виде таблиц. Любой документ Excel — это и есть простейшая база данных: одна таблица. Ну, а в более сложных БД таблиц несколько, причем некоторые столбцы разных таблиц могут содержать связанные между собой данные (как если бы в Excel значения одного столбца на одном листе приравняли к значениям другого столбца на другом листе).

Дело в том, что в таких наборах таблиц очень удобно производить поиск данных и их сортировку — соответствующие алгоритмы работают быстро и эффективно. Благодаря возможности легкого поиска базы данных получили широкое распространение именно там, где необходимо хранить большие объемы информации и быстро находить в ней нужное (учет товаров в торговле, учет жильцов в районе, учет книг в библиотеке).

СУБД

Сама по себе база данных — это просто некий объем информации. Чтобы иметь возможность с ней работать, необходимо записать ее на жесткий диск компьютера в каком-либо формате и сделать программу, которая бы и проводила нужные действия с записанными данными. Такая программа называется системой управления базами данных — сокращенно СУБД.

Например, таковой является известная программа Access — файлы программы хранятся в папке, в которой установлен Microsoft Office, а сами базы данных представляют собой обычные файлы с расширениями .mdb или некоторыми другими. В какой-то степени к СУБД можно отнести и Excel — как-никак, файл .xls тоже можно рассматривать как набор данных, размещенных в таблицах.

Возможности работы с базой данных зависят от качества написания СУБД, которая эту базу обслуживает. Некоторые СУБД могут позволять просматривать информацию в базе данных, удалять или добавлять новые сведения в нее только через оконный интерфейс, некоторые — наоборот, лишь через командную строку. Некоторые СУБД могут состоять из нескольких компонентов, один из которых напрямую работает с файлами базы данных, а другие используют его функции.

SQL

Для того чтобы принципы работы с различными базами данных были однотипными, программисты придумали специальный язык — SQL («структурированный язык запросов»), включающий в себя команды помещения информации в базу данных, получения данных из нее, а также поиска и изменения ее структуры. Те СУБД, которые претендуют на звание «современных», должны уметь правильно отвечать на команды этого языка. Поэтому в интерфейсе СУБД всегда имеется возможность вводить команды SQL для выполнения различных действий с базой данных, а тому, кто хочет стать пользователем СУБД, достаточно выучить основы этого языка и найти, как в интерфейсе СУБД вводить его команды.

MySQL

MySQL — это одна из современных систем управления базами данных, разработанная Михаэлем Видениусом (http://www.mysql.com, http://www.mysql.ru, http://www.tcx.se). От других СУБД она отличается бесплатностью, надежностью и весьма высокой скоростью работы с базами данных.

MySQL распространяется в виде набора программных файлов (обычно либо в виде исходных текстов, либо упакованные в инсталлятор). Она имеется практически на всех сервисах хостинга. Вы также можете установить ее на своем компьютере, загрузив с сайта http://www.mysql.com установочный комплект или проинсталлировав комплект «Денвер» (http://dklab.ru/chicken/web), о котором рассказывалось в одном из прошлых номеров нашего журнала.

На жестком диске компьютера MySQL занимает одну директорию, в которой и помещаются ее файлы. На сервисах хостинга эта директория пользователям недоступна. Сами базы данных хранятся в одной из подпапок этой директории с названием data, и на сервисах хостинга с ними можно работать только посредством MySQL.

Одна MySQL может обслуживать сразу множество различных баз данных, и для каждой из этих баз в папке data выделяется своя директория, в которой и размещаются непосредственно файлы базы данных — в своем, особом формате, с которым может работать MySQL.

Основная часть MySQL, именуемая mysqld.exe, это нечто вроде «драйвера базы данных», собственно та программа, которая воспринимает запросы SQL и производит нужные действия с базой данных. Однако непосредственно отдать «драйверу» команду пользователь не может — для этого у «драйвера» нет интерфейса. Поэтому нужны программы для работы уже с этим «драйвером». В комплекте MySQL поставляются как минимум программа mysql.exe, позволяющая работать с MySQL в режиме командной строки, и программа mysqladmin.exe, которая через графический интерфейс позволяет управлять некоторыми параметрами баз данных, обслуживаемых MySQL. Вкратце принципы работы с MySQL можно выразить следующим образом.

Устройство

* Информация в MySQL хранится в отдельных БД, каждая из которых имеет свое имя.

* Каждая БД состоит из набора таблиц, также имеющих имена.

* MySQL состоит из «драйвера базы данных», самих БД и программ для работы с этим «драйвером». Такой программой может быть и интерпретатор какого-либо языка программирования.

* В современных языках программирования, в частности, в PHP, есть специальные команды для работы с MySQL.

* К MySQL с помощью программ для работы с «драйвером» можно обращаться на специальном языке — SQL.

Администратор

* Администратор MySQL устанавливает логин и пароль для полного контроля над СУБД и может свободно создавать и удалять любые БД, редактировать информацию в них с помощью специальных программ.

* Администратор MySQL может позволять другим пользователям работать с отдельными БД, для чего может выдать им логины и пароли.

* Администратор MySQL может ограничить возможность работы с MySQL с других узлов Интернета, составив для каждого пользователя список узлов, на обращения программ и сценариев с которых MySQL будет отвечать.

* Сведения о логинах и паролях пользователей, а также о том, с какими БД и с каких Интернет-узлов им разрешено работать, хранятся в специальной «служебной» БД, именуемой mysql.

На сервисах хостинга

Обычно на сервисах хостинга используется специальное ПО, которое дает пользователям возможность самим создавать БД в ограниченном количестве, редактировать их и удалять.

Обычно логином для доступа к этим БД является логин пользователя на аккаунте хостера, а пароль пользователь задает самостоятельно. Однако на некоторых сервисах пользователь может сам задавать и логин, и пароль для доступа к каждой конкретной БД или ко всем вместе.

Как правило, пользователи сервисов хостинга могут работать с MySQL только с того же узла, на котором эта СУБД установлена, то есть только посредством предоставляемых хостером программ или из сценариев, установленных на том же узле.

На некоторых сервисах хостинга разрешается работать с расположенными на них БД с других узлов Интернета, и тогда сценарии, работающие с базой данных, могут располагаться на аккаунтах других хостеров.

Как работать?

Для получения доступа к отдельной базе данных MySQL из другой программы или из сценария PHP надо:

* Знать адрес Интернет-узла, на котором установлена база данных (если программа или сценарий установлены на том же Интернет-узле, что и MySQL, то этот адрес выглядит как «localhost»).

* Знать имя базы данных, с которой надо работать.

* Знать логин и пароль для доступа к этой базе.

* Указать все эти данные в интерфейсе программы или в соответствующей команде сценария PHP.

При этом владелец аккаунта на сервисе хостинга должен:

Создать БД и придумать логин и пароль для доступа к ней (или только пароль, в зависимости от программ сервиса хостинга).

Если программа или сценарий, которые будут работать с БД, находятся на другом узле Интернета, то разрешить доступ к БД с этого Интернет-узла.

MySQLFront

Весьма удобным средством для работы с MySQL является разработка MySQLFront, созданная Ансгаром Дескером. Ее можно загрузить с сайта http://www.mysqlfront.de. С помощью MySQLFront можно не только создавать и удалять базы данных, но и просматривать непосредственно их содержимое, а также вводить SQL-запросы для управления БД. Кроме того, MySQLFront позволяет работать с MySQL, расположенной на другом компьютере, доступном через Интернет. Если вы будете использовать MySQL более широко, нежели только для создания форума, то обязательно освойте эту программу.

Ну и, наконец, работать с СУБД MySQL можно посредством интерпретаторов различных языков программирования — того же PHP. В языке PHP есть специальные команды получения сведений из базы данных, а также помещения их туда, средства поиска и сортировки информации. Обнаружив такую команду в сценарии, интерпретатор PHP связывается с программой MySQL на указанном в сценарии узле Интернета и передает ей соответствующие директивы, а получаемую информацию отправляет переменным в сценарии. Собственно, именно из-за наличия команд работы с MySQL и легкости их использования PHP и используется чаще всего для создания Интернет-форумов.

PHPMyAdmin

К настоящему времени MySQL стала неотъемлемым компонентом услуг по предоставлению хостинга, то есть размещения сайтов, и установлена практически на любом узле компании-хостера. Многие компании создают свои наборы PHP-сценариев для работы с MySQL и предоставляют их своим пользователям. Например, такой разработкой является phpMyadmin, система, в которой есть практически все функции, которые только могут понадобиться владельцу СУБД для работы с ней.

Если вы будете пользоваться MySQL, установленной на сервисе компании-хостера, то вам, скорее всего, придется использовать только предоставляемые компанией средства работы с СУБД. Иногда имеется возможность получать доступ к своим базам данных с помощью MySQLFront, однако обычно для такого доступа требуется специальная настройка своего аккаунта у компании-хостера.

 

Продолжение следует

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

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