вторник, 22 декабря 2009 г.

Nginx, виртуальные хосты, PMA и MySql

В процессе написания предыдущей заметки (установка Php в режиме php-fastcgi в связке с nginx) я не раскрыл некоторые моменты. А в частности, про установку виртуальных хостов, mysql и pma.

И так, начнём с виртуальных хостов.

В nginx, в отличии от apache каждый виртуальный хост хранится в своём файле в папке "/etc/nginx/sites-available/", и активируется созданием символической ссылки на файл вирт. хоста в папке "/etc/nginx/sites-enabled".


Приступим к созданию нашего виртуального хоста


Договоримся сразу. Я создаю хост с именем doomgate.local, Вы можете создать хост со своим именем, а файлы (если Вы читали предыдущую статью) будем хранить в "/www/<имяхотса>", Вы так же сразу же можете использовать свои пути, только будте внимательны.

Создадим каталог под наш сайт, и желательно поместить туда какие-нибудь файлы.
#mkdir -p /www/doomgate.local

#echo "<p>It works!</p>" > /www/doomgate.local/index.html

А теперь создадтим сам вирт. хост.
#mcedit /etc/nginx/sites-available/doomgate.local

И наполняем его следующим содержимым.
# doomgate.local
server {
listen 80;
server_name doomgate.local;
access_log /var/log/nginx/doomgate.local.access.log;
location / {
root /www/doomgate.local;
index index.php index.html index.htm;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www/doomgate.local;
}
location ~ \.php$ {
root /www/doomgate.local;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/doomgate.local$fastcgi_script_name;
include fastcgi_params;
}
}

Теперь необходимо создать симлинк.
#ln -s /etc/nginx/sites-available/doomgate.local /etc/nginx/sites-enabled/doomgate.local

И правим hosts, добавляя туда узел, где нужно искать наш сайт
#mcedit /etc/hosts

и вставляем туда строчку
127.0.0.1 doomgate.local

Теперь перезапускаем nginx
#/etc/init.d/nginx restart

Пробуем: http://doomgate.local

Если всё получилось, будем ставить mysql.
#aptitude install mysql-client mysql-server php5-mysql mcrypt

Ставим PMA


Идём на сайт pma и качаем оттуда дистрибутив. Хотя можно конечно установить pma из репозиториев, но я предпочитаю ставить сам, к тому же в репозиториях дебиана наверняка не самая свежая верися.
#lynx http://php-myadmin.ru/download/

(необходимо иметь пакет lynx или установить его командой "aptitude install lynx" с правами root)

Кстати, совсем не обязательно запускать lynx от рута, даже скорей наоборот, Капитан Очевидность как бы намекает нам, что лучше это делать с правами обычного пользователя, чтобы не накосячить, но мне лень перелогиниваться, к тому же накосячить тут давольно сложно, хотя наверное и возможно.

И так, скачали.

Создадим каталог под наш сайт
#mkdir -p /www/pma.local

Извлечём архив.
#tar jxvf phpMyAdmin-3.2.4-all-languages.tar.bz2

#cd phpMyAdmin-3.2.4-all-languages

Скопируем всё содержимое в каталог "/www/pma.local"
#cp * /www/pma.local

И создадим конфигу для сайта с pma.
#mcedit /etc/nginx/sites-available/pma.local

Пример конфига:
# PhpMyAdmin
# pma.local
server {
listen 80;
server_name pma.local;
access_log /var/log/nginx/pma.local.access.log;
location / {
root /www/pma.local;
index index.php index.html index.htm;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www/pma.local;
}
location ~ \.php$ {
root /www/pma.local;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/pma.local$fastcgi_script_name;
include fastcgi_params;
}
}

Создадим симлинк
#ln -s /etc/nginx/sites-available/pma.local /etc/nginx/sites-enabled/pma.local

Внесём запись в hosts
#mcedit /etc/hosts

127.0.0.1 pma.local

Ну и всё теперь PhpMyAdmin доступен по адресу http://pma.local/

Комментариев нет:

Отправить комментарий