HowTo: Installing Apache + Mysql + php Mandriva 2009.0
В этой статье рассказывается как установить Лампу.
(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

Leave a Reply