Содержание


ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Часть 1. Подготовка системы Ubuntu(Debian) для использования в качестве Web-сервера на базе технологии LAMP

Comments

Серия контента:

Этот контент является частью # из серии # статей: ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Следите за выходом новых статей этой серии.

Этот контент является частью серии:ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Следите за выходом новых статей этой серии.

На сегодняшний день доля связки php+apache+mysql в построении Web-решений очень велика, поэтому подготовка такой связки на базе известных и стабильных операционных систем, таких как Linux и FreeBSD, кажется довольно актуальной задачей. В общем случае, решение этого вопроса видится в установке операционной системы, ее настройке под решаемую задачу (в первую очередь правка ядра и конфигурационного файла httpd), установке собственно интерпретатора php, его модульном подключении к Apache, установке и настройке СУБД mysql и общей интеграции всех перечисленных компонентов в проект. Таким образом, весь процесс требует от человека понимания происходящего и опыта в развертывании данных программных продуктов. Но часто бывает, что разработчики не хотят (или не умеют) работать с перечисленными выше программами, и возникает вопрос: что делать? Тогда на помощь приходят решения LAMP, название которых так и расшифровывается: «Linux+Apache+Mysql+PHP+Perl». Домашняя страница одного из таких проектов находится здесь: Linux for XAMPP.

Рассмотрим подготовку подобного решения на базе Ubuntu Linux, а затем захватим и все системы, перечисленные в самом начале. Хочу сообщить читающим, что процесс установки и настройки всего описанного ниже ПО практически полностью идентичен для Debian Etch, и это не простое утверждение, а проверенный на практике факт. Отмечу только некоторые небольшие, но существенные отличия. В Ubuntu, начиная с версии 7.04, уже нет php версии 4, есть только 5-я версия, а вот в Debian Etch есть и та, и другая – выбирайте сами, какую предпочитаете, на свое усмотрение. Мелочь – но очень важная, на мой взгляд! Между разными версиями php существуют серьезные различия и в наборе функций, и в организации ООП, и в быстродействии.

Сегодня рассмотрим методику и практику построения системы Ubuntu(Debian) Linux+XAMPP+Mambo в целях построения рабочей системы Web-разработчика или же сервера предприятия малого или среднего уровня. Почему малого или среднего? Потому, что для серьезного крупного проекта необходима организация промежуточного звена между Сетью и Web-сервером, причем в качестве такого буфера обычно выступает «легковесный» сервер nginx, кэширующий запросы.

Целью моей статьи не является описание такой системы. Мы рассмотрим связку, дающую возможность человеку, не имеющему специальных знаний (или не имеющему времени) в области установки и настройки apache+php+mysql+ftpd, быстро и качественно получить готовую систему. Таким образом, не сведущий в этих, в общем не простых вопросах, человек может быстро развернуть, скажем, тестовую платформу для разработки Web-приложений.

Установка и настройка LAMP

Краткое описание задачи и ее составных частей начнем с компонентов, входящих в систему.

  1. Ubuntu Linux – на сегодня один из самых популярных дистрибутивов Linux. Получить его можно по адресу: http://www.ubuntu.com/getubuntu/download (начинающим рекомендую вариант Ubuntu 8.04 LTS Desktop Edition, остальным – Ubuntu 8.04 LTS Server Edition).
  2. XAMPP – сразу оговорюсь, что версии для FreeBSD пока нет, к большому сожалению! Это очень популярный «джентльменский набор Web-разработчика», служащий, как пишут авторы проекта, для простой и быстрой установки Web-сервера Apache, а также таких популярных продуктов, как MySQL, PHP и Perl. И еще, для новичков в Linux добавлю, что есть версия XAMPP для Windows, но я не пробовал с ней работать.

    Документация, к сожалению, доступна только на английском языке: http://www.apachefriends.org/en/xampp.html.

  3. Mambo (аналог Joomla – ставить по желанию, но говорят, очень помогает в разработке приложений для Web) – популярная CMS. Сайт проекта: http://mambo-foundation.org/.

Сначала нам придется установить и настроить XAMPP, а потом уже mambo, так как последняя требует готовой к работе связки mysql, apache и php c поддержкой XML, Zlib и прочих технологий, возможность работы с которыми нам дает XAMPP. Прочитать обо всех поддерживаемых продуктом технологиях можно на сайте проекта: http://www.apachefriends.org/en/xampp-linux.html#374, а я приведу только некоторые из них, чтобы обнадежить читающих:

«Apache 2.2.9, MySQL 5.0.51b, PHP 5.2.6 & 4.4.8 & PEAR + SQLite 2.8.17/3.3.17 + multibyte (mbstring) support, Perl 5.10.0, ProFTPD 1.3.1, phpMyAdmin 2.11.7, OpenSSL 0.9.8h, GD 2.0.1, Freetype2 2.1.7, libjpeg 6b, libpng 1.2.12, gdbm 1.8.0, zlib 1.2.3, expat 1.2, Sablotron 1.0, libxml 2.6.31, Ming 0.3, webalizer 2.01, pdf class 009e, ncurses 5.8, mod_perl 2.0.4, ......» –

мне кажется, более чем достаточно – здорово, да?

Далее необходимо скачать дистрибутив продукта (около 60 МБ), поместить его в каталог /opt и распаковать с помощью следующей команды:

# tar xvfz /opt/xamp-linux-xxx.tar.gz
# cd /opt/lampp
# /opt/lampp/lampp start

– вот и все, что нужно для старта! Вы должны будете увидеть следующее:

Starting XAMPP 1.6.7...
LAMPP: Starting Apache...
LAMPP: Starting MySQL...
LAMPP started.

Рабочим каталогом Web-сервера является /opt/lampp/htdocs/. Теперь проверим результат того, что сделано. Наберите в браузере:

http://localhost/xampp

и вы увидите следующую картину (рисунок1). Кстати, Web-интерфейс очень функционален, уверяю, вы будете приятно удивлены!

Рисунок 1.
Рисунок 1.
Рисунок 1.

Сервер Apache может работать и в режиме поддержки ssl. Настройка производится при помощи утилиты lampp, запускаемой с правами пользователя root. Вот основные ее параметры:

  • start – запуск XAMPP
  • stop – останов XAMPP
  • restart – перезапуск XAMPP
  • startapache – запустить только Apapche
  • startssl – включить поддержку SSL для Apache (включается постоянная поддержка)
  • startmysql – запустить сервер MySQL
  • startftp – запустить сервер ProFTPD (доступ возможен с именем пользователя «nobody» и паролем «lampp»)

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

Далее необходимо выполнить # /opt/lampp/lampp security (рисунок 2) где после ввода этой команды в интерактивном режиме будет произведена конфигурация нескольких параметров, таких как доступ к mysql через сеть, пароль для root и т.д. Внимательно на все отвечайте и запоминайте введенные пароли.

Рисунок 2.
Рисунок 2.
Рисунок 2.

Для управления и администрирования mysql имеется phpmyadmin – это для тех, кто не очень любит работать с СУБД mysql в командной строке. Получить окно для входа в интерфейс администратора phpmyadmin можно, набрав в браузере следующий адрес:

https://localhost/phpmyadmin/

Еще раз повторюсь, что рабочим каталогом для Web-сервера является /opt/lampp/htdocs/.

Имеющийся FTP-сервер будет автоматически «заводить» пользователей в каталог /opt/lampp/htdocs/. Теперь мы имеем установленный и работоспособный XAMP. Это значит, что у вас уже есть рабочая связка apache, php, Perl, mysql, ftpd и других приложений, о которых я говорил выше.

Интеграция Mambo(Joomla!) в XAMPP

Теперь рассмотрим второй этап – интеграцию Mambo(Joomla!) в XAMPP и построение, таким образом, платформы для создания сайта и собственно системы управления контентом.

Сейчас мы имеем Ubuntu Linux и установленный на ней пакет XAMPP, который обеспечивает нам поддержку всех компонентов, необходимых для построения сайта и даже больше....

Получаем на сайте http://www.joomla.org/ последнюю версию CMS joomla! (название так и пишется – с восклицательным знаком, не удивляйтесь) и помещаем ее в каталог /opt/lampp/htdocs/. Затем распаковываем командой # tar xvzf joomla_1.5.......tar.gz, после чего все содержимое развернется в каталоге /htdocs и попадет прямо в рабочую область LAMPP, т.е. именно туда, куда и нужно.

Конфигурация и установка joomla! осуществляется через Web-интерфейс, поэтому в браузере нужно набрать http://ip_addr_you_host/Joomla/. При этом запустится программа настройки, которая будет проводить пользователя по всем этапам конфигурирования CMS.

Нужно обратить внимание и запомнить такие вещи, как выбор базы данных в СУБД MYSQL из числа имеющихся (если они там есть) и пароль root на СУБД, который должен совпадать с тем, что вы давали при установке LAMP. Это необходимо для того, чтобы потом не возникали проблемы при доступе к СУБД через phpmyadmin.

Затем настройка FTP (задайте учетную запись и пароль те же, что и при установке LAMP) и, наконец, – “Main Configuration”. Тут есть интересная опция – “Install Default Sample Data”; если не установить эти данные, то после установки получите пустой сайт, что нужно в том случае, когда вы точно знаете, что делать, и владеете способами создания собственных шаблонов. А так, для ознакомления, лучше эти данные установить.

Потом, после нажатия на кнопку NEXT, появится конечная страница, на которой вверху будут две ссылки для входа. Одна – вход на сайт (тот, что мы установили с Default Sample Data), другая предназначена для администрирования сайта (http://ip_addr_you_host/administrator/). По первой ссылке вы увидите свой сайт в наполнении по умолчанию, зато со всеми возможностями, а по второй – административный вход, где и начинается долгое, но интересное дело по созданию собственного сайта.

Подготовка системы Ubuntu в качестве Web-сервера, с использованием бинарных пакетов

Теперь рассмотрим подготовку и настройку системы Ubuntu в качестве Web-сервера с использованием бинарных пакетов из штатных репозиториев. После загрузки системы войдите в консоль и там выполните команду $ sudo aptitude show php5 и, если вы увидите (а вы это увидите, если не установили все при начальной установке системы) то, что показано на рисунке 3, – значит, надо все устанавливать и конфигурировать.

Рисунок 3.
Рисунок 3.
Рисунок 3.

Нам понадобятся пакеты php5, mysql-server-5.0, php-mysql, apache2 и php5-cli. Установим их в том порядке, в котором они написаны, после чего приступим к конфигурированию. В процессе установки система спросит у вас пароль root для mysql – как на рисунке 4.

Рисунок 4.
Рисунок 4.
Рисунок 4.

После удачной установки всего перечисленного, выполните в консоли

$ sudo /etc/init.d/apache2 start

Вам скажут о том, что необходимо определить полное доменное имя хоста, а до тех пор использовать на Web-сервере имя localhost. Набрав в браузере http://localhost/ и увидев такую картину, как на рисунке 5, можно убедиться, что Web-сервер работает.

Рисунок 5.
Рисунок 5.
Рисунок 5.

Далее нужно сконфигурировать сервер mysql – установить пароль для root:

mysql>set password for root@localhost=password(‘пароль’)

или по-другому:

$mysqladmin –u root password ‘new-password’

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

$ mysql –u root -p

затем убрать анонимных пользователей:

Mysql> use mysql;
	  delete from user where user=’’;
	  delete from db where user=’’;
	  flush privileges;

создать нужную БД

mysql>create database mydb;

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

команда grant all on * to masha@localhost identified by ‘masha’ создаст учетную запись для пользователя с именем masha для локального входа, причем для этого пользователя устанавливается пароль masha, и ему даются привилегии уровня администратора выполнять любые действия в выбранной (текущей) БД.

После этих манипуляций проверим работу сервера Apache2 c модулем php.

Нужно создать простой скрипт php.php и поместить в него следующие строки, используя для этого текстовый редактор:

<?php
echo phpinfo();
?>

Затем в браузере можно набрать http://localhost/php.php и вы должны увидеть то, что изображено на рисунке 6. Здесь можно просмотреть все параметры – от имени системы и ее версии до версии php и всех его параметров, причем как включенных, так и ожидающих включения. Просмотрите эту страницу внимательно – уверен, она пригодится тем, кто будет заниматься разработкой или поддержкой уже готовых систем на связке linux, apache, php и mysql.

Рисунок 6.
Рисунок 6.
Рисунок 6.

Необходимо сказать, что дополнительные настройки самого интерпретатора php можно поправить в конфигурационном файле /etc/php5/apache2/php.ini, в котором сказано, что в таком виде, как он тут находится, он может быть пригоден только для целей разработки, но не для промышленного использования. Несколько изменений, связанных с безопасностью, должны быть внесены в этот файл прежде, чем он сможет обеспечивать работу вашего сайта в режиме онлайн.

Стоит перейти по ссылке http://php.net/manual/en/security.php и обдумать рекомендации в самом файле php.ini, благо он очень хорошо прокомментирован и сам по себе уже является своеобразным руководством по эксплуатации.

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

Например, проверьте параметр в файле php.ini на предмет его включения file_uploads = On. Если он будет Off , то невозможно будет что-либо загрузить на сайт, используя функции php. И здесь же параметр upload_max_filesize = 2M: если планируется загружать файлы большего объема, то внесите сюда нужную величину.

Кроме того, memory_limit = 16M – максимальное среднее количество памяти, которое скрипт может потребить при своей работе.

Итоги и выводы

Для обеспечения стабильной и производительной платформы для работы связки apache, mysql и php широко применяются различные дистрибутивы GNU/Linux.

Web-сервер (как программный комплекс) должен быть хорошо подготовленной и надежно защищенной системой, обеспечивающей высокопроизводительную платформу для работы не только http-сервера, но и СУБД. Язык php широко используется при разработке Web-приложений совместно с apache и СУБД mysql. Установить и настроить рабочую среду для обеспечения функционирования связки apache, mysql и php можно несколькими путями, одним из которых является установка готовой среды, включающей всю связку и вспомогательные программы (XAMPP), или путем установки соответствующих бинарных пакетов при помощи штатного системного установщика. Возможна сборка ПО из исходных текстов, но эта тема в рамках данной статьи не рассматривается.

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


Ресурсы для скачивания


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=499667
ArticleTitle=ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD: Часть 1. Подготовка системы Ubuntu(Debian) для использования в качестве Web-сервера на базе технологии LAMP
publish-date=07082010