blog

подписаться на обновления блога

4
Апр

Аналог Denwer на Ubuntu

Первый и самый необходимый инструмент для меня – это локальный сервер на компе. На windows данную функцию отлично выполняет Денвер, который к тому же легко устанавливается «в три щелчка мышью». Когда я себе поставил Ubuntu – решил что все-таки будет бред ставить какой-нибудь пакет поверх, или (что еще более маразматично) – Denwer на Wine. Итак, я поставил себе задачу настроить локальный сервер, причем так как мне это надо было. Сразу озвучу что я сделал, чтобы Вы могли понять – подойдет ли это Вам или нет.
Далее я опишу процесс установки PHP+Apache2+Mysql c настройкой виртуальных хостов. (аналог создания папок site.name в денвер).

Итак, сам процесс установки достаточно простой и я бы сказал что проблем с ним не возникло никаких:
1. Устанавливаем PHP

sudo apt-get install php5

На вопросы отвечаем y (yes)
2. Устанавливаем apache2

sudo apt-get install apache2

3. Устанавливаем mysql

sudo apt-get install mysql-server-5.0

4. Устанавливаем phpmyadmin

sudo apt-get install phpmyadmin

Когда выскочит окно настроек – не забываем указать что используем apache2! Иначе phpmyadmin грузиться не будет!
Если Вы все сделали правильно, по адресу http://localhost у Вас должна появляться надпись «It’s Work!»
А по адресу http://localhost/phpmyadmin – выскакивать панель авторизации phpmyadmin

Далее нам необходимо настроить виртуальные узлы.
Итак, для начала переходим в домашнюю папку и создаем там любой каталог, например public_html (я предпочел работать в этой папке – всегда под рукой, и точно ничего случайно не «заденешь»)

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

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite

Запустите приложение gedit и отредактируйте в нем новый файл настройки (mysite):

gksudo gedit /etc/apache2/sites-available/mysite

Измените корневой узел документов, указав в нем новое местоположение:
/home/<user>/public_html/
Измените «Directory directive» путем замены
<Directory /var/www/>
на
<Directory /home/user/public_html/>
Сохраните файл mysite

Активация нового виртуального узла
Для отключения виртуального узла по умолчанию и включения нового узла запустите терминал и выполните следующие две служебные программы в окне терминала:

sudo a2dissite default && sudo a2ensite mysite

Перезапустите сервер HTTP Apache:

sudo /etc/init.d/apache2 restart

После этого небольшого тюнинга по адресу http://localhost нам выводится содержимое папки «public_html». Но порой работаешь сразу над несколькими проектами – и теперь нам необходимо создать домены в этой папке с соответствующими привязками.

Итак, идем в папку /etc/apache2/sites-available/ и создаем там файл vhosts.conf

После этого открываем его любым текстовым редактором и добавляем туда такой текст:

<VirtualHost *:80>
ServerName elv.su
ServerAlias www.elv.su
DocumentRoot /home/<user>/public_html/elv.su
</VirtualHost>
<VirtualHost *:80>
ServerName second.my
ServerAlias www.second.my
DocumentRoot /home/<user>/public_html/second.my
</VirtualHost>

Сохраняем документ, идем в свою папку public_html и там создаем соответственно папки elv.su и second.my

Далее открываем в текстовом редакторе файл /etc/hosts и добавляем в конце следующий текст:

127.0.0.1 elv.su
127.0.0.1 second.my

После этого активируем vhosts.conf в apache:

cd /etc/apache2/sites-enabled/
sudo ln -s ../sites-available/vhosts.conf

Все! задача выполнена. Все, что теперь осталось – только перегрузить сервер

sudo /etc/init.d/apache2 restart

После этого, набрав в адресной строке адреса http://elv.su или http://second.my Вы должны увидеть содержимое соответствующих папок.

PS как выяснилось позже, у установленного таким образом апача отсутствует mod_rewrite, что делает невозможным использование .htaccess. Решение:

a2enmod rewrite
nano /etc/apache2/sites-available/default (меняем у элемента “AllowOverride none” на “AllowOverride all”)
/etc/init.d/apache2 restart (рестарт апача)

UPD. В связи с массовой невнимательностью при выполнении указанных действий вынужден закрыть комментарии: http://elv.su/node/konsultacii-zakryty/

Далее: ← Раньше:
  • Кот

    Всё сделал, всё работает, но phpmyadmin не запускается(( хотя указал апач2. Подскажи плиз что можно сделать.
    P.S. Автору респект, прикольный ресурс.

  • http://elv.su elvencedor

    чего пишет браузер? апач рестартил? sudo /etc/init.d/apache2 restart

  • Кот

    Апач рестартил. браузер пишет — Not Found
    The requested URL /phpmyadmin was not found on this server.
    Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.5 with Suhosin-Patch Server at localhost Port 80

  • http://elv.su elvencedor

    ну значит стопудово где-то косяк в установке проверяй еще раз внимательно переставляй все. Я раз 10 уже по этому мануалу ставил — все оке было. Не забывай при рестарте апача sudo делать если работаешь не под рутом. И смотри внимательно что пишет во время установки/после рестарта индейца

  • $p@M

    Аналогически не запускаеться phpmyadmin(( так как у Кота! Что делать?

  • http://elv.su elvencedor

    Аналогично как коту еще раз все внимательно и очень медленно перепроверять и делать сначала. Делал сам все по этому мануалу буквально пол-месяца назад, все оке :) Причем что в Ubuntu что Debian

  • http://SPolischook.pp.ua Serge

    Автор, спасибо за такое подробное описание!!!

  • http://videograph.by AndreyBel

    Для того что бы phpmyadmin запускался выполните команду:
    ln -s /usr/share/phpmyadmin/ /var/www

  • Feanor

    Аналогичная проблема была. Добавил в
    /etc/apache2/apache2.conf в конце вот эту строку:
    Include /etc/phpmyadmin/apache.conf
    и перезагрузил апач

    P.S. Спасибо автору. Отличная статья.

  • Ron_

    AndreyBel спасибище тебе
    ——
    и статья хороша автор молодец :roll:

  • http://blog.itmoskvin.ru Иван

    Жаль, что вышла только в апреле =) До этого искал что-то похожее и не смог найти. В основном только язвительные комментарии в стиле «копайте в гугле».

    Отличная статья! Удобно и достаточно быстро можно настроить наборчик для себя. Спасибо!

  • phgrey

    Скажите пожалуйста, только у меня строка
    … nano /etc/apache2/sites-available/default (меняем у элемента “AllowOverride …)

    вызывает вопрос — почему мы перенастраиваем файл default, если все наши настройки хранятся в mysite или я чего-то не понимаю

  • http://elv.su elvencedor

    2 phgrey
    Все правильно Вы заметили *CRAZY*
    Тупо если все копировать то не настроишь ;) поэтому голову в любом случае прикладывать надо.. на это и рассчитан пост — что человек хоть чуток сам разберется :-x

  • noob

    жуууть!!!
    пока сам прошарил что к чему с этим пхпмуадмЫн (дибильная привычка не читать комменты)
    так и… забыл установленный пароль и юзверя в придачу… пытался ремувить — бесполезно, юзерпасс сидит где-то там… где??? как его переустановить полностью??? (чтоб и имя админа и пароль выбрать)
    а? гуру хэлп!!!

  • http://vidrast.ru/118/ БaкинcкийPoмaн

    Оформление зачет :) Сами рисовали или тема?

  • http://elv.su elvencedor

    Рисовал проф дизайнер на заказ :)
    а тему делал я :) я как бы эта.. сам занимаюсь этим делом если не понятно ;)

  • Server

    Мне сервер выдает ошибку:
    Forbidden

    You don’t have permission to access / on this server.

    Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.5 with Suhosin-Patch Server at 192.168.1.7 Port 80

  • http://elv.su elvencedor

    Все правильно, значит сервак работает. Просто права на папку домена стоят 751 или еще ниже, вот и не видно ничего. Закинь туда сайт свой, или можешь выполнить команду в консоли: sudo chmod 777 -R -v ~/public_html (путь до твоей папки) — тогда выставятся права 777 на все папки и файлы в ней, и вместо надписи forbidden будет показывать содержимое папки.

  • D3

    подскажите что выбрать

    Чтение списков пакетов… Готово
    Построение дерева зависимостей
    Чтение информации о состоянии… Готово
    Пакет mysql-server-5.0 недоступен, но упомянут в списке зависимостей другого пакета.
    Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
    Однако следующие пакеты могут его заменить:
    mysql-server-core-5.1 mysql-server-5.1 mysql-cluster-server-5.1
    E: Для пакета mysql-server-5.0 не найдены кандидаты на установку

  • http://elv.su elvencedor

    Если немного призадуматься то можно догадаться что в репах новой убунту просто поменяли 5.0 на 5.1 ;)
    sudo apt-get install mysql-server-core-5.1 mysql-server-5.1 mysql-cluster-server-5.1

  • D3

    Спасибо просто решил уточнить.

  • D3

    до появления надписи «It’s Work!» и авторизации phpmyadmin дошол

    как перейти в домашнию папку и создать там катол

    напишите пожалуйста команды я ещё нуб в этом деле только учусь

  • http://elv.su elvencedor

    Команды написать не могу потому что я не знаю какой пользователь у Вас на компьютере!!! открываем домашний каталог в простом файл-менеджере щелкаем правой кнопкой мышки — создать папку. Все как в винде ;)

  • D3

    Спасибо.

    так же нашол команду mkdir и в домашней дериктории при помощи этой команды создал папку public_html

    ~$ mkdir public_html

  • http://elv.su elvencedor

    как вариант ;)

  • D3

    обискался… понимаю что таким же вариантом «руками и мышкой» просто можно создать фаил vhosts.conf, но я всётаки хочу создать этот фаил через Терминал подскажите команду для создания файлов.

  • http://elv.su elvencedor

    кури маны дорогой товарищ! )))) иначе ничему сам не научишься ;)
    а вообще все намного проще: набираем в терминале sudo gedit /путь-до-файла/имя.файла пишем в открывшемся редакторе все что надо, нажимаем сохранить — и он создает файл с заполненным содержанием
    ну или читай здесь: http://itshaman.ru/articles/7/komandy-linux

  • D3

    Класно получилось. Быстрее и практичней. Спасибо.

    ~$ sudo gedit /etc/apache2/sites-acailable/vhosts.conf

  • ks

    Здравствуйте! Сделал всё по-написанному…при перезагрузке Апача командой sudo /etc/init.d/apache2 restart выдаёт
    Syntax error on line 236 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/sites-enabled/vhost.conf: No such file or directory
    Копировал в файл текст
    »
    ServerName elv.su
    ServerAlias http://www.elv.su
    DocumentRoot /home//public_html/elv.su

    ServerName second.my
    ServerAlias http://www.second.my
    DocumentRoot /home//public_html/second.my
    »
    Он был не пустым…с таким содержимым:
    »
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www

    Options FollowSymLinks
    AllowOverride None

    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ «/usr/share/doc/»

    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128

    »
    пробовал вписывать указанное в статье и с этим и без этого..результат вышеописанный…
    Файл vhosts.conf создавал коммандой
    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/vhosts.conf
    Помогите пож-та)

  • http://elv.su elvencedor

    ппц… KS все напутал к чертям *CRAZY*
    1. Обрати внимание что у тебя стоит два слеша в пути:
    /home//public_html/second.my
    а должно быть
    /home/public_html/second.my
    и так везде.
    2. То то ты написал:

    Он был не пустым…с таким содержимым:

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    Options FollowSymLinks

    должен был увидеть не в vhost.conf а в mysite
    3. то что тебе выдает ошибку «Syntax error on line 236 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/sites-enabled/vhost.conf: No such file or directory» — ясно написано: нет такого файла у тебя.

    Сделай все с 0 внимательно аккуратно и вдумчиво, меняя переменные где надо на свои, без тупого копипаста. Тогда все получится, я уже раз 40 устанавливал сервер по этому мануалу.

  • ks

    После обеда займусь.
    Благодарю!
    Если что напишу здесь.

  • ks

    Извините, но это «Измените корневой узел документов, указав в нем новое местоположение:
    /home//public_html/» в какую строку файла «mysite» писать?

  • http://elv.su elvencedor

    ks я могу ответить только две вещи:
    1. ЕЩЕ РАЗ: БУДЬТЕ ВНИМАТЕЛЬНЫ! ВЫ ОПЯТЬ ТУ ЖЕ ОШИБКУ ДОПУСКАЕТЕ!!!!
    2. включайте мозг 8) это великая штука. Если самому неохота его включать — вызовите службу компьютерной помощи, потому как там все очень просто и легко, там видно все по аналогии.
    ЗЫ если не знаете английского — вообще зря взялись сервер настраивать, потому что знание языка хотя бы на уровне чтения — это основа администрирования.
    К сожалению не могу консультировать Вас по поводу каждой запятой — там их ооочень много. Внимательно читайте инструкцию и внимательно смотрите в файл, прежде чем задавать подобные вопросы

  • ks

    Язык на уровне чтения знаю…кое как. Опыта работы с Линуксом мало…а настраивать приходится!

  • ks

    С нуля..Апач то не перезагружается…всё с той же жалобой…не сносить же мне Апач, сервер и майадмин…

  • effect aka AK-S

    Возникла небольшая проблемка… Браузер не хочет заходить на [b]локльные[/b] домены без подключения к Интернету :( Пишет что работает в автономном режиме, и никуда не заходит… Как исправить?!

  • Roman

    Доброго времени суток.. У меня возник вопрос.. У меня на мульти-шаблонном сайте стоят пути до файлов css (/design/test/css/default.css), по данной инструкции он их не читает.. Подскажите ктонибудь, как данную проблемку исправить?

    П.С: с Ubuntu знаком буквально 3 дня..

  • http://elv.su elvencedor

    Роман, Убунту тут вообще ни при чем
    надо смотреть что за двиг, как правильно указывать пути и прочее
    firebug для firefox в руки — и вперед!

  • http://bonowheels.ru Владимир

    Спасибо за статью. Быстро, просто, понятно и эффективно.

  • http://elv.su elvencedor

    Владимир, наздоровье. Только учтите что эта статья написана по Ubuntu 9.04 Сейчас все немного сложнее ;) но мануалов в сети достаточно

  • Евгений

    Под ubuntu 10.10 вылетает ошибка у phpmyadmin

    «Не возможно загрузить расширение mysqli! Проверите настройки PHP »
    Вот сужу копаюсь думаю что делать!
    это появилось после
    1)sudo apt-get install php5
    2)sudo apt-get install apache2
    3)sudo apt-get install mysql-server-5.0
    4)sudo apt-get install phpmyadmin
    5)ln -s /usr/share/phpmyadmin/ /var/www (без этого phpmyadmin не грузился вообще)

  • yurik

    Добрый день!!
    Все вроде работает а вот дохожу до изменения корневого узла документов, и нечего не выходит он мне открывает все туже тестовую страницу в чем может проблема уже 5 раз пытаюсь настроить :(

  • yurik

    У меня проблема с подключением вертуальных хостов. Делаю как написан но нечего не выходит.он. всеравно открывает самую первую. Подскажите как быть

  • http://elv.su elvencedor

    Юрик, перезапустить Апач :) проверить еще раз все внимательно, где-то пропускаешь что-то.
    ЗЫ инструкция писалась под Ubuntu 9.10 поэтому в 10.04 возможны незначительные изменения.

  • yurik

    еще раз здрасть.

    на

    Сохраните файл mysite

    Активация нового виртуального узла
    Для отключения виртуального узла по умолчанию и включения нового узла запустите терминал и выполните следующие две служебные программы в окне терминала:
    sudo a2dissite default && sudo a2ensite mysite

    Перезапустите сервер HTTP Apache:
    sudo /etc/init.d/apache2 restart

    После этого небольшого тюнинга по адресу http://localhost нам выводится содержимое папки «public_html». Но порой работаешь сразу над несколькими проектами – и теперь нам необходимо создать домены в этой папке с соответствующими привязками.

    после этого небольшого тюнинга у меня по адрессу http://localhost не чего не отображается.
    В чем можкт быть проблема?????

  • ЁЁ

    Спасибо =)

  • http://elv.su elvencedor

    yurik я же написал что надо не просто копипастить а мозГ включать
    скорее всего либо не создал папку public_html
    либо тупо скопипастил вот это: /home/user/public_html/ а надо все user поменять на имя своего пользователя! Укажи реальный путь до новой своей папки public_html

  • ГОша

    ПРивет!
    Спасибо тебе огромное за эту статью!)) Долго я искал аналог денвера на линуксе)
    И у меня к тебе всего 1 вопрос:
    Как мне изменить настройки myphpadmin: PHP magic_quotes_gpc setting? в файле php.ini? а в какой папке он находится? никак не могу найти..

  • http://elv.su elvencedor

    Гоша, я могу тебе конечно сказать где это :) но я привык давать людям самим подумать ;)
    Используй команду поиска в консоли
    locate -i php.ini
    и не забывай что тебе надо перезапустить сервер после внесения изменений в php.ini
    Удачи!

  • http://www.repair163.ru Гоша

    Спасибо))
    в принципе я сам догадался)
    Пока всё работает идеально, только есть небольшая проблема с joomla 1.0.x, не открывает некоторые страницы, хотя это возможно с самой джумлой)
    А какой командой выключить сервер?
    Как потом включить?)

  • http://elv.su elvencedor

    я имел в виду вирт сервер Апач… sudo /etc/init.d/apache2 restart
    а вообще сервер — это весь твой комп в данном случае *CRAZY*

  • neo_oien

    День добрый. При попытке зайти в папку secomd.my выдается ошибка:

    Forbidden
    You don’t have permission to access / on this server.
    Apache/2.2.16 (Ubuntu) Server at second.my Port 80

    Видел выше аналогичную проблему. Права до 777 поднял. Не помогло. Подскажите пожалуйста, в чем может быть дело.

  • http://elv.su elvencedor

    neo_oien:
    1. Права на папки
    2. Проверь не закрыты ли порты на локальной машине

  • neo_oien

    Права проставил вроде.

    А как проверить порты? (прошу прощения за тупые вопросы)

    Еще почему-то при переходе на /localhost/phpmyadmin/ предлагается открыть или загрузить файл php

  • http://elv.su elvencedor

    Значит дело не в портах :)
    у Вас тупо не работает вирт сервер Апач *CRAZY*
    Еще раз внимательно по инструкции выполняйте установку сервера, против невнимательности нет помощи кроме как «спасение утопающих дело рук…» *PARDON*

  • neo_oien

    Значит буду пробовать. Спасибо за помощь =)

  • http://elv.su elvencedor

    На здоровье. Удачи!

  • neo_oien

    День добрый, это снова я :-D .

    Проблема доступа решена. Но при попытке зайти в phpmyadmin или просто на сайт в localhost мне не открывается страница, а загружается файл. Подскажите, если можете. Заранее спасибо. =)

  • http://elv.su elvencedor

    neo_oien прочитайте внимательно что я писал двумя комментами выше. У Вас некорректно работает апач, копайте в ту сторону.

  • neo_oien

    Есть копать в ту сторону! =)

  • Pal1

    Спс AndreyBel, автор маладца,всьо коротко и ясно.

  • Alex

    При перезапуске апача вот что он мне выдаёт! %)
    DocumentRoot [/www/pma.local/www] does not exist
    Syntax error on line 18 of /etc/apache2/sites-enabled/pma.local:
    Invalid command ‘php_admin_value’, perhaps misspelled or defined by a module not included in the server configuration
    Action ‘configtest’ failed.
    The Apache error log may have more information.
    …fail!

  • Александр

    Здравствуйте, следовал инструкции в результате статичные страницы работают(html), а те у которых расширение php браузер предлагает сохранить файл, а еще при рестарте сервера выдается ошибка:
    (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    Action ‘start’ failed.
    The Apache error log may have more information.
    как это исправить?

  • http://elv.su elvencedor

    Alex, Вы уверены что делали точно по мануалу? Я буквально неделю назад сам переставлял систему — делал все точь-в-точь по мануалу, никаких косяков! Ищите проблему во внимательности!

  • http://elv.su elvencedor

    Александр, не уверен что у Вас Ubuntu Desktop. Или же она уже хорошо переиначена. Что-то с портами, ищите ошибку :)

  • http://www.vasilevsky.net/ Igor Vasilevsky

    Павел, спасибо!
    Ubuntu 11.04 — полет прошел нормально (Drupal 7.12 встал, как штык). Шел строго по мануалу, ничего не изменял.

  • vladws

    как получить права root?

  • elvencedor

    Получить права очень просто: добавляйте перед вводом команды sudo и будет выполнение команд от имени суперадминистратора.

  • elvencedor

    наздоровье :) если бы все делали внимательно и по мануалу то столько комментов бы не было к статье )))