В этой статье рассказывается как установить Лампу.
(Apache, Mysql, php) на Mandrvia 2009.0

Установим Apache

urpmi apache

Сконфигурируем:

Поправим строчку listen

Listen 192.168.10.225:80

У меня 192.168.10.225 – внешний интерфейс, можно конечно оставить его слушать на всех интерфейсах по умолчанию.

Включим поддержку Virtual hosts. Сделаем Virtual host “test” допишем в конец

NameVirtualHost 192.168.10.225:80

Setenv VLOG

ServerName test

DocumentRoot /media/disk/out/self/sites/test

ErrorLog /media/disk/out/self/sites/test/test-error.log

CustomLog /media/disk/out/self/sites/test/test-custom.log common

DirectoryIndex index.php index.html index.htm

allow from all

</Directory>

</VirtualHost>

не забудем создать соответствующие файлы лога в DocumentRoot куда ссылается соответствующая директива.

Поправим /etc/hosts на машине с которой будем заходить (если мы домен “test” не зарегистрировали предварительно) наберем там

192.168.10.225 test

Дадим права пользователю apache на директорию test. Я это сделал с помощью ACL. (Насчет прав – можно )

setfacl -R -m u:apache:rwx test/
setfacl -R -m default:u:apache:rwx test/

Установим php

urpmi apache-mod_php

Установим поддержку mysql к php

urpmi -y php-mysql

Установим поддержку xml к php (нужно для появления функции utf8-encode)

urpmi php-xml

Остановимся немного подробнее на этом. В пхп существует некий набор модулей которые можно к нему подключать. В true варианте эти модули должны компилитьcя совместно с php движком – на выходе получим dynamic shared object – динамическую либу (с расширением .so), которую можно подключить уже напрямую к этому откомпиленному движку пхп. В мандриве все статические либы уже откомпилены. Достаточно просто набрать ее имя в инсталляторе и инсталлятор сам ее установит.

Фактически, инсталлятор, просто добавляет уже откомпиленную либу в /usr/lib/php/ (этот путь можно подсмотреть в заголовке Paths and Directories ) и пхп просто ее подгружает. В частности в нашем случае при загрузке пхп подключиются две либы которые нам нужны – xml.so и mysql.so.

После подключения либы в пхп появятся новые функции, в частности – функции работы с базой данных, или функция utf8-encode как в последнем случае.
Установим Mysql

urpmi mysql

Поменяем пароль к mysql (при новой инсталяции он пуст)

mysql -u root
use mysql
update user set Password=PASSWORD(‘new-password-here’) WHERE User=’root’;

где new-password-here – новый пароль на рута.

Жуки.

Как поменять пароль на рута, не зная рутовый пароль

Грузимся в безопасном режиме, меняем пароль.

mysqld_safe –skip-grant-tables & mysql –user=root mysql
mysql> update user set Password=PASSWORD(‘new-password-here’) WHERE User=’root’;
mysql> flush privileges;

Жуки.

Mysql не запускается – просит ввести hostname отличный от localhost.

Можно попробовать просто его поменять, но судя по всему баг сидит глубже ( https://qa.mandriva.com/show_bug.cgi?id=38398 )

По рецепту -

1. rpm -e mysql
2. rm -f /var/lib/mysql/mysql/*
3. /bin/hostname 127.0.0.1
4. urpmi mysql

Удаляем mysql если он есть чистим директорию от его либ и прочего, устанавливаем hostname 127.0.0.1 и ставим mysql заново.

Установим Phpmyadmin

urpmi phpmyadmin

Обратим внимание что при установке с помощью urpmi phpmyadmin создает свою рабочую директорию в директории апача по умолчанию.

Этой директорией будет /var/www/

Кроме того он создает конфиг файл в /etc/httpd/conf/webapps.d который собственно описывает то, где он находится.

доступен он будет с-нно после установки по адресу.

http://192.168.10.225/phpmyadmin/

Обратим внимание что я указал в качестве доменного имени простой ипишник – в этом случае ни один из Virtual hosts не сработает поскольку им нужно доменное имя описанное в их директивах, а сработает директива по умолчанию у которой DocumentRoot установлен на /var/www/ – собственно что нам и нужно.

Перенос сайта.

Это одна из тех постоянных штук которые случаются изредка. Потому, увековечим.

Лично мне это все было нужно для того чтобы перевести систему modx с хостинга на локальный сервер – чтобы поковыряться в ней не боясь уронить основной хост.

Поэтому теперь нам нужно создать базу данных с пользователем для нашего скопированного движка и восстановить туда дамп.

Заходим в интерфейс пхпмайадмин под рутовскими привелегиями, заходим в “Привилегии”, говорим создать нового пользователя. Вбиваем пароль, логин, создаем (например пользователя user).

Посмотреть под какими привилегиями движок коннектился к старой базе данных можно в файле config.inc.php который находится в manager/includes. Идем в “базы данных” создаем новую базу данных – одноименную с той что прописана в конфигах движка. Идем в привелегии, нажимаем рядом с нашим пользователем значок редактировать, “добавить привелегии на базу” – вбиваем имя базы данных, даем привилегии. Доступ – только с localhost. Привилегии я дал все кроме Администрирования.

Теперь делаем дамп базы данных с хостинга (я делаю под рутом, но это, собственно необязательно).

mysqldump -u root -p site_db > /home/igor/26_site_db.dump

Где site_db – база данных нашего сайта, /home/igor/ – директория куда делать дамп, 26_site_db.dump – имя дампа базы данных.

Копируем дамп на машину с поднятым mysql, копируем все файлы с сайта из корня.

Восстанавливаем дамп в нашу свежесозданную базу данных.

mysql -u user -p -D site_db < 26_site_db.dump

Ну вот и все. Теперь можно работать дальше.

Учтем только что при переносе базы данных может побиться кодировка. Перекодировать дамп базы можно функцией iconv.

По умолчанию наш мускль ставится в UTF8.

Взято с tht-s.ya.ru