16+
ComputerPrice
НА ГЛАВНУЮ СТАТЬИ НОВОСТИ О НАС




Яндекс цитирования


Версия для печати

Модуль поиска не установлен.

Linux, PHP, MySQL, Apache – формула успеха!

31.03.2004

Владимир Царьков

Уверен, что каждый интернет-программист в свое время начинал с изучения HTML (Hypertext Markup Language). Но этот язык, так сказать, первая ступень, а что же дальше?

PHP (PHP: Hypertext Preprocessor) - один из языков более высокого уровня. Его превосходство над HTML в том, что, исполняясь на стороне сервера, PHP может взаимодействовать с базами данных, почтовыми программами, файлами и делать многое другое, создавая для программиста возможность реализовывать проекты любой сложности. Альтернативой PHP служат Perl и ASP (Active Server Pages), но о них мы сегодня говорить не будем. При всем вышеперечисленном, даже такой продвинутый язык без комбинирования с HTML будет совершенно не эффективен (ни форму создать, ни текст отформатировать). Так что чаще всего php-скрипт встраивается в HTML-код, и путем комбинирования достигается желаемый результат. В принципе, само название PHP говорит о том, что язык этот создан для организации движка сайта, а не для реализации его внешнего вида. PHP.net - официальный сайт данного языка web-программирования.

SQL (Structured Query Language) - структурированный язык запросов, используется для взаимодействия с реляционными базами данных. Причем, каждая СУБД (Система Управления Базами Данных), будь то Oracle, SQL Server, DB2, Informix, SyBase или MySQL, имеет свой собственный диалект, и, несмотря на то что существуют стандарты SQL1 и SQL2, проблемы с переносимостью на другие платформы БД (баз данных), написанных на разных диалектах, остаются.

При реализации интернет-проектов средней и даже высокой сложности чаще всего используется СУБД MySQL. Это бесплатно распространяемая СУБД, ее можно скачать с того же sourceforge.net и использовать совершенно свободно. Однако корпоративный рынок прочно захвачен такими коммерческими монстрами, как Oracle, DB2, SQL Server и Informix.

Допустим, что у нас есть дистрибутивы PHP и СУБД MySQL. Что теперь? Теперь надо заставить их работать вместе. Что делать? Без использования домашнего web-сервера у нас ничего толкового не получится. Можно, конечно, тестировать все online, но то, насколько это будет убыточно относительно времени и особенно денег, я думаю, объяснять не надо. В домашних условиях я бы посоветовал использовать Apache. Это один из самых популярных и распространенных web-серверов, поддерживающийся как Unix, так и Windows, впрочем, вам никто не запрещает работать, например, с TUX, но про него, опять же, не в этой статье. Взять Apache можно с apache.org или apache.lexa.ru.

Итак, рассматривать проблему мы будем с точки зрения пользователя Linux, поэтому, похоже, что "Формула успеха" уже определилась и выглядит следующим образом: ((HTML+PHP+SQLMySQL)*Apache))Linux.

Чтобы вышеуказанная формула давала желаемые результаты, надо толком настроить все переменные. В случае с Windows настройка вышеописанного программного обеспечения не составила бы труда: запускаем *.exe или *.msi файлы - и поехали, потом редактируем пару строк в httpd.conf, и все готово. Но мы говорим про Linux, здесь все гораздо более интересно и весело.

Приступим. Для начала введу несколько соглашений:

1. Все действия проводятся с правами root.

2. Знак "%" не является частью представленных ниже команд, а лишь указывает на начало строки с командой.

3. Установку я предлагаю провести в несколько этапов:

I. MySQL

II. Apache + PHP

После установки и настройки программного обеспечения мы проведем комплексное тестирование.

Несколько слов про версии программ: желательно, чтобы Apache был версии 1.3.x и старше, PHP версии 4.3.3 и старше, MySQL версии 4.0.16 и старше.

I. MySQL

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

Установку MySQL в этой статье мы будем проводить с помощью *.rpm файлов. И хоть я их не очень люблю за иногда появляющуюся у них жадность до отсутствующих на моем компьютере библиотек, все же установка *.rpm пакета проходит гораздо быстрее и проще инсталляции той же программы с использованием бинарных файлов (*.tar.gz).

Итак, качаем *.rpm архив с нужной вам версией СУБД с sourceforge.net.

Запускаем терминал и выполняем следующие команды:

% cd /папка_где_лежит_rpm_пакет
% rpm -qpl имя пакета.rpm

Опция -qpl выводит список содержащихся в пакете файлов.

% rpm -qpi имя пакета.rpm

Опция -qpi поможет вам получить данные об имени и версии пакета, а также краткую дополнительную информацию. Если все нормально и пакет подходит для вашей системы - достаточно выполнить команду

% rpm -i имя_пакета.rpm

и MySQL будет установлена. Если же возникнут ошибки из-за нехватки каких-нибудь библиотек, найдите их через Интернет - и все будет в порядке.

II. Apache + PHP

Apache и PHP можно инсталлировать вместе по причине того, что для установки языка потребуется переконфигурировать сервер, так зачем же нам попусту тратить время?

Переходим в папку, в которой лежат наши tar.gz или tar-архивы программ, она может быть названа по вашему усмотрению.

1. % cd /путь_к_папке

Распаковываем архивы:

2. % tar zxvf apache_1.3.x.tar.gz

% tar zxvf php_4.x.x.tar.gz

или

% gunzip apache_1.3.x.tar

% gunzip php_4.x.x.tar

Во всех статьях, затрагивающих установку *.tar.gz архивов в Unix, используется команда "tar", но очень редко где говорится про ее опции. Мне бы хотелось восполнить этот пробел. В нашем случае опциями являются символы "zxvf". Для чего же они нужны? Объясняю:

z - разархивировать, используя утилиту ungzip;
x - извлечь данные из архива;
v - показывать информацию о процессе распаковки;
f - указатель на файл, после буквы "f" нужно указать имя файла, который вы хотите разархивировать.

И это только один из вариантов команды на распаковку архива. Можно, например, пользоваться такой командой:

% tar --ungzip --get --verbose -f имя_файла.tar.gz

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

Перейдем в папку, куда только что распаковали сервер:

3. % cd apache_1.3.x

Конфигурируем сервер:

4. % ./configure --prefix=/www

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

Команда "./" запускает файл на исполнение, в нашем случае это файл конфигурации "configure".

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

В общем случае синтаксис опций таков:

--опция=значение (перед опцией обязательно должны находиться два тире!)

или

--опция-значение (перед опцией обязательно должны находиться два тире!)

или

--опция-значение=дополнительные_параметры (перед опцией обязательно должны находиться два тире!)

В нашем случае, строка:

% ./configure --/prefix=/www

означает, что надо сконфигурировать Apache так, чтобы он установился не в папку по умолчанию (это папка /usr/local), а в папку /www. Имя директории может быть любым, только советую давать ей название на английском языке, покороче (3-6 символов) и без пробелов.

Теперь переходим в каталог с распакованным PHP:

5. % cd ../php-4.x.x

и конфигурируем его для работы с Apache, при этом не забывая и про MySQL:

6. % ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars --with-config-file-path=/usr/local/lib/php4.ini

Значение для опции --with-apache зависит от того, в какой папке находится разархивированный дистрибутив Apache, а значение опции --with-config-file-path отвечает за то, куда будет размещен файл настройки PHP. Вы можете создать свой собственный путь, но, в принципе, в большинстве случаев лучше оставить по умолчанию.

Далее запускаем процесс установки:

7. % make

Команда "make" создает необходимые для окончательной инсталляции make-файлы, основываясь при этом на тех файлах конфигурации, которые были инициализированы после выполнения команды "./configure".

Далее для завершения установки PHP на компьютер под управлением Linux нам остается лишь ввести следующую команду:

8. % make install

Эта команда окончательно инсталлирует PHP на ваш компьютер, основываясь на ранее созданных make-файлах.

По сути дела, до исполнения данной команды все действия проводились только с данными распакованных архивов, при этом на систему в целом это не оказывало никакого воздействия.

Далее переходим в папку, куда был распакован Apache:

9. % cd ../apache_1.3.x

Теперь конфигурируем наш сервер, активируя PHP-модуль. Цифра 4 в команде означает версию вашего PHP. Так, к примеру, если у вас PHP-3.4.0, версия на данный момент старая, конечно, но все же вместо 4 вы должны прописать цифру 3.

10. % . /configure --prefix=/www --activate-module=src/modules/php4/libphp4.a

Отлично. Ниже представлены уже знакомые вам команды, которые надо прописать для окончательной установки Apache на компьютер под управлением Linux.

11. % make

12. % make install

Все, теперь нам остается добавить одну строку в файл httpd.conf, в некоторых версиях Apache он может называться srm.conf. Этот документ должен лежать в папке путь_куда_установлен_сервер_apache/config, например, /usr/local/apache/config.

13. % AddType application/x-httpd-php .php

Вместо *.php можно выбрать любое другое расширение (рис. 1).

Тестирование

Все элементы нашей "Формулы успеха" установлены, и теперь надо удостовериться в их готовности к совместной работе. Для этого я предлагаю написать маленькое тестовое приложение, использующее возможности компонентов, установленных нами ранее. Ниже приведен план необходимых действий:

1. Для начала откроем блокнот или какой-нибудь HTML-редактор и пропишем там следующие строки:

<?php
mysql_connect("127.0.0.1", "LOGIN", "PASSWORD");
$result = mysql_db_query("DATABASE_NAME", "select*from TABLE_NAME ");
while ($row = mysql_fetch_array ($result)) {
echo "name: ".$row["name"]. "<br>\n";
echo "content: ".$row["dbdata"]. "<br>\n";}
mysql_free_result ($result);
?>

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

2. Сохраним получившийся документ в формате, который вы избрали в качестве формата для файлов PHP, при этом помещая его в директорию htdocs папки apache.

3. Далее запустим командную строку MySQL.

% cd /etc/rc.d/init.d
% ./mysqld start
% mysql

После выполнения данных команд перед вами должно появиться что-то вроде приглашения mysql>_ (рис. 2).

4. Теперь надо создать БД, к таблицам которой мы обращаемся в скрипте, приведенном в первом пункте плана.

% create database DATABASE_NAME;
% use DATABASE_NAME;
% create table TABLE_NAME (name varchar(10), dbdata varchar(150));
% insert into DATABASE_NAME. TABLE_NAME (name, dbdata) values ('First message', 'Hello world!');

Готово, данные занесены в БД.

5. Теперь запускаем наш web-сервер. Хочу заметить, что команда, необходимая для этого, будет указана после окончания процесса установки Apache. Она должна выглядеть примерно так:

% /www/bin/apachectl start
где /www - папка, куда был поставлен Apache (рис. 3).

6. Открываем любой обозреватель и прописываем в адресной строке 127.0.0.1. Если сервер запущен и все настроено корректно, то перед вами должна предстать страница с приветственным текстом от разработчиков Apache (рис. 4).

7. Далее переходим на страницу, созданную и сохраненную в пунктах 1 и 2: 127.0.0.1/filename.php. Если вы видите что-нибудь вроде "parse error", то смотрите пункт 1 и ищите ошибку в своем коде, это не так сложно, поскольку интерпретатор любезно указывает строку, где существует некорректная запись. Ну а в том случае, если какой-нибудь Mozilla выводит что-то похожее на:

name: First message

content: Hello world!

- мне остается вас поздравить с успешным окончанием тестирования (рис. 5).

Пара советов напоследок

Очень важно отметить, что по умолчанию Apache использует кодировку iso-8859-1, поэтому, если вы захотите вывести на странице русский текст, - увидите ахинею.

Для решения проблемы надо найти в httpd.conf строку "Default charset" и переправить ее содержимое на windows-1251 (рис. 6).

Для написания баз данных на SQL очень советую использовать текстовые файлы. Хорошо, что терминал в Linux помнит введенные ранее команды, и если вдруг в запросе возникнет ошибка, можно, используя кнопочки "вверх" и "вниз", вернуть злосчастную строку и переправить ее содержимое, в Windows придется все переписывать заново! А теперь представьте, что вы пропустили жалкую запятую, а когда придется переписать символов так на 300, в лучшем случае, сколько еще ошибок может появиться? Для работы с текстовыми файлами очень удобно использовать программу PHP-admin. Как видно из названия, она реализована на PHP. На момент написания статьи я рекомендовал бы версию 2.5.3. Скачать прогу можно на том же sourceforge.net (рис. 7).

Заключение

Вот и все. Надеюсь, приведенная в статье "Формула успеха" принесет вам желаемые результаты. Удачи!



статьи
статьи
 / 
новости
новости
 / 
контакты
контакты