Дек 22

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

Tag: НовостиNIGHT @ 16:35

В процессе написания предыдущей заметки (установка 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/