Устанавливаю по статье:
http://ubuntueasy.com/servery/kak-ustanovit-lamp-wordpress-na-ubuntu-804Сразу отпишусь что инструкции выполняются в терминале (alt-f2->gnome-terminal->Enter)Устанавливаем Apache
#sudo apt-get install apache2 Тестируем сервера гипертекстового транспортного протокола, открываем web-браузер и вводим
http://localhost
Работает (http://localhost пишет It works!), но при перезагрузке в коммандной строке пишет
Could not reliably determine the server's fully qualified domain name, using
127.0.0.1 for ServerName
чтобы не писал предлагаю:
sudo gedit /etc/apache2/apache2.conf
где нибудь в начале добавить строчку ServerName localhost и сохранить
теперь пробуем sudo /etc/init.d/apache2 restart - этой ошибки уже нет)
(решение подсмотрено здесь)
Устанавливаем PHP5
#sudo apt-get install php5 libapache2-mod-php5
Рестартуем Apache
#sudo /etc/init.d/apache2 restart
Проверяем всё ли прошло успешно.
#sudo gedit /var/www/testphp.php
Вставьте следующий тэг в testphp.php файл:
(в исходной статье тут пробел - видимо копипастили от куда то тоже, я предлагаю такой скрипт - т.к. одним махом двух зайцев)
Сохраните этот новый файл. Откройте web-браузер и введите,
http://localhost/testphp.php
Убедитесь, что удалили файл, в последствии это может представлять угрозу безопасности.
#sudo rm /var/www/testphp.php
Во время перезагрузки вывалились такие ошибки:
httpd (no pid file) not running (2)No such file or directory: apache2: could not open error log file /var/log/apache2/error.log. Unable to open logs
По первому сообщению нашёл такую мысль:
> httpd (no pid file) not running
Вот тут он хочет остановить сервер, но останавливать нечего (no pid file) так как
он не запущен..
Не работает http://localhost соответственно. Очевидно что так же какая то проблема с доступом к логам - посмотрел и действительно в /var/log/ вообще не было папки apache2, а в ней соответственно файла error.log - очевидно что это какой то баг - создал необходимую папку, правда почему то при перезагрузке системы она опять пропадает - см. вконце)
Теперь всё заработало. У большинства таких проблем быть не должно, у меня они видимо потому что до этого я Апач качал с оф сайта, компилировал и инсталировал из дистрибутива. Потом осознал что лучше использовать репозитарий и видимо не совсем корректно снём предыдущий Апач.
Устанавливаем MySQL
#sudo apt-get install mysql-server
MySQL первоначально позволяет только связи от localhost (127.0.0.1). Мы должны будем удалить это ограничение, если Вы желаете сделать его доступным для всех в Интернете. [Эти действия с доступом к инету на локальной машине не обязательны]
Откройте файл /etc/mysql/my.cnf
#gksudo gedit /etc/mysql/my.cnf
Найдите строки bind-address = 127.0.0.1 и прокомментируйте (# - диез), сохранил файл.
MySQL прибывает без root пароля как значения по умолчанию. Это - огромный риск для безопасности. Вы должны будете установить его. Так, чтобы локальный компьютер получил root доступ тоже. local-machine-name - название компьютера, за которым Вы работаете.
#mysqladmin -u root password newpassword
#mysqladmin -h root@local-machine-name -u root -p password newpassword
#sudo /etc/init.d/mysql restart
(шаг с изменением пароля можно пропустить для последней версии MySQL так как при установки базы она сама у меня запросила пароль для пользователя root, усли у вас она этого не сделал то это шаг обязателен)
Пароль уже спросили во время установки - так что в современном дистрибутиве действительно этот шаг лишний.
Во время установки произошли ошибки:
/etc/lsb-base-logging.sh: line 84: INITOUTPUT: свободное значение
invoke-rc.d: initscript mysql, action "stop" failed.
/etc/lsb-base-logging.sh: line 84: INITOUTPUT: свободное значение
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: не удалось обработать параметр mysql-server-5.0 (--configure):
подпроцесс post-installation script возвратил код ошибки 1
dpkg: зависимости пакетов не позволяют настроить пакет mysql-server:
mysql-server зависит от mysql-server-5.0, однако:
Пакет mysql-server-5.0 пока не настроен.
dpkg: не удалось обработать параметр mysql-server (--configure):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
mysql-server-5.0
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
МуСКуЛ не встал соответственно, будем копать ошибки
(вот тут сразу сожалеешь что Убунту русско-язычный стоит - приятнее гуглить когда ошибки на буржуйском).
Рапорт об ошибке нашёл тут: https://bugs.launchpad.net/netbook-remix/+bug/291987
В целом надо редактировать файл /etc/lsb-base-logging.sh с целью комментирования if-ов (не забывая их концовки fi) - комментарий делается при помощи символа # в начале строки. Какие строки надо закоментировать - (84-114), (136-156):
sudo gedit /etc/lsb-base-logging.sh
Затем выполняем эти команды:
sudo dpkg --configure -a
sudo apt-get install mysql-server
при выполнении команды mysqladmin -h root@local-machine-name -u root -p password newpassword использовал localhost вместо local-machine-name, проверить потом можно выполнив mysql -u root -p.
Во время прописывания пароля для рут-локалхоста ошибки на выскакивали, но зайти в мускул у меня по нему получилось. В общем как то не гладко мягко говоря.
Устанавливаем MySQL Administrator и phpmyadmin
#sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
Чтобы заставить PHP работать с MySQL, откройте php.ini файл
#gksudo gedit /etc/php5/apache2/php.ini
Вы должны будете снять (# - диез) с “; extension=mysql.so” строки так, чтобы это было похоже на это extension=mysql.so
Рестартуем Apache
#sudo /etc/init.d/apache2 restart
рестартовать Апач опять не захотел - снова пропала папка Апача и лог-файл, пересоздал, заработало. В пхп ини строчки extension=mysql.so не нашёл, зато была extension=msql.so - какой вариант правильнее 100% сложно сказать но файла msql.so в системе поиском не нашёл, а вот mysql.so присутсвует)
Для того чтобы убедиться что всё работает:
- перезагрузился
- sudo /etc/init.d/apache2 restart
- и что вы думаете? опять умерли логи(
httpd (no pid file) not running
(2)No such file or directory: apache2: could not open error log file /var/log/apache2/error.log.
Unable to open logs
Временное лечение
sudo mkdir /var/log/apache2
sudo chown user:group /var/log/apache2 (в моём случае шаг не нужный, не помогает даже если 777 дать, а др возможно не лишний)
sudo /etc/init.d/apache2 start
ещё попробовал это (предварительно бэкап файла конечно сделав):
sudo rm /etc/logrotate.d/apache2
не помогло - дело не в логротейтах...
попробовал эту статью:
http://ru.gentoo-wiki.com/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Apache2
Could Not Open Error Log
While starting Apache, it prints:
Error while starting apache: (2)No such file or directory: apache2: could not open error log file /usr/lib/apache2/logs/error_log.
/usr/lib/apache2/logs
should be a symlink pointing to /var/log/apache2
. Check it using:
ls -la /usr/lib/apache2/logs
(note the lack of a slash on the end). If /var/log/apache2
is missing, create it and make sure you give apache ownership:
mkdir /var/log/apache2
chown apache:apache /var/log/apache2
If the symlink /usr/lib/apache2/logs
is missing, you can create it:
ln -s /var/log/apache2 /usr/lib/apache2/logs
You don't need to set permissions on the symlink.
не вылечило, но
sudo ln -s /var/log/apache2 /usr/lib/apache2/logs
поправилось (и ссылка не пропадает) - я так понял не лишне
Попытаемся вычислить момент в который папка логов умирает. Для этого выключаем апач: sudo /etc/init.d/apache2 stop
и смотрим процессы sudo ps -A - убеждаемся что апача там больше нет. Проверяем нашу папку логов - есть, значит умирает не при выключении апача.
пробуем редактировать автозапускающий серипт:
sudo gedit /etc/init.d/apache2
вставляем где нибудь в начале (рекомендую во второй строчке):
mkdir /var/log/apache2
if [ $? -eq 0 ]
then
echo $(date)": директория создалась без ошибок" >> /home/log.log
else
errmsg=$(date)": "$(mkdir /var/log/apache2 2>&1)
echo $errmsg >> /home/log.log
fi
перезагружаемся и смотрим наш лог файлик:Wed Apr 29 21:57:12 MSD 2009: директория создалась без ошибок
теперь всё работает, но каждый раз заново создаётся директория - симптом вылечен, болезнь осталась:mkdir -p /var/log/apache2
более короткий и тоже рабочий пример скрипта. Болезнь будем лечить не сегодня уже)