LAMP — это аббревиатура от Linux Apache MySQL PHP. То есть это полноценный Web-сервер. Так как ноутбук это мобильное устройство, а в моём случае это даже не ноутбук, а нетбук MSI Wind, то я его часто ношу с собой. Иногда между встречами образуется достаточно серьёзный промежуток времени и его хочется потратить с большей продуктивностью. Поэтому я и решил установить на нетбук LAMP. Установка LAMP описана очень подробно во многих источниках, но при установке у меня было одно маленькое требование, которое нигде, где я смотрел, не описано.
Процесс установки LAMP в Ubuntu элементарен:
- Открываем менеджер пакетов Synaptic (Система → Администрирование → Менеджер пакетов Synaptic).
- В меню Synaptic выбираем Правка → Отметить пакеты для Задачи….
- В открывшемся окне ставим галочку напротив мета-пакета LAMP и щёлкаем на кнопке OK.
Настроить LAMP немного сложнее. Первое что я делаю, так это изменяю папку отображаемую web-сервером Apache с /var/www/ на /home/serg/Projects/project1. Для этого редактиру конфигурационный файл Apache:
sudo nano /etc/apache2/sites-available/default
И заменяю в нём все упоминания /var/www/ на /home/serg/Projects/project1
Делаю я это из-за того что раздел /home при установке я вынес в отдельный логический диск и если нужно будет переустановить систему, то раздел /var потеряется, а /home — нет.
Но этот способ подходит, если у вас только один проект, а что если проектов несколько? Ничего сложного — создадим для каждого проекта виртуальных хост:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/project2
sudo nano /etc/apache2/sites-available/project2
Указываем в файле имя на которое должен откликаться этот хост путём добавления перед директивой DocumentRoot директивы ServerName c желаемым именем, изменяем значение директивы AllowOverride на All (это я делаю так как использую модуль Apache mod_rewrite), изменяем домашнюю папку хоста и имя файла в который будут писаться ошибки на нужные пути, а также удаляем лишние строчки. Вот как выглядит файл у меня:
NameVirtualHost *
<VirtualHost *>
ServerName project2
ServerAdmin webmaster@localhost
DocumentRoot /home/serg/Projects/project2
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/serg/Projects/project2>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error_project2.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access_project2.log combined
ServerSignature On
</VirtualHost>
Теперь установим модуль Apache mod_rewrite:
sudo a2enmod rewrite
Для того чтобы компьютер знал что нужно обращаться к себе для отображения сайта http://project2 нужно указать это в файле /etc/hosts:
sudo nano /etc/hosts
Добавляем к строчке 127.0.0.1 имя виртуального хоста:
127.0.0.1 localhost project2
Активируем виртуальный хост:
sudo a2ensite project2
Перезапускаем web-сервер Apache:
sudo /etc/init.d/apache2 restart
Вот теперь у нас LAMP настроен и самое время перейти к моему маленькому требованию. Так как большую часть времени я работаю за нетбуком, когда он подключён к Интернету, то мне не нужно, чтобы в это время работал LAMP и кушал хоть какие-либо ресурсы, а по-умолчанию Apache и MySQL запускаются при старте системы. Для решения этой задачи можно воспользоваться утилитой rcconf:
sudo apt-get install rcconf
sudo rcconf
Убираем «галочки» у Apache и MySQL.
Всё, теперь при загрузке компьютера Apache и MySQL запускаться не будут. Чтобы из включить нужно выполнить:
sudo /etc/init.d/mysql start && sudo /etc/init.d/apache2 start
Если есть какие-либо вопросы по этой теме — оставляйте их в комментариях. Я не админ, но много времени потратил на разбор того как работает web-сервер и возможно я на что-нибудь да отвечу.
Да, есть такое дело, сам на днях купил Acer Aspire One. Но я думаю поставить на него XAMPP, вот тут его делают: http://www.apachefriends.org/en/index.html
Также предлагаю попробовать rapache — удобная конфигурялка виртуальных хостов (http://kawaikunee.blogspot.com/2009/01/ubuntu.html).
О! Спасибо за ссылки!
Кстати, я заметил что вы не так давно начали вести свой блог о Linux. А не хотите присоединиться к этому блогу? Так ваши записи, на мой взгляд очень достойные внимания, прочитает большее количество людей. Если что пишите на почту или в Jabber (они есть в виде картинок в правой колонке).
Кстати, обнаружил вот интересный проект. Подборка разных готовых блованок для серверов.
http://www.turnkeylinux.org/
Если VirtualHost нужно повесить на нестандартный порт, то нужно использовать:
Listen 2222
< VirtualHost _default_:2222 >
или
Listen 2222
NameVirtualHost 10.5.5.50
< VirtualHost 10.5.5.50:2222 >
Где 10.5.5.50 это IP адрес сервера в локальной сети.
P.S.
Перед VirtualHost и после номера порта пробелы лучше убрать 🙂
Спасибо за пост, все работает как нужно, а как проверять почту sendmail? Локально в целях разработки?
srazil, советую спросить у google или nigma. На тему «sendmail локально», а ещё можно использовать postfix, так как он в настройке проще sendmail.
Было бы очень приятно увидеть на данном сайте пост как настроить postfix, sendmail или любую другую почтовую программу, в разработке они необходимы…
1. Я не системный администратор, поэтому всегда использовал для таких программ «самые лучшие настройки». Тестирование же отправки писем я делаю на серверах в интернете.
2. Мне кажется, что в интернете должно быть много статей на эту тему.
Для устранения предупреждения:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
необходимо в файл /etc/apache2/httpd.conf добавить строчку:
ServerName localhost
Спасибо, не знал, что в ubuntu есть утилиты для включения/выключения модулей апач… До этого приходилось пользоваться символическими ссылками.
Очень интресно, но теперь меня интересуют несколько вопросов…
раньше я работал в винде на денвере, для доступа на свои проекты я использовал следующие пути
http://127.0.0.1/project1
http://127.0.0.1/project2
…
то есть если у меня новый проект то просто добавляю папку projectN
потом настроил чтоб мой сервак был виден с внешки и на него можно было зайти по ссылке, например
http://10.22.102.1/project1
просто у меня статический IP и это удобно
как сделать подобное в юбунте, то есть если у меня есть проект1, то
http://localhost/project1
проект2
http://localhost/project2
чтоб просто добавлял папки с названиями проектов, или все-таки придется для каждого создавать вирт. хост?
и как сделать его видимым с внешки, и как можно будет с внешки ссылаться на разные проекты?
Максим По., естественно настроить работать Apache также как в Денвере можно, но, к сожалению, я не системный администратор и у меня нет времени разбираться как это можно сделать. Если вы сможете это сделать или найдёте заметку о том как это сделать, то я буду очень признателен, если вы поделитесь информацией со мной.
У меня есть сайты на домашнем сервере, которые доступны извне. Но я вместо имён использую порты. Мои конфиги выглядят так:
/etc/apache2/
#NameVirtualHost *:80
#Listen 80
#<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
# Listen 443
#</IfModule>
/etc/apache2/site-available/project1
Listen 6543
<VirtualHost _default_:6543>
ServerAdmin email@example.com
DocumentRoot /home/serg/www/project1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/serg/www/project1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error-project1.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-project1.log combined
</VirtualHost>
Соответственно сайт виден из сети Интернет по адресу http://«IP-адрес»:6543
Максим По. — никто не мешает вам добавлять папки в /var/www — тоже самое, что и в Denwer. http://localhost по умолчанию открывается из /var/www точно также, как в Denwer из home/localhost/www.
Т.е. добавляете папку project1 или project2 в папку /var/www и получаете по http://127.0.0.1/project1 или http://127.0.0.1/project2 …. Виртуальные хосты настраивать не надо, в LAMP уже настроен по умолчанию один виртуальный хост, достаточно для работы как у вас описано. По умолчанию Apache не запрещает доступ с любого интерфейса, т.е. аналогично будет работать и по внешнему IP http://10.22.102.1/project1 .
Есть только одно НО — следует выставлять владельцев содержимого этих папок самостоятельно каждый раз после добавления (пользователь www-data и группа www-data, если вы используете настройки по умолчанию)
а как собственно зайти в панель phpmyadmin?
…предпологал что будет как и в xampp: http://localhost/phpmyadmin/
anton, так и есть. Запустить Apache и MySQL и открыть в браузере http://localhost/phpmyadmin/
мага полезная статья. Очень благодарен
Ну вообще — ни чего настраивать не надо — Апач отдает папки из /var/www/ по алфавиту. Если настроены виртуальные хосты. допустим http://home.ru то для тестирования достаточно завести например
http://test.home.ru
http://test2.home.ru и так далее