Задача: Получить работающую CMS Drupal на локальном компьютере для отладки приложений.
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
По умолчанию файлы web приложений находятся в папке:
/var/www
А вэб сервер доступен по адресу:
Если сервер работает нормально то вы должны увидеть надпись:
phpmyadmin доступен по адресу:
Создаем папку в которой у нас будут находится файлы сайта, на пример:
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.
Перезапускаем 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)
я пробовал - НЕ сработало: MySql - сброс пароля
При вводе "mysql -u root -p" получаю ответ: "ERROR 1045 (28000): Access denied for user 'fonarik'@'localhost' (using password: NO)"
$ 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"
спасибо Вам.
Все сделал как вы написали - вроде все заработало.
Были строчки 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
"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
{решено} - пароль сбросил
решение тут
PS
проверьте пожалуйста, правильно ли все там, может я что пропустил.
Подскажите ка можно сбросить пароль на PhpMyAdmin ?
Я правильно понял пользователь root ?
подскажите пожалуйста, сделала всё как написано на форуме, выскакивает ошибка когда пытаюсь перезагрузить апач
$ 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
в чем может быть дело?
В конфиге апача указать адрес, наверно.
В apache2.conf ввести ServerName "mysite" (можно в самом начале файла), перезагрузить апача
При попытке открытия сайта появляется ошибка:
Все решения, которые нашел в интернете, касались редактирования файла 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
Теперь - apache2.conf (https://help.ubuntu.com/12.04/serverguide/httpd.html)
В 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
Где-то еще выставлен запрет, только не найду где...
не-а, не запрет :)
Есть у меня подозрение, что у вас что-то неправильно с путями (ваша ошибка говорит о том же)...
Чтобы переубедить меня, покажите
что у вас document root (показывается ли its works!, если вбить http://localhost?),
какой путь прописан в конструкции в mysite,
путь к индекс-файлу в файловой системе и что вы вбиваете в адресной строке браузера...
Раньше была надпись "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.
Смотрите внимательно, какие права даны на каталог, в котором лежит Ваш index.html, да и на сам файл(ы) тоже проверьте ;-)
на каталог 640
на файл 740
Еще раз: 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, ни владелец, ни в группе...
спасибо, проблема решена.
у пользователя www-data не было прав на чтение /var/www