вторник, 3 апреля 2012 г.

Linux.Ставим Apache+MySQL+PHP на Ubuntu 11.10

Давайте рассмотрим самую базовую и самую простую задачу, установить три компонента (Apache2, PHP5 и MySQL) на вашу свежую Ubuntu 11.10 и ораганизовать «быстрый» Web-сервер. 
Здесь стоит напомнить, что Apache2 это один из самых популярных серверов, с большими возможностями, такими как: кросплатформенность (свой первый Apache-сервер я завел под Windows), надёжность и гибкость конфигурации (httpd.conf и .htaccess), возможность подключать внешние модули для предоставления данных, механизм виртуальных хостов, интеграция с другим ПО и языками программирования и многое-многое другое. Прочиать больше вы можете конечно же в Wikipedia – Apache2. Как установить и настроить Apache2, PHP5 и MySQL в Ubuntu 11.10 (LAMP) читайте под катом.

LAMP

LAMP — это набор серверных программ. Данная реализация веб сервера является наиболее популярной в Интернете на сегодняшний день.
Компоненты LAMP:
Linux — ОС Linux;
Apache — Web-сервер;
MySQL — база данных;
PHP — язык программирования, используемый для создания веб-приложений.
Кстати есть еще одно название, очень популярное, это BAMP, где B это BSD система, т.е. Unix.


Установка LAMP в Ubuntu 11.10

Начнем с СУБД MySQL:
  1. sudo su
  2. apt-get install mysql-server mysql-client
Система попросит вас ввести логин и пароль для учетной записи рута:
New password for the MySQL «root» user: <-- вашRootПарольДляMySQL
Repeat password for the MySQL "root" user: <-- вашRootПарольДляMySQL
Убедитесь, что MySQL запущена:
  1. ps -ef | grep mysql
  2. mysql     5478     1  1 15:41 ?        00:00:00 /usr/sbin/mysqld
Поставим Apache2:
  1. apt-get install apache2
Убедитесь, что Apache2 запущен:
  1. ps -ef | grep apache2
  2. root      5974     1  0 15:43 ?        00:00:00 /usr/sbin/apache2 -k start
  3. www-data  5977  5974  0 15:43 ?        00:00:00 /usr/sbin/apache2 -k start
  4. www-data  5979  5974  0 15:43 ?        00:00:00 /usr/sbin/apache2 -k start
  5. www-data  5980  5974  0 15:43 ?        00:00:00 /usr/sbin/apache2 -k start
проверить работу вы можете пройдя по адресу http://localhost/


Установка PHP5:
  1. apt-get install php5 libapache2-mod-php5

Рестартуем Apache2:
  1. /etc/init.d/apache2 restart

Помним, что document root по умолчанию в Ubuntu получается вот тут /var/www/, там же лежит дефолтная HTML страничка, которую мы увидели по адресу http://localhost/.
Стандартная проверка PHP5 на работоспособность, это создания тестого php файла в document root, т.е. в /var/www/. Кстати, если вам, как и мне не нравится местрасположения дефолтной директории, ее можно будет сменить, но это чуток позже.
Создаем файл:
  1. nano /var/www/info.php
Туда пишем:
  1. <?php
  2. phpinfo();
  3. ?>
Любуемся результатом перейдя в браузере по адресу http://localhost/info.php
Поддержка MySQL в PHP5:
  1. apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear 
    php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps 
    php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc 
    php5-xsl
И снова рестарт серверу:
  1. /etc/init.d/apache2 restart
И любуемся на результат, т.е. обновите страничку info.php и найдете теперь там раздел о поддержке MySQL.
Поздравляю, с установкой покончено, осталось только доставить один удобный елемент, это phpmyadmin, для удобной работы с базами данных:
  1. apt-get install phpmyadmin
По ходу установки вам зададут пару вопросов:
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- No
Далее смотрим на результат http://localhost/phpmyadmin
Логин это root, пароль вы задовали, когда ставили СУБД MySQL.
Если вы ничего не увидели, то сделайте символьную ссылку (я этого не делал):
  1. sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
  2. sudo /etc/init.d/apache2 restart
Вот это PhpMyAdmin – программа управлениея базами данных, созданием, редактированием, бэкапами.


Конфигурация и настройка LAMP

1) httpd.conf
Вся конфигурация и настройка сервера Apache2 осуществляется через файл — httpd.conf httpd.conf — содержит директивы, управляющие работой сервера, работой виртуальных хостов и т.д.
Стоит отметить, что окрыв файл /etc/apache2/httpd.conf вы обнаружете, что он пуст, так и есть, настройки сервера лежат в /etc/apache2/apache2.conf, меня это не напрягает, есть люди которых это выбешивает, и они переименовывают apache2.conf в httpd.conf. Кому как нравится.
2) .htaccess
Еще один важный конфигурационный файл .htaccess — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
.htaccess является подобием httpd.conf с той разницей, что действует только на каталог, в котором располагается, и на его дочерние каталоги. Возможность использования .htaccess в том или ином каталоге указывается в httpd.conf (директива AllowOverride).
Файл используется для настроек доступа катологов, авторизации и аутентификации а так же для изменения URL-адресов.
3) .htpasswd
.htpasswd — файл, содержащий пароли для доступа к ресурсу у веб-сервера Apache. Метод авторизации с использованием такого файла носит название базового (англ. basic authentication).

Структура Web-сервера
У каждого уважающего себя Web-сервера должна быть правильная структура, я имею ввиду не структуру прикладной программы Apache, а структуру папок и катологов, виртуальных хостов, расположения логов и их ротация. Я приведу простой, но в то же время самый популярный пример схематично (мой хостер использует именно такую структуру)
Здесь всё просто, существует головной каталог /home/ в нем распологаются каталоги пользователей.
Условия:
  • Каждый пользователь получает доступ к каталогу по FTP и http протоколам
  • Каждый пользователь заперт в своем домашнем каталоге и не может подняться на уровень выше в условиях FTP & http
  • У каждого пользователя есть скрытая папка admin доступ к которой он может получить только по средствам аутентификации по логину и паролю
  • У каждого пользователя есть папка logs в которой ведуться все его логи.
  • Для Apache существует отдельная папка logs где ведуться логи
  • Раз в неделю должна производится ротация логов
На заметку:
Про FTP читайте тут.
Про ротацию логов тут.
Про аутентификацию для Apache можно читать здесь.
В файле /etc/apache2/apache2.conf вы можете подключить модули, настроить работу файлов.htaccess, указать от какого пользователя и какой группы запускать сервер, указать каталог ServerRoot, куда будут складироваться логи и где будут находится логи сервера, все строчки файла хорошо прокоментированны (англ.) но в сети вы можете найти подробные переводы, это не новость.
Я обращу внимание на настройки видимости .htaccess, откройте файл /etc/apache2/apache2.conf:
  1. su root
  2. nano /etc/apache2/apache2.conf
Найдите там следующие строки и проследите, что-бы они остались раскомментированными:
  1. ....
  2. AccessFileName .htaccess
  3. <Files ~ "^\.ht">
  4.     Order allow,deny
  5.     Deny from all
  6.     Satisfy all
  7. </Files>
  8. ....
Как результат:
Логи расположены вот тут /var/log/apache2/.
Тут все банально, лог access.log содержит в себе всю инфу о соединения которые были установленны с сервером.
Лог error.log содержит в себе всю инфу об ошибках. Я уже говорил, что вы можете поменять расположения логов в файле apache2.conf.
/etc/apache2/sites-available/default – очень важный файл, в нем происходит настройка виртуальных хостов сервера.
Но об Виртуальных Хостах в Apache мы поговорим позже, сейчас я предлагаю избрать немного другой путь. И настроить локальный сервер для обслуживания нескольких сайтов без использования VirtualHost в Apache. Метод не самый правильный, но у него есть свои плюсы.
Вы можете сделать так, в вашей RootDocument, сделать папки /wordpress , /drupal/ , /joomla , /logs , /other и установить соостветсвующие сайты в эти директории.
Теперь обратившись в браузере по адресу: http://localhost/drupal/ вы увидите ваш сайт на Drupal, а перейдя по адресу http://localhost/wordpress/ вы увидите ваш сайт на WordPress. Это удобно, вы можете иметь бесконечное колличество сайтов, и работать с ними одновременно.
Вот как это будет выглядеть 
Apache2
Apache2
При этом у вас будет только один виртуальный хост. Настройки просты:
  1. nano /etc/apache2/sites-available/default
Вот минимальное содержание:
  1. <VirtualHost *:80>
  2.         ServerAdmin localhost
  3.         DocumentRoot /var/www/users/ #Тут лежат все сайты
  4.         <Directory />
  5.                 Options FollowSymLinks
  6.                 AllowOverride None
  7.         </Directory>
  8.         #Logs #Где лежат логи
  9.         ErrorLog /var/www/users/logs/error.log
  10.         CustomLog /var/www/users/logs/access.log combined
  11.     Alias /doc/ "/usr/share/doc/"
  12.     <Directory "/usr/share/doc/">
  13.         Options Indexes MultiViews FollowSymLinks
  14.         AllowOverride None
  15.         Order deny,allow
  16.         Deny from all
  17.         Allow from 127.0.0.0/255.0.0.0 ::1/128
  18.     </Directory>
  19. </VirtualHost>
После конфигурации файла, перезапустите Apache и приступайте к работе.

Источник "вдохновения"

Linux. Disabling IRQ #16



Недавно на новой машине ставил Debian. Сталкнулся со следующей проблемой : периодически получаю сообщение вида :


kernel:[ 171.271001] Disabling IRQ #16




После этого начинает жутко тормозить система, процессоры сходят с ума выдавая нереальные проценты загрузки даже при всех закрытых приложениях. 
Перепробовал Squeeze,Wheeze,Ubuntu. Перерыл интернет но достаточно хорошего решения не нашёл. Начну с того что мне помогло.


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


Примерно вот такой текст нам должен выдавать dmesg:



[ 7039.275476] irq 16: nobody cared (try booting with the "irqpoll" option)
[ 7039.275479] Pid: 0, comm: swapper Not tainted 3.1.6-gentoo #2
[ 7039.275480] Call Trace:
[ 7039.275481]  <IRQ>  [<ffffffff81085a29>] __report_bad_irq+0x2e/0xc1
[ 7039.275488]  [<ffffffff81085d48>] note_interrupt+0x165/0x1e1
[ 7039.275490]  [<ffffffff810843cb>] handle_irq_event_percpu+0x157/0x199
[ 7039.275492]  [<ffffffff81084440>] handle_irq_event+0x33/0x4f
[ 7039.275494]  [<ffffffff8108646b>] handle_fasteoi_irq+0x75/0x9a
[ 7039.275496]  [<ffffffff810039e7>] handle_irq+0x83/0x8b
[ 7039.275498]  [<ffffffff810036af>] do_IRQ+0x48/0xa0
[ 7039.275500]  [<ffffffff814eb0ab>] common_interrupt+0x6b/0x6b
[ 7039.275501]  <EOI>  [<ffffffff8126355c>] ? acpi_idle_enter_bm+0x202/0x236
[ 7039.275505]  [<ffffffff81263557>] ? acpi_idle_enter_bm+0x1fd/0x236
[ 7039.275508]  [<ffffffff813b5b06>] cpuidle_idle_call+0xe1/0x17d
[ 7039.275510]  [<ffffffff81001257>] cpu_idle+0x55/0x81
[ 7039.275513]  [<ffffffff814d6069>] rest_init+0x6d/0x6f
[ 7039.275515]  [<ffffffff81ad4a46>] start_kernel+0x2db/0x2e6
[ 7039.275517]  [<ffffffff81ad4270>] x86_64_start_reservations+0x80/0x84
[ 7039.275519]  [<ffffffff81ad4366>] x86_64_start_kernel+0xf2/0xf9
[ 7039.275520] handlers:
[ 7039.275523] [<ffffffff81291c6f>] nouveau_irq_handler
[ 7039.275525] [<ffffffff813428af>] usb_hcd_irq
[ 7039.275528] [<ffffffff81420747>] azx_interrupt
[ 7039.275530] [<ffffffff81333486>] rtl8139_interrupt
[ 7039.275531] Disabling IRQ #16



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


Можно передать ядру параметр irqpoll. Прописывается это в /boot/grub/grub.cfg




Полезные ссылки: одын, два


Linux.Ubuntu 12.04 Beta 2. Небольшой обзор




Вот и состоялся 
релиз Ubuntu 12.04 
Beta 2.



 Новую бета-версию Ubuntu 12.04 уже можно скачать. Выход Beta 2 радует, это значит уже совсем скоро релиз полноценной Ubuntu 12.04 LTS, который запланирован на 26-ое апреля.
Начнём обзор с видео:


Релиз Ubuntu 12.04 Beta 2Обновления Beta 2

О многих обновлениях было написано не один раз. Вообще, в Beta 1 и Beta 2 практически все изменения - косметические, разработчики не рискуют внедрять что то новое, а "допиливают" внешний вид и стабильность операционной системы. Оно и ясно, ибо Canonical уже устали слышать упрёки за то, что выпускают довольно "сырые" версии Ubuntu, да и версия 12.04 носит пометку LTS, что значит Long Term Support, а в переводе - Поддержка в течение длительного периода.

Unity

Стандартная оболочка Ubuntu обновлена до версии 5.8. Я уже описывал на Убунтоводе данные версии (обзор Unity 5.8обзор Unity 2D 5.8), думаю повторяться не стоит.
Отмечу только, что была доработана настройка мониторов, сделано множество мелких улучшений внешнего вида Dash, добавлено оповещение в поиске, если ничего не найдено и поправлена анимация HUD. Это самое основное.
В Unity 2D так же улучшили Dash и HUD, а так же расширили настройки монитора.
Ещё напомню, что были добавлены квиклисты в различные приложения, такие как Rhythmbox, Empathy, Totem, Brasero, Remmina и Gedit.
Квиклисты в Ubuntu 12.04


Dash

image

Никаких глобальных изменений с Dash произведено не было, просто основательно переработали внешний вид, всё подравняли, добавили новые горячие клавиши и сообщение, когда в поиске ничего не найдено.

HUD

image

С новым меню от Canonical опять таки ничего не изменили, только улучшили внешний вид и анимацию, а так же исправили конфликты, когда в горячих клавишах использовалась клавиша Alt (напомню, что она и служит для вызова меню HUD)

Приложения

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

Landscape

Landscape
Landscape - это мощное средство управления системой, с помощью которого можно контролировать, обновлять, а так же совершать множество других действий с компьютером, на котором установлена операционная система Ubuntu Linux, причём не зависимо от версии самой системы. Подробно уже описывал в статье "Landscape будет в Ubuntu 12.04 по умолчанию".

Центр приложений Ubuntu

Центр приложений Ubuntu
В Центре приложений Ubuntu добавилась очень удобная функция: теперь при установке программы, её иконка сразу добавляется на лаунчер и отображает прогресс установки.
Так же добавился пункт "Люди также устанавливают", где отображаются приложения, которые устанавливают другие пользователи Ubuntu вместе с тем приложением, что устанавливаете сейчас вы.

Ubuntu One

image

Интерфейс программы Ubuntu One довольно сильно обновился, теперь пользоваться стало проще, всё интуитивно понятно. В самом сервисе каких то изменений нет. Поддержка proxy  с аутентификацией по прежнему хромает.

Gwibber

image

Стандартный социальный клиент Gwibber был обновлён, но сделаны только косметические изменения.


Другие приложения

Помимо того, что обновились клиенты Ubuntu One и Gwibber, были обновлены другие стандартные приложения. В Ubuntu 12.04 Beta 2 по умолчанию установлен следующий софт:
  • Firefox 11
  • Nautilus 3.3.92
  • Thunderbird 11
  • Gedit 3.3.8
  • Rhythmbox 2.96
  • LibreOffice 3.5.1
  • Totem 3.0.1
  • Transmission 2.50
  • Empathy 3.3.92
  • Deja Dup 22.0
  • Shotwell 0.11.93
  • Gwibber 3.3.93
  • Ubuntu Software Center 5.1.13.2
  • System Settings (GNOME Control Center) 3.3.92
Так же установлено ядро 3.2.0-20.33, основанное на версии 3.2.12.

Новая тема

Стандартные темы Ambiance и Radiance были обновлены. Изменения опять таки косметические: новый градиент заголовка, отдельное оформление для элементов вне фокуса, тёмный сайдбар в Nautilus, а так же ещё несколько других мелких улучшений:
Ambiance
Radiance
Одно из самых интересных нововведений — полноценная поддержка двух мониторов. Так же появилась встроенная опция для включения прилипания окон к краям экрана.Вообще, судя по общим отзывам, система стала действительно стабильней. Раньше было страшно ставить beta-версии, сейчас с этим дела обстоят получше.


Итог

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

Установка Ubuntu 12.04 Beta 2

Скачать сам дистрибутив Ubuntu 12.04 Beta 2 вы можете прямо со странички на  сайте:Скачать Ubuntu 12.04 Beta 2.
Если у вас установлена Beta 1, то нажмите комбинацию Alt + F2 и введите следующую команду:
update-manager -d
Жду ваших отзывов в теме.
Вдохновение черпал тут и тут
От себя добавлю, что совсем недавно пробовал обновить свою Ubuntu 11.10 до версии 12.04 Beta1 и столкнулся с несколькими проблемами. Обновить нормально не получилось т.к. после того как Ubunta скачала всё необходимое и начала ставить примерно на процентах 80 у меня начали пропадать ярлыки, unity панель... в общем прождав некоторое время ( чтобы установка закончилась - судя по htop в консоли она продолжалась) я решил перезагрузить компьютер. В итоге нерабочая система. Видел в интернете темы о том как в данном случае починить графику, но я не стал этого делать - Beta всётаки ещё.
Следующим что я решил сделать это записать на болванку и поставить с нуля. Были некоторые проблемы с разметкой жёсткого диска ( у меня стоит 2 шт ). После некоторых плясок систему так поставил. 
Поставить то поставил а главного не вычитал в обзорах. Она не умеет работать с proxy у которого интернет раздаётся по логинам и паролям. Крайне неприятная мелочь. Если в 11.10 проблема решалась установкой gconf manager то тут даже это не помогло.


В общем на мой взгляд до выхода финальной версии систему можно ставить только в целях эксперимента. Хотя если у вас интернет раздаётся не через прокси вероятно проблем у вас будет гораздо меньше чем у меня.

Linux.Клонирование системы (debian)


Для установки того же набора пакетов для Debian на новом сервере:
На исходной системе:
dpkg --get-selections > installed-software.log
На новой системе:
sudo dpkg --set-selections < installed-software.log && apt-get dselect-upgrade
Осталось только скопировать конфигурационные файлы и отредактировать их.
Автор тут.

среда, 14 марта 2012 г.

Linux.Grub.Восстановление пароля root


Восстановление пароля root в Debian с помощью загрузчика GRUB


Если вы забыли пароль root в debian, то не нужно сильно расстраиваться. Существует несколько способов, чтобы его восстановить. В данной статье рассмотрим один из них: восстановление пароля root в linux с помощью загрузчика GRUB.


Если у вас стоит загрузчик GRUB с доступом для редактирования параметров загрузки, то восстановление пароля root становится очень простым.


В меню загрузчика GRUB стрелками выбираем нужную версию linux, для которой нужно восстановить пароль.
Нажимаем клавишу e (Edit). На экране появляется несколько строк, из которых нас интересует строка ядра:


kernel /образ_ядра root=/корневой_раздел ro quiet splash


Выбираем её и опять нажимаем клавишу e (Edit).
Теперь нам надо отредактировать строку ядра и сделать её вот такого вида:


kernel /образ_ядра root=/корневой_раздел rw init=/bin/bash


или


kernel /образ_ядра root=/корневой_раздел rw init=/bin/sh


Нажимамаем Enter и клавишу b (Boot)
В результате мы загрузимся в системную консоль с правами root и сможем поменяем пароль, с помощью стандартной команды смены пароля:


passwd


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