как установить LAMP (linux + apache + mysql + php) на базе Ubuntu
9.10. Дополнительно покажу как настроить несколько не очевидных деталей.
Итак, поехали.
Установка LAMP
Установка LAMP в Ubuntu проходит удивительно просто. Заходим в
Система → Администрирование → Менеджер проектов Synaptic. После ввода
пароля находим вкладку Правка → Отметить пакеты для Задачи. В
появившемся окне ставим галочку напротив LAMP server и жмем OK. После
уже в самом менеджере нажимаем Применить. Если все сделано нормально, то
должна начаться загрузка пакетов и их дальнейшая установка. После
установки пакета MySQL Вас попросят ввести пароль для администратора
(root) MySQL. Его необходимо запомнить. Вот в общем то и все.
Набираем в браузере http://localhost/ и видим "It works!".
Настройка виртуальных хостов
Ни для кого не секрет, что разработку проектов нужно вести на
отдельном виртуальном хосте. Сайт1 должен быть доступен по URL
http://site1/, cайт2 — по URL http://site2/ и т.д. Настойка хостов в
Ubuntu тоже не сложная.
Набираем в консоли:
sudo gedit /etc/hosts
Откроется файл соответствия имен хостов ip адресам. По-умолчанию
должна быть запись 127.0.0.1 localhost. Она заставляет обращаться к
локальному компьютеру при вводе в браузере http://localhost/. Добавим
еще один хост с именем site1. В результате у нас должно получиться
следующее:
127.0.0.1 localhost site1
Сохраним и закроем редактор. Далее нам нужно включить виртуальный хост. Делается это путем ввода в консоли:
sudo a2ensite site1
Для отключения другая команда:
sudo a2dissite site1
Все хост настроен.
Настройка Apache
Все настройки apache лежат в папке /etc/apache2/. Главный конфигурационный файл apache находится здесь же, но о нем чуть позже.
Для удобства серверные файлы будут находится в папке /home/user/server/. В ней будут по папкам разделены файлы сайтов. Например site1 лежит в папке /home/user/server/site1, site2 - в папке /home/user/server/site2 и т.д. В папке /home/user/server/site1 создадим еще две папки для логов (log) и для самих файлов (www).
Для настройки хоста site1 нам понадобится папка /etc/apache2/sites-available. В ней содержится информация по всем возможным виртуальным хостам ubuntu. Создадим в ней файл site1 с таким содержанием:
<VirtualHost *:80> ServerAdmin webmaster@localhost e-mail администратора ServerName site1 # имя сервера DocumentRoot /home/user/server/site1/www # путь к документам DirectoryIndex index.php index.html index.htm # порядок поиска индексных файлов <Directory /home/user/server/site1/www> # настройка доступа для директории Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /home/user/server/site1/log/error.log # настройка папки с логами ошибок LogLevel warn # какие ошибки будем сохранять CustomLog /home/user/server/site1/log/access.log combined # настройка папки с логами доступов </VirtualHost>
Далее нужно перезагрузить Apache:
sudo /etc/init.d/apache2 reload
Идем в папку /home/user/server/site1/www и создаем там файл index.php с содержанием:
Вводим в браузере http://site1/ и видим настройки php.
Если Вы видите, что у на сервере установлена защита Suhosin Patch, то удалить его можно командой:
sudo apt-get remove php5-suhosin
или, если удалять Вы не хотите, eё можно отключить в настройках php.ini: suhosin.session.encrypt = Off. Смотрите ниже.
Настройка php
Конфигурационный файл php лежит в каталоге /etc/php5/apache2/. Для редактирования набираем в консоли:
sudo gedit /etc/php5/apache2/php.ini
и меняем следующие значения на:
magic_quotes_gpc = Off, register_globals = Off.
Эти настройки являются сугубо индивидуальными, Вы можете их
оставить по-умолчанию и не менять. Еще я бы посоветовал также
переместить папку для хранения сессий, например на
/home/user/server/sessions. Меняется она изменением директивы:
session.save_path = /home/user/server/sessions
По необходимости можно увеличить время жизни сессии на нужное Вам.
Для этого меняем директиву session.gc_maxlifetime. Значение указывать
в секундах.
Настройка Mysql
Как правило особых настроек для MySQL не требуется. Но если Вам
необходимо что-то изменить, то конфигурационный файл находится в
/etc/mysql/my.cnf. В некоторых случаях необходимо перенести файлы MySQL в другую папку. После внесения изменений сервер MySQL перегрузается командой:
sudo /etc/init.d/mysql reload
Включение mod_rewrite
mod_rewrite включается командой в консоли: sudo a2enmod rewrite Перезагружаем Apache:
sudo /etc/init.d/apache2 reload
В настойках виртуального хоста директива AllowOverride должна быть All
Пользователь apache
По-умолчанию процесс apache запускается от пользователя www-data.
Таким образом все файлы созданные apache, например через fopen(), в
ubuntu будут принадлежать пользователю www-data. Для того процесс
apache запускался от нужного нам пользователя нужно отредактировать
apache2.conf:
sudo gedit /etc/apache2/apache2.conf
меняем директивы User и Group на нужного нам пользователя и группу. Перерезагружаем apache.
|