LAMP на ноутбуке

2 марта 2009
Рубрика: Ubuntu, Заметки
Теги: , , , , ,

Zeboton

LAMP — это аббревиатура от Linux Apache MySQL PHP. То есть это полноценный Web-сервер. Так как ноутбук это мобильное устройство, а в моём случае это даже не ноутбук, а нетбук MSI Wind, то я его часто ношу с собой. Иногда между встречами образуется достаточно серьёзный промежуток времени и его хочется потратить с большей продуктивностью. Поэтому я и решил установить на нетбук LAMP. Установка LAMP описана очень подробно во многих источниках, но при установке у меня было одно маленькое требование, которое нигде, где я смотрел, не описано.

Процесс установки LAMP в Ubuntu элементарен:

  1. Открываем менеджер пакетов Synaptic (Система → Администрирование → Менеджер пакетов Synaptic).
  2. В меню Synaptic выбираем Правка → Отметить пакеты для Задачи….
  3. В открывшемся окне ставим галочку напротив мета-пакета 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-сервер и возможно я на что-нибудь да отвечу.

17 комментариев для “LAMP на ноутбуке”

  1. Kawaikunee2 марта 2009 ~ 14:05

    Да, есть такое дело, сам на днях купил Acer Aspire One. Но я думаю поставить на него XAMPP, вот тут его делают: http://www.apachefriends.org/en/index.html
    Также предлагаю попробовать rapache — удобная конфигурялка виртуальных хостов (http://kawaikunee.blogspot.com/2009/01/ubuntu.html).

  2. Zeboton2 марта 2009 ~ 14:23

    О! Спасибо за ссылки!
    Кстати, я заметил что вы не так давно начали вести свой блог о Linux. А не хотите присоединиться к этому блогу? Так ваши записи, на мой взгляд очень достойные внимания, прочитает большее количество людей. Если что пишите на почту или в Jabber (они есть в виде картинок в правой колонке).

  3. Softovick10 марта 2009 ~ 18:20

    Кстати, обнаружил вот интересный проект. Подборка разных готовых блованок для серверов.
    http://www.turnkeylinux.org/

  4. Zeboton2 октября 2009 ~ 15:28

    Если 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 и после номера порта пробелы лучше убрать 🙂

  5. srazil17 февраля 2010 ~ 11:53

    Спасибо за пост, все работает как нужно, а как проверять почту sendmail? Локально в целях разработки?

  6. Zeboton17 февраля 2010 ~ 13:30

    srazil, советую спросить у google или nigma. На тему «sendmail локально», а ещё можно использовать postfix, так как он в настройке проще sendmail.

  7. srazil17 февраля 2010 ~ 22:54

    Было бы очень приятно увидеть на данном сайте пост как настроить postfix, sendmail или любую другую почтовую программу, в разработке они необходимы…

  8. Zeboton17 февраля 2010 ~ 23:00

    1. Я не системный администратор, поэтому всегда использовал для таких программ «самые лучшие настройки». Тестирование же отправки писем я делаю на серверах в интернете.

    2. Мне кажется, что в интернете должно быть много статей на эту тему.

  9. Zeboton19 марта 2010 ~ 14:29

    Для устранения предупреждения:
    Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
    необходимо в файл /etc/apache2/httpd.conf добавить строчку:
    ServerName localhost

  10. Sweefy10 апреля 2010 ~ 05:58

    Спасибо, не знал, что в ubuntu есть утилиты для включения/выключения модулей апач… До этого приходилось пользоваться символическими ссылками.

  11. Максим По.1 сентября 2010 ~ 00:08

    Очень интресно, но теперь меня интересуют несколько вопросов…
    раньше я работал в винде на денвере, для доступа на свои проекты я использовал следующие пути
    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
    чтоб просто добавлял папки с названиями проектов, или все-таки придется для каждого создавать вирт. хост?
    и как сделать его видимым с внешки, и как можно будет с внешки ссылаться на разные проекты?

  12. Zeboton1 сентября 2010 ~ 06:37

    Максим По., естественно настроить работать 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

  13. Softovick7 сентября 2010 ~ 14:37

    Максим По. — никто не мешает вам добавлять папки в /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, если вы используете настройки по умолчанию)

  14. anton26 сентября 2010 ~ 14:06

    а как собственно зайти в панель phpmyadmin?
    …предпологал что будет как и в xampp: http://localhost/phpmyadmin/

  15. Zeboton27 сентября 2010 ~ 08:52

    anton, так и есть. Запустить Apache и MySQL и открыть в браузере http://localhost/phpmyadmin/

  16. Gansik26 ноября 2010 ~ 22:27

    мага полезная статья. Очень благодарен

  17. Владимир30 апреля 2012 ~ 22:36

    Ну вообще — ни чего настраивать не надо — Апач отдает папки из /var/www/ по алфавиту. Если настроены виртуальные хосты. допустим http://home.ru то для тестирования достаточно завести например
    http://test.home.ru
    http://test2.home.ru и так далее

Ваш комментарий

*