Как установить Apache2 и настроить для работы с Drupal.

Задача: Получить работающую CMS Drupal на локальном компьютере для отладки приложений.

1. Устанавливаем вэб сервер apache2 + PHP5 + MySQL + phpmyadmin

sudo aptitude install apache2 php5 mysql-client mysql-server phpmyadmin libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql

В сумме пакеты "весят" около 46 Мб.

И создаём ссылку на phpmyadmin

sudo ln -s /etc/phpmyadmin /var/www

2. Проверяем работоспособность установленных компонентов

По умолчанию файлы web приложений находятся в папке:

/var/www

А вэб сервер доступен по адресу:

http://localhost

Если сервер работает нормально то вы должны увидеть надпись:

It Works!

phpmyadmin доступен по адресу:

http://localhost/phpmyadmin

3. Создаем виртуальный хост

Создаем папку в которой у нас будут находится файлы сайта, на пример:

mkdir /home/%username%/web/mysite

и кладем в нее фалы drupal (Скачать можно с http://drupal.ru)

Затем открываем файл /etc/hosts

kdesudo kate /etc/hosts

и добавляем в него строчку

127.0.1.1 mysite

Конечно в место mysite можно написать все что угодно, mysite приведено в качестве примера. Это делается для того, чтобы наш сайт был доступен по по этому адресу. В данном случае по http://mysite

Так же, чтобы апач не выдавал ошибку

Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

при его перезагрузке добавляем в /etc/hosts в первую строчку название вашего компьютера.

127.0.0.1 localhost.localdomain localhost my-desktop
127.0.1.1 my-desktop
127.0.1.1 mysite

Где my-desktop - имя вашего компьютера.

Теперь настраиваем виртуальный хост в apache

Фалы конфигурации apache2

/etc/apache2/ - Основная папка
|
|___ /mods-available - доступные модули apache
|
|___ /mods-enabled - подключенные модули apache
|
|___ /sites-available - доступные сайты
|
|___ /sites-enabled - подключенные сайты
|
|____apache2.conf - основной файл конфигурации apache2

В папке sites-available находятся файлы конфигурация виртуальных хостов.

А в папке sites-enabled находятся линки на файлы конфигураций из sites-available.

Это позволяет легко и быстро включать и выключать сайты, путем добавления или удаления линков из sites-enabled.

Тоже самое касается и модулей.

Создаем файл конфигурации хоста mysite

kdesudo kate /etc/apache2/sites-available/mysite

в который добавляем

<VirtualHost *:80>
  ServerAlias mysite www.mysite
  DocumentRoot /home/usernsme/web/mysite
  <Directory home/username/web/mysite/>
    AllowOverride All
  </Directory>
</VirtualHost>

Документация по виртуальным хостам Apache

Затем включаем наш виртуальный хост.

В apache2 для этого существуют специальные команды:

a2ensite, a2dissite, a2enmod, a2dismod. Всё что они делают - проставляют и удаляют ссылки в соответствующих каталогах.

sudo a2ensite mysite

И включаем модуль rewrite для работы "чистых ссылок"

sudo a2enmod rewrite

Создаем базу mysql. Лично я использую для работы с MySQL phpmyadmin.

http://localhost/phpmyadmin

Перезапускаем apache

sudo /etc/init.d/apache2 restart

и вводим в браузере http://mysite

Возможно, вам понадобиться установить права на запись на папку и вложенные подкаталоги где находится ваш сайт.

chmod -R 777 /home/username/web/mysite/

Так же не забудьте создать папку files (нужна для работы Drupal)

mkdir /home/username/web/mysite/files

и дать ей права на запись

chmod 777 /home/username/web/mysite/files

Если у вас не будут работать "чистые ссылки" удостоверьтесь что в директории с друпалом есть файл .htaccess У меня он почему то упорно не хотел разархивироваться.

Комментарии (68)

0
GoodSeeker - 9 Март, 2011 - 13:06

я пробовал - НЕ сработало: MySql - сброс пароля

При вводе "mysql -u root -p" получаю ответ: "ERROR 1045 (28000): Access denied for user 'fonarik'@'localhost' (using password: NO)"

0
picaro - 9 Март, 2011 - 13:18
Изображение пользователя picaro.

$ sudo su
# /etc/init.d/mysql stop
# mysqld --skip-grant-tables
# mysql
mysql> update mysql.user set password = PASSWORD('1') where user = 'root';
mysql> FLUSH PRIVILEGES;
mysql>quit
# /etc/init.d/mysql restart

После этого пароль у рута должен быть "1"

0
GoodSeeker - 9 Март, 2011 - 15:02

спасибо Вам.
Все сделал как вы написали - вроде все заработало.

Были строчки warning, что с ними делать?
После:
mysqld --skip-grant-tables

Выдало:
Warning: World-writable config file '/etc/mysql/my.cnf' is ignored
110309 13:55:46 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

110309 13:55:46 [ERROR] Aborting

110309 13:55:46 [Note] mysqld: Shutdown complete

0
dyug - 9 Март, 2011 - 15:26

"Warning: World-writable config file '/etc/mysql/my.cnf' is ignored"
Какое слово здесь непонятно?
пользуясь гуглопереводчиком выясняем: Предупреждение: World-записи конфигурационный файл "/ и т.д. / MySQL / my.cnf 'игнорируется

Корректирую: файл /etc/mysql/my.cnf доступен для записи любому, посему (исходя из понятия безопастности) игнорируем.
Решение: установить соответствующие права указанного файла
показываю пример:
ls -la /etc/mysql/my.cnf
-rw-r--r-- 1 root root 3865 Авг 27 2009 /etc/mysql/my.cnf

"Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!"
Тут кажется тоже все достаточно ясно написано...
Ну низзя мускуль пускать от рута, надо от его юзверя, ака mysql

переход на данного пользователя осуществляется командой sudo -u mysql -s
разумеется,это или от рута, или от реального пользователя с соответствующей прописью в /etc/sudoers

0
GoodSeeker - 9 Март, 2011 - 13:21

{решено} - пароль сбросил
решение тут

PS
проверьте пожалуйста, правильно ли все там, может я что пропустил.

0
Vorobey - 8 Июль, 2012 - 16:15
Изображение пользователя Vorobey.

Подскажите ка можно сбросить пароль на PhpMyAdmin ?
Я правильно понял пользователь root ?

0
first_bebeshka - 20 Август, 2012 - 17:45

подскажите пожалуйста, сделала всё как написано на форуме, выскакивает ошибка когда пытаюсь перезагрузить апач
$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

в хостах все прописано
127.0.0.1 localhost.localdomain localhost dm-desktop
127.0.1.1 dm-desktop
127.0.1.1 mysite

в чем может быть дело?

0
DarkneSS - 20 Август, 2012 - 21:03
Изображение пользователя DarkneSS.

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

0
lyol.val - 20 Август, 2012 - 23:34

В apache2.conf ввести ServerName "mysite" (можно в самом начале файла), перезагрузить апача

0
ping - 17 Март, 2013 - 22:23
Изображение пользователя ping.

При попытке открытия сайта появляется ошибка:
Forbidden
You don't have permission to access /index.html on this server.

Все решения, которые нашел в интернете, касались редактирования файла httpd.conf
У себя такого файла не нашел.
Это все, что лежит в директории /etc/apache2:

apache2.conf  envvars  mods-available  ports.conf       sites-enabled
conf.d        magic    mods-enabled    sites-available

./conf.d:
charset  localized-error-pages  other-vhosts-access-log  security

./mods-available:
...

./mods-enabled:
...

./sites-available:
default  default-ssl  mysite

./sites-enabled:
000-default  mysite

0
lyol.val - 17 Март, 2013 - 22:45

У себя такого файла не нашел.
Теперь - apache2.conf (https://help.ubuntu.com/12.04/serverguide/httpd.html)

0
ping - 18 Март, 2013 - 22:02
Изображение пользователя ping.

В apache2.conf можно изменить только доступ к .htaccess
AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

В sites-enabled/mysite написано AllowOverride All
Где-то еще выставлен запрет, только не найду где...

0
lyol.val - 19 Март, 2013 - 08:07

Где-то еще выставлен запрет, только не найду где...
не-а, не запрет :)
Есть у меня подозрение, что у вас что-то неправильно с путями (ваша ошибка говорит о том же)...
Чтобы переубедить меня, покажите
что у вас document root (показывается ли its works!, если вбить http://localhost?),
какой путь прописан в конструкции в mysite,
путь к индекс-файлу в файловой системе и что вы вбиваете в адресной строке браузера...

0
ping - 19 Март, 2013 - 21:22
Изображение пользователя ping.

Раньше была надпись "its works", сейчас вижу только директория phpmyadmin

Путь к сайту прописан верный
  <Directory "/home/joker/web/mysite/">
В этой директории лежит index.html.

При попытке открыть http://mysite или http://mysite/index.html получаю ошибку
Forbidden

You don't have permission to access /index.html on this server.

0
MiraMaX166 - 20 Март, 2013 - 16:54
Изображение пользователя MiraMaX166.

Смотрите внимательно, какие права даны на каталог, в котором лежит Ваш index.html, да и на сам файл(ы) тоже проверьте ;-)

0
ping - 20 Март, 2013 - 21:36
Изображение пользователя ping.

на каталог 640
на файл 740

0
lyol.val - 20 Март, 2013 - 22:09

Еще раз: document root что прописано?
Если путь в DocumentRoot - такой же как в Directory, попробуйте дописать
<Directory /ПУТЬ/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

(скопируйте из дефолтного)
Если путь - /var/www/ - пользователя www-data добавить в группу владельца с правами чтения/исполнения на каталог сайта... (или переписать)
Посмотрите пользователя по ctrl-esc с фильтром на apache - он с вашими правами 0, ни владелец, ни в группе...

0
ping - 20 Март, 2013 - 23:07
Изображение пользователя ping.

спасибо, проблема решена.
у пользователя www-data не было прав на чтение /var/www