пятница, 15 декабря 2006 г.

Установка LAMP (Linux, Apache, MySQL и PHP) в Kubuntu (Ubuntu)

На днях я решил переустановить мой Kubuntu 6.06 Linux. Да, это звучит как кощунство, это же не винда. Но...я сдался с попытками решить одну проблему и решил что быстрее будет переустановить. Плюс будет полезно все вспомнить и на этот раз записать.
Поэтому я позиционирую эту заметку в первую очередь как шпаргалку для себя. Но если кому-нибудь она поможет, я буду рад.

Как видно из названия, сегодня я буду ставить LAMP (Linux, Apache, MySQL и PHP) на моей Kubuntu системе. Первый из списка, т.е. сам Linux, уже есть. Остались три последних. Кстати, есть специальный вариант Ubuntu LAMP Server, с помощью которого все это устанавливается само. Но мне этот вариант не подходит. У меня есть обычный диск и я хочу на домашний компьютер поставить web-сервер лишь в целях разработки некоторых приложений.




Apache2

Для установки я выбрал именно Apache2. Я его использовал раньше, поэтому ставлю и сейчас. Читал, что с ним меньше проблем и что он лучше работает. Серьезно не разбирался.
Ставим:

sudo apt-get install apache2

Дополнительно ставятся следующие пакеты: apache2-common apache2-mpm-worker apache2-utils libapr0 ssl-cert.
Все. Сервер установили.

PHP5

Ставим последню версию PHP5. Не советую ставить 4-ю.

sudo apt-get install php5

Само ставит нужные дополнительные пакеты: apache2-mpm-prefork libapache2-mod-php5 php5-common. Просто замечательно.

Перегружаем Apache:

sudo /etc/init.d/apache2 restart

и провереям работу PHP.
Для этого, в директории /var/www/, создадим файл info.php :

sudo vi /var/www/info.php

со следующим содержимым:

<?php
phpinfo();
?>


Теперь в браузере набираем http://localhost/info.php. Вы должны увидеть следующее:






















MySQL


Ставим MySQL сервер:

sudo apt-get install mysql-server

Ставится MySQL сервер и некоторые доплнительные модули. В общей сумме с инета потянет больше 30 метров.
Если вы ставите MySQL сервер для доступа только со своей машины, то это все. Если же нет, то идем в файл /etc/mysql/my.cnf:

sudo vi /etc/mysql/my.cnf

находим следующую строчку bind-address = 127.0.0.1 и комментируем ее (ставим ; перед строчкой). Таким образом, мы разрешили доступ извне.

Теперь ставим дополнительные модули для связки Apache, PHP и MySQL:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql

Для удобного создания баз данных, пригодится программа phpmyadmin. Поэтому ставим и ее:

sudo apt-get install phpmyadmin

Перегружаем Apache2:

sudo /etc/init.d/apache2 restart

Проверяем работу всей связки. Для этого просто перезагружаем в браузере страницу http://localhost/info.php и ищем следующую секцию с MySQL:




















Теперь меняем стандартный пароль для пользователя root на безопасный:

mysqladmin -u root password new-password

(Внимание: это никак не связано с рутом самой Linux системы, поэтому пароль выбирайте другой).

Перегружаем MySQL:

sudo /etc/init.d/mysql restart

Теперь можно проверить работу MySQL. Набираем в консоли следующее:

mysql -u root -p

жмем Enter и вводим пароль. Если все получилось, то вы увидите следующее приглашение:


serhiy@kubuntu:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24 to server version: 5.0.22-Debian_0ubuntu6.06.2-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>



Все, жмем CTRL + d. Создание базы и таблиц я рассматривать здесь не буду.

Проверяем работу phpmyadmin. Для этого в браузере набираем http://localhost/phpmyadmin/. Загрузится страничка, в которой вы должны ввести пароль для пользователя root (который мы создали выше).
Если все прошло успешно, вы увидите приблизительно такое:


















Поздравляю, вы все установили.

2 коммент.:

michel74 комментирует...

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

Анонимный комментирует...

В файдл конфигурации apache надо добавить

DirectoryIndex index.html index.php

# add type, file php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm

Первое нужно чтобы зха индексный файл считался не только index.htm, но и index.html. Второе, чтобы файлы .php .phps .html .htm, перед отдачей пользователю пропускались через предпроцессор пхп, что нам и нужно:)

Осталось найти в ubuntu этот самый конфиг апача:)