Хочу подробно описать свой первый опыт установки LAMP.
Дело было так. Поставил я Ubuntu 10.10 (Maverick Meerkat). Настроил как надо, пришло время ставить Apache. Командная строка и поехали. Все приложения скопом:
sudo apt-get install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl phpmyadmin
Пока курил маны и настраивал virtualhosts забыл проверить как собственно все установилось, строка:
http://localhost/tools/phpmyadmin/index.php
вернула 404, при том что
http://llocalchost/ , торжественно утверждает "it's works".
А я хорошо помню что во время утсановки вводил пароль для mysql потом и для самого phpmyadmin. И apt-get ни на что не матерился. По скольку с настройкой lamp на linux я ранее не сталкивался (както все denwer+windows знаетели), соответственно и где проверять тоже не знал. Поэтому открыл консоль и попробовал старым добрым методом (в windows всегда срабатывало...), перестановку:
sudo apt-get remove phpmyadmin
sudo apt-get install phpmyadmin
Строчка в браузере, аля:
http://localhost/tools/phpmyadmin/index.php
опять же is dead.
Потом пробую вместо remove использовать purge, результат тот же.
Тогда сношу весь LAMP и все установленные модули:
sudo apt-get purge mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl phpmyadmin
apt-get Матерится что не все может удалить (о боже какой дурак удалил aptitude, там все было понятно!!!), доудаляю эти пакеты позже.
Открываю статью типа "Ставим linux+apache+mysql+php" и проверяю заново, что же я мог не правильно сделать.
В частности смотрел по этой:
http://www.yaap.info/page/ustanovka-i-nastrojka-lamp-linuxapachemysqlphp-v-ubuntu, но там ни чего такого чего не было бы в десятке других таких статей предложенных google search. (К сожалению подобная инструкция на этом форуме оказалась устаревшая и слишком замудренная для начинающего, хотя сейчас уже не выглядит такой страшной) ).
Там был предложен к установке более короткий вариант модулей, чем тот что я ставил раньше, ну да ладно, мне лишь бы работало. Все поставил проверил, даже сверился с другими манами и .. не судьба.
В конце концов мне это надоело и я поставил phpmyadmin вручную, выделив под это отдельный хост
http://phpmyadmin/. Проигнорировав навязчивое ощущение, что
что то не так (ой как зря).
Копирую свои сайты, которые когда то ваял под виндой. Делаю все нужные настройки, начинаю потихоньку запускать проверять как кто работает. Добрался до одного из сайтов, который активно использует mod_rewrite, и обнаружил что инструкции .htaccess не выполняются. Поставил собственно сам mod_rewrite (в mods-enabled, симлинк на модуль появился) , потратил еще час на поиск файла httpd.conf, который оказывается уже называется по другому (apache2.conf) да и в принципе бесполезен, так как включение mod_rewrite происходит теперь иначе и чтобы задействовать его на сайте достаточно установить:
sudo a2enmod rewrite
и включить в конфигах конкретного сайта
allowoverride all
Чтож после этого у меня явно появились изменения в отображении сайта но тем не менее все работать нормально не стало (нет доступа/forbidden, 500 итд). Поплясав немного с бубном над ним я ни чего не добился. Стал грешить на htaccess (признаюсь - я довольно поверхностно владею его синтаксисом) и создал простейший сайт c такой структурой:
.htaccess
/index.php (<?php echo "modrewrite no"; ?>)
/site/index.php (<?php echo "modrewrite yes"; ?>)
В .htaccess написал следующее:
RewriteEngine on
RewriteRule /index.php /site/index.php [QSA]
При выключении morewrite (в конфиге "AllowOverride none") возвращает "modrewrite no" при включении тоже "modrewrite no" либо (ковырял все подряд уже и не вспомню что) error:500 либо forbidden.
В log'ах проверочного сайта:
[Tue Oct 19 04:07:26 2010] [error] [client 127.0.0.1] (13)Permission denied: file permissions deny server access: /home/user/webservers/example/favicon.ico
[Thu Oct 21 19:09:51 2010] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Нашел только это, и видимо ошибка была только раз, когда я что то менял, в остальное время система думала что она в порядке.
Внимание вопросы:- Что же я все таки сделал не так?
- Почему Apache мог криво встать и как это теперь исправить?
- Возможно ли что я накосячил где то с установщиком ?
- Да и дело ли этот в самом Apache? Может модуль, или руки

У меня теперь работа встала. Помогите пожалуйста.

ps
Еще я помню тот короткий день, когда я из спортивного интереса поставил lamp на 10.04, и все сразу заработало само, но позже система слетела. apt-get раньше не использовал так как всегда был aptitude который я так понял более безопасен, может в этом дело, пока буду ждать ответов поставлю его попробую им.