Настройка Apache, PHP и MySQL для Linux-VPS
В ранее опубликованных материалах уже рассматривалась как установка Apache с PHP и MySQL под Windows, так и более правильный вариант — установка локального VPS с Linux под Windows. В последнем случае даже приводился пример установки этой троицы под Debian, описываемый одной строчкой. Однако ни в том, ни в другом случае, не рассматривались подробно собственно настройки на Web-, ни SQL-серверов. Особенно Web, то бишь Apache — ведь для хостинга (пусть и отладочного) это очень важно.
Установка Apache, PHP и MySQL в Debian
Первым делом следует установить необходимое ПО на свой виртуальный (или реальный — в свете рассматриваемой задачи это значения не имеет) сервер. Как уже было отмечено, в Linux это делать гораздо проще, чем в Windows. Тем не менее, остановимся на этом подробнее, тем более, что мы будем устанавливать не «голые» версии Apache и PHP, а с обвязкой из различных вспомогательных библиотек. В частности, полезно установить, как минимум, GD для поддержки графики, а так же ImageMagick (улучшенная поддержка графики в PHP) и Mcrypt (функции шифрования).
Итак, устанавливаем:
apt-get install apache2 php5 imagemagick libapache2-mod-php5 php5-gd php5-imagick php5-mcrypt
Здесь мы устанавливаем сами Apache, PHP и ImageMagick (GD уже установлен с базовой системой), а так же модули для взаимодействия Apache с PHP и PHP с GD, ImageMagick и Mcrypt.
Примечание
Суть работы с установщиком пакетов в Debian сводится к вызову apt-get с командой (в данном случае Install) и последующему перечислению через пробел всех нужных пакетов.
Теперь установим MySQL:
apt-get install mysql-server mysql-client php5-mysql
Тут устанавливаются 3 пакета: собственно сервер MySQL, клиент MySQL (обеспечивающий доступ к серверу) и модуль поддержки MySQL в PHP. По ходу установки сервера программа установки MySQL запросит у вас пароль для пользователя root (не путать с системным суперпользователем root!).

Введите пароль, затем введите его повторно на следующем экране и через несколько секунд после этого установка MySQL будет завершена.
Таким образом, мы имеем все необходимое для полноценного веб-сервера. Для удобства установим phpmyadmin. Делается это в Debian очень просто:
apt-get install phpmyadmin
В процессе установки программа спросит вас, для какого сервера вы хотите сконфигурировать утилиту — укажите apache2 (нажав пробел на соответствующей строке).

В конце установки вам будет предложено настроить базу данных для phpmyadmin. Согласимся с этим предложением (выбрав Yes), затем введем пароль пользователя root для MySQL (который был указан нами ранее при установке сервера), и создадим пароль для пользователя phpmyadmin.
Теперь можно запустить phpmyadmin, попутно проверив, как у нас все работает. Для этого открываем браузер и в адресной строке вводим IP-адрес нашего сервера (в примере по настройке сети был использован адрес 192.168.0.207) и путь к phpmyadmin, который по умолчанию будет таким же, т.е. «http://192.168.0.207/phpmyadmin». В результате должна появиться страница авторизации.

Вводим логин (root) и пароль (для MySQL-root) и заходим. Таким образом, мы убеждаемся что вся связка из Apache, PHP и MySQL работает правильно, т.к. Phpmyadmin использует все 3 эти составляющие. Единственное замечание — это путь к скрипту. Пусть в данном случае (локальной системы для тестирования) это и не важно, но правила хорошего тона требуют переименовать адрес скрипта со стандартного на какой-либо уникальный. Для этого в каталоге /etc/phpmyadmin надо открыть файл apache.conf и в строке Alias прописать новый путь (скажем, mypath).

Теперь следует перезапустьть apache:
/etc/init.d/apache2 restart
Соответственно, путь к phpmyadmin изменится на http://192.168.0.207/mypath/
Настройка Apache в Linux
Таким вот образом мы перешли к конфигурированию Apache. Файлы конфигурации этого веб-сервера в случае с Debian (да и в большинстве других дистрибутивов Linux) находятся в каталоге /etc/apache2. Основные интересующие нас настройки расположены в каталогах mods-available и sites-available. Однако, следует учитывать что используются только те файлы конфигурации, на которые имеются ссылки из каталогов mods-enabled и sites-enabled, соответственно. Либо можно создавать свои файлы непосредственно в этих каталогах. Для начала определимся с типами файлов. Дело в том, что по умолчанию интерпретатор PHP будет обрабатывать только файлы с расширением .php, .pht и .phtml. Но нам, наверное, хотелось бы, добавить еще и .html к этому списку. По этому находим файл mime.conf в /etc/apache2/mods-available и ищем в нем строку, содержащую «php» (поиск во встроенном редакторе mc осуществляется по нажатию F7). Если не находим, то смотрим, где находится общий (системный) файл конфигурации типов. Строка должна начинаться с TypesConfig. Как правило, этот файл находится в корне каталога /etc и называется mime.types.
Примечание
Собственно, для случая с Debian 6 можно сразу открывать /etc/mime.types, а не искать настройки типов в конфигах Apache).
Открываем файл для редактирования, находим строку application/x-httpd-php и дописываем в конец строки html (без точки).

Типы настроены, переходим к созданию каталога для сайта. Тут было бы желательно расположить его в том же каталоге, что и на «живом» хостинге. Скорее всего, это будет каталог вида «/home/мия_пользователя/имя_сайта». Тут мы сталкиваемся с тем, что нам нужен пользователь: работать с сервисом httpd из-под root недопустимо. Для создания пользователя используется команда useradd, в качестве параметров к которой следует указать путь к домашнему каталогу пользователя и собственно имя пользователя. Пусть это будет userone:
useradd -d /home/user1 -m userone
Ключ -m указывает, что указанный при помощи -d каталог должен быть создан автоматически. Далее следует задать пароль при помощи команды passwd:
passwd userone
Теперь все готово к созданию сайта. Сменим пользователя на вновь созданного и создадим все необходимые каталоги:
su userone
mkdir /home/user1/site1
mkdir /home/user1/site1/logs
mkdir /home/user1/site1/www
exit
Каталоги готовы, теперь вернемся к Apache. Нам надо определить виртуальный хост для сайта site1 (пусть он называется site1.ru), Правильнее всего это сделать таким образом: в каталоге /etc/apache2/sites-available создается файл конфигурации вида имя_сайта.conf, в нашем случае это site1.ru.conf. В нем и прописываются все нужные настройки. Для нашего примера получаем примерно следующее:
<VirtualHost *:”80>
ServerName site1.ru
ServerAlias www.site1.ru
DocumentRoot /home/user1/site1/www
<directory /home/user1/site1/www>
AllowOverride All
Order allow,deny
allow from all
</directory>
ErrorLog /home/user1/site1/logs/error.log
LogLevel warn
CustomLog /home/user1/site1/logs/access.log combined
</VirtualHost>
Как видно, все параметры вложены в своеобразный тег VirtualHost, в качестве атрибута которого указывают адрес и порт, по которому доступен описываемый сайт. Вложенные параметры означают следующее:
- ServerName – доменное имя сервера
- ServerAlias – алиас сервера (можно указывать несколько таких параметров)
- DocumentRoot — корневой каталог сайта
- ErrorLog – путь и имя файла для записи логов ошибок
- LogLevel — уровень важности ошибки, начиная с которого информация должна попадать в лог CustomLog — путь и имя файла для записи логов доступа
Вложенная конструкция directory здесь описывает каталог, указанный в качестве домашнего (DocumentRoot). Строка Options AllowOverride All означает, что мы разрешаем перезаписывать любые настройки при помощи файлов .htaccrss. А следующие 2 строки определяют права доступа, в данном с любого адреса (обращаю внимание на то, что allow,deny пишется без пробела — это один параметр).
Примечание
Следует отметить, что directory может применяться при конфигурировании Apache не только внутри VirtualHost, но и в любом другом месте, где требуется задать права доступа для какого-либо каталога.
После того как файл конфигурации Apache для нового сайта готов, надо указать серверу, что этот файл надо задействовать. Для этого создадим симлинк на этот файл в каталоге /etc/apache2/sites-enabled. Делается это при помощи команды ln:
ln -s /etc/apache2/sites-available/site1.ru.conf /etc/apache2/sites-enabled/site1.ru.conf
Таким образом, мы теперь всегда можем выключить созданный файл из конфигурации, просто удалив ссылку на файл в sites-enabled, или подключить его вновь, создав ссылку заново.
Теперь протестируем получившуюся конфигурацию, перезапустив Apache:
/etc/init.d/apache2 restart
Теперь дело за малым — надо сообщить браузеру, что доменное имя site1.ru следует искать по IP-адресу нашей виртуальной машины. Для этого достаточно сделать соответствующую запись в файле hosts (он традиционно расположен в c:\windows\system32\drivers\etc\). В командной строке Windows (для Win7/Vista запустите её с правами администратора) выполните:
notepad.exe c:\windows\system32\drivers\etc\hosts
И допишите в конец:
192.168.0.207 site1.ru
Сохраните файл, запустите браузер и введите site1.ru в адресной строке. Откроется стандартная страница просмотра каталога через HTTP:
Index of /
Name Last modified Size Description
Apache/2.2.16 (Debian) Server at site1.ru Port 80
Отлично, наш первый сайт под Linux-VPS настроен и работает.
Установка FTP-сервера в Debian
После того, как Apache настроен, неплохо было бы залить контент на созданный сервер. Для этого нужен FTP-сервер. Возвращаемся к командной строке виртуальной машины Debian и пишем:
apt-get install proftpd
На запрос о варианте работы выбираем standalone, в результате чего FTP-сервер установлен, настроен и уже функционирует. Подключаемся любым FTP-клиентом (Filezilla, Total Commander и т.п.), используя настройки созданного ранее пользователя userone.

Теперь можно работать с созданным сайтом точно так же, как если бы он находился на реальном сервере в интернете.
2011-11-08 // Есть вопросы, предложения, замечания? Вы можете обсудить это на форуме !