Ubuntu 10. Краткое руководство пользователя — страница 20 из 21

Сервер для PHP-программиста на базе Ubuntu

26.1. Зачем нужен Web-сервер в домашней сети?

Некоторым Linux-пользователям Ubuntu не нравится: уж больно она проста. Но простота не означает примитивность, что мы и докажем в этой главе, превратив обычную рабочую станцию в сервер сети — настроим Web-сервер с поддержкой PHP, FTP-сервер и сервер баз данных MySQL. В общем, все, что нужно PHP-программисту для разработки Web-приложений.

Будь у нас корпоративная сеть, использование Web-сервера было бы оправданно — ведь на внутреннем Web-сервере может храниться внутренняя информация для сотрудников компании, а на внешнем — информация о компании и ее продукции для потенциальных клиентов компании.

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

Примечание

Если же экспериментировать вам не хочется, равно как и изучать PHP, тогда лучше вообще не читайте эту главу, особенно, если вы постоянно подключены к Интернету — зачем вам целый набор лишних служб, за которыми вы не будете присматривать?

26.2. Web-сервер

26.2.1. Установка Apache и PHP

Запустите менеджер Synaptic. В поле Быстрый поиск введите apache. Щелкните правой кнопкой мыши на пакете apache2 и выберите команду Отметить для установки. Менеджер пакетов сообщит вам, что нужно установить дополнительные пакеты (рис. 26.1). Нажмите кнопку Применить.

Чтобы сразу «убить двух зайцев», отметьте для установки и пакет php5. Он устанавливает PHP 5 и добавляет его поддержку в Apache. Опять менеджер предложит установить дополнительные пакеты, но для PHP (рис. 26.2).

Теперь нажмите кнопку Применить на панели инструментов Synaptic. Размер выбранной мною конфигурации составил 18,9 Мбайт, загрузить из Сети потребуется 6,64 Мбайт (рис. 26.3).

Теперь нужно установить следующие пакеты (их можно найти по запросу php5):

□ ph5-cli — интерпретатор PHP, работающий в режиме командной строки (command-line interpreter);

□ php5-imap — поддержка протоколов POP/IMAP для PHP;

□ php5-gd — поддержка графических функций PHP;

□ php5-mysql — поддержка функций для работы с базой данных MySQL.

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

26.2.2. Тестирование настроек Web-сервера

Протестируем Web-сервер. Откройте браузер и введите адрес:

http://localhost

Должна открыться страница, изображенная на рис. 26.4.

Теперь протестируем поддержку PHP. Поместите файл test.php в каталог /var/www/. Это можно сделать с помощью команды:

sudo nano /var/www/test.php

phpinfo();

?>

Чтобы создать файл в этом каталоге, нужны права root. После создания файла введите в строке браузера следующий адрес: http://iocaihost/test.php.

Скорее всего (если вы после установки Apache не перезагружали компьютер), увидите картинку из серии «не ждали» (рис. 26.5).

Похоже, что поддержка PHP не установлена. Но на самом деле поддержка PHP уже установлена, просто нужно перезагрузить Apache — введите в терминале команду:

sudo service apache2 restart

Да, теперь и в Ubuntu есть команда service! После этого в окне браузера вы должны увидеть информацию о своем сервере и PHP (рис. 26.6).

Как вы уже догадались, каталог /var/www является корневым для вашего сервера. Если создать в нем файл test.html, то он будет доступен по адресу: http://localhost/test.html.

26.2.3. Конфигурационные файлы сервера

Файлы конфигурации сервера находятся в каталоге /etc/apache2. Основной файл конфигурации называется apache2.conf. По умолчанию его настройки устроят большинство пользователей. Если вы планируете использовать Web-сервер не только локально (для экспериментов с PHP), а как Web-сервер своей домашней сети, откройте файл apache2.conf и найдите директиву: #ServerName new.host.name

Нужно ее раскомментировать и указать имя сервера, которое будут вводить пользователи в строке браузера. Данное имя должно быть зарегистрировано в DNS-сервере вашей сети (или указано в файле /etc/hosts каждого компьютера сети). Обычно здесь указывается имя компьютера, например:

ServerName user-desktop

После этого можно будет обращаться к серверу по адресу:

http://user-desktop/.

Для остановки и перезапуска Web-сервера используются, соответственно, следующие команды (перезапуск необходим после изменения конфигурационных файлов сервера):

sudo service apache2 stop

sudo service apache2 restart

26.3. Сервер баз данных MySQL

26.3.1. Установка сервера

Для установки MySQL-сервера запустите менеджер пакетов Synaptic и выберите следующие пакеты:

□ mysql-server-5.1;

□ mysql-client-5.1;

□ mysql-admin.

Первый пакет содержит последнюю версию MySQL-сервера (на данный момент эта пятая версия), во втором пакете находится MySQL-клиент, т. е. программа, которая будет подключаться к MySQL-серверу, передавать ему SQL-запросы и отображать результат их выполнения. Третий пакет содержит программу для администрирования MySQL-сервера. Все необходимые дополнительные пакеты будут установлены автоматически.

При установке MySQL-сервера Synaptic запросит новый пароль пользователя root (рис. 26.7). Это пароль пользователя MySQL — не нужно путать с системным пользователем root!

26.3.2. Изменение пароля root и добавление пользователей

Для изменения пароля root (который вы ввели при установке сервера MySQL) используется следующая команда:

sudo mysqladmin — u root password ваш_пароль

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

mysql — u root — p mysql

Программа mysql является клиентом MySQL-сервера. Она должна подключиться к базе данных mysql (служебная база данных), используя имя пользователя root (-u root). Поскольку вы только что указали пароль для пользователя root (до этого пароль для root не был задан), вам нужно указать параметр — p. После того как программа mysql подключится к серверу, вы увидите приглашение программы. В ответ на него нужно ввести следующий SQL-оператор:

insert into user(Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv)

values ('%','username',password('123456'),'Y','Y','Y','Y');

Только что мы создали пользователя с именем username и паролем 123456. Этот пользователь имеет право использовать SQL-операторы select (выборка из таблицы), insert (добавление новой записи в таблицу), update (обновление записи), delete (удаление записи). Если вам нужно, чтобы ваш пользователь имел право создавать и удалять таблицы, добавьте привилегии Create_priv и Drop_priv:

insert into user(Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_prov)

values ('%','username',password('123456'),'Y','Y','Y','Y','Y','Y');

Внимание!

Этот SQL-оператор можно записать в одну строку, можно разбить на несколько строк — как вам будет удобно. Но в конце каждого SQL-оператора должна быть точка с запятой! Помните об этом.

Для выхода из программы mysql нужно ввести команду quit.

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

mysqlshow — p <база данных>

26.3.3. Запуск и останов сервера

Для управления сервером используется программа /etc/init.d/mysql. Раньше нужно было вызывать /etc/init.d/mysql непосредственно, сейчас можно вызвать управляющую программу через команду service, что намного удобнее. Для запуска сервера следует передать этой программе параметр start, для останова — stop, а для перезапуска — restart:

sudo service mysql start

sudo service mysql stop

sudo service mysql restart

Также для управления сервером можно использовать программу mysqladmin, узнать больше о ней можно с помощью команды:

man mysqladmin

26.3.4. Программа MySQL Administrator

Устанавливая сервер, мы установили программу MySQL Administrator (пакет mysql-admin). Запустите программу командой меню Приложения | Программирование | MySQL Administrator. Укажите адрес сервера localhost, имя пользователя — root, пароль, который вы указали при установке сервера (рис. 26.8), и нажмите кнопку Connect. Далее управлять сервером будет существенно проще (рис. 26.9).

Пройдемся по основным разделам программы MySQL Administrator:

Server Information — общая информация о сервере (см. рис. 26.9);

Service Control — управление запуском сервиса MySQL (здесь вы можете перезапустить сервер);

Startup Parameters — параметры, указываемые при запуске сервера;

User Administration — здесь можно добавить новых пользователей MySQL и установить права пользователей;

Server Connections — позволяет просмотреть текущие соединения с сервером;

Server Logs — журналы сервера;

Backup — создать резервную копию сервера;

Restore Backup — восстановление из резервной копии;

Replication Status — состояние репликации сервера;

Catalogs — позволяет просмотреть имеющиеся базы данных и таблицы внутри них.

26.4. Быстрая настройка FTP-сервера

Рассмотрим настройку FTP-сервера ProFTPD. На мой взгляд, этот сервер наиболее гибкий в настройке. Установите два пакета: proftpd-basic и gadmin-proftpd. Первый содержит FTP-сервер, а второй — графическую программу для его настройки.

После установки сервер практически готов к работе. Его нужно только запустить (по умолчанию он добавляется в автозапуск, поэтому после перезагрузки эта команда не потребуется):

sudo /etc/init.d/proftpd start

Попробуем подключиться к вашему серверу:

ftp <имя_вашего_компьютера>

FTP-сервер запросит имя пользователя и пароль. Нужно вводить имя пользователя, зарегистрированное на вашем компьютере (на FTP-сервере). После этого вы получите доступ к домашнему каталогу пользователя, который будет для вас корневым, т. е. за пределы этого каталога выйти не получится. Это сделано из соображений безопасности, чтобы никто не мог получить доступ к файловой системе сервера.

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

Основной файл конфигурации сервера ProFTPD называется /etc/proftpd/ proftpd.conf. По умолчанию в конфигурационном файле указываются далеко не все опции, которые доступны, поэтому для создания полноценного конфигурационного файла нужно запустить программу gadmin-proftpd:

gksudo gadmin-proftpd

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

В верхней части окна программы настройки FTP-сервера расположены кнопки управления сервером (рис. 26.10):

Activate/Deactivate — информируют о статусе сервера (зеленая кнопка говорит о том, что сервер запущен);

Shutdown — завершает работу сервера.

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

Ознакомимся с другими вкладками программы настройки:

Users — позволяет управлять пользователями выбранного сервера;

Transfers — информация об использовании выбранного сервера (рис. 26.11);

Disk — информация об использовании дискового пространства локального компьютера;

Files — позволяет сгенерировать файлы статистики сервера;

Security — информация, касающаяся безопасности сервера;

Configuration — позволяет редактировать конфигурационный файл сервера.

Очень удобна вкладка Configuration, позволяющая редактировать файл конфигурации — команда gedit вам больше не понадобится (рис. 26.12).

Теперь самое время заняться предоставлением анонимного доступа к серверу. Предположим, что наша коллекция с фильмами и другими огромными файлами будет размещаться в каталоге /var/ftp/pub. Поэтому секция Anonymous конфигурационного файла proftpd.conf будет выглядеть так:

Теперь любой пользователь сможет подключиться к вашему серверу, используя имя пользователя anonymous и любой e-mail в качестве пароля. Они получат доступ к файлам в каталоге /var/ftp/pub. Файлы можно будет только скачивать, все остальные действия (изменение, удаление) запрещены, запрещена и загрузка файлов на сервер. Если нужно разрешить загрузку файлов на сервер, тогда в конце секции Anonymous (перед ) добавьте следующую секцию:

Пользователи смогут просматривать каталог /var/ftp/pub/incoming и загружать в него новые файлы.

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

Теперь после проделанной работы у вас есть Web-сервер с поддержкой PHP и MySQL, сервер баз данных MySQL и FTP-сервер — все, что нужно, для разработки и тестирования ваших Web-приложений.

Заключение