Решил написать данную статью после того, как сам столкнулся с установкой нового Nginx 1.1.4 на VPS от FastVPS. Купил OVZ-3, поставил Debian 5 но вот что-то захотелось поставить Nginx. Сайты все у меня на apache, но вот недавно заметил небольшое торможение сайтов и решил сменить и VPS и серверную часть. По мере изучения материалов с хабры и применяя их на VPS столкнулся с небольшими проблемами установки Nginx. Данная статья будет полезна начинающим веб-мастерам которые, хотят быстро установить у себя свежую версию Nginx и MySQL.
Требования к вам:
- Доступ к VPS на котором установлена ОС Debian Linux
- SSH-клиент с помощью которого вы будете ввести все нижеуказанные команды
- Начальное знакомство с командной строкой Linux
Разработка Nginx не стоит на месте, она развивается большими темпами. Мы установим новую версию на текущий момент Nginx 1.1.4. Репозитории Debian не могут представить нам новые версии, так что мы и без него их найдем.
Сперва давайте обновим пакеты
1 |
apt-get update |
Ставим библиотеки в которых нуждается Nginx для нормальной работы
1 |
apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev openssl libcurl4-openssl-dev |
Для поддержки Perl
1 |
apt-get install libperl-dev |
Теперь самое главное для чего мы тут и собрались, начинаем сборку и установку Nginx 1.1.4
(Выполняем по одной строке)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
cd /tmp wget http://nginx.org/download/nginx-1.1.4.tar.gz tar -zxvf nginx-1.1.4.tar.gz cd nginx-1.1.4 ./configure \ --user=www-data \ --group=www-data \ --with-cc-opt="-I /usr/include" \ --with-ld-opt="-L /usr/lib" \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_gzip_static_module \ --with-mail \ --with-mail_ssl_module make make install |
Теперь запускаем самого Nginx
1 |
/usr/local/nginx/sbin/nginx |
Заходим на сайт(или на IP) вашего VPS где установили только что Nginx. Вы должны увидеть по середине большим шрифтом текст: Welcome to nginx! Это означает что, вы хорошо справляетесь с поставленной задачей!
Для продолжения установки нам понадобится помощь команды dos2unix Данная команда является конвертером файлов которые были созданы в среде Windows и запускаются в Unix.
Скоро мы начнем создавать скрипт для авто запуска nginx и PHP-fastcgi, если вы работаете в ОС Windows то текст ниже спасет ваши нервы, если вы начали запуск данных скриптов читая данную статью. Если вы сейчас на ОС из семейства Linux, тогда вы можете сразу перейти к созданию файлов. Проблема в том что текстовые редакторы из Windows вставляют некоторые символы которых Linux не адекватно воспринимает и при запуске скрипта вы бы получали ошибку: /bin/sh^M: bad interpreter: no such file or directory
Устанавливаем dos2unix во избежании ошибки "dos2unix command not found"
1 |
apt-get install tofrodos |
Теперь добавляем nginx в автозагрузку, для этого следуем шагам:
1. Сохраняем файл nginx в /etc/init.d/ (Получится такой путь к файлу: /etc/init.d/nginx)
2. Выполняем конвертацию файла из DOS в UNIX
1 |
dos2unix /etc/init.d/nginx |
Делаем исполняемым и добавляем nginx в автозагрузку:
1 2 |
chmod 755 /etc/init.d/nginx update-rc.d nginx defaults |
Теперь мы можем манипулировать состоянием http-сервера с помощью команд:
1 2 3 |
/etc/init.d/nginx start /etc/init.d/nginx restart /etc/init.d/nginx stop |
Установка MySQL
Мы не будет устанавливать MySQL из стандартного набора Debian, подключим дополнительный репозиторий, который порадует нас новыми пакетами данных.
Чтобы открыть доступ к новому репозитарию, редактируем файл /etc/apt/sources.list добавляем в конце данные строки:
1 2 |
deb http://packages.dotdeb.org lenny all deb-src http://packages.dotdeb.org lenny all |
Во избежании жалоб на отсутствие подписи, мы добавим следующие ключи:
1 2 |
gpg --keyserver keys.gnupg.net --recv-key 89DF5277 gpg -a --export 89DF5277 | sudo apt-key add - |
Если у вас не установлена утилита aptitude выполните данную команду
1 |
apt-get install aptitude |
Вернемся к установке MySQL, устанавливаем MySQL сервер командой:
(Во время установки вас попросят ввести новый пароль от MySQL root пользователя, будьте осторожны!)
1 |
aptitude install mysql-server mysql-client |
Установка PHP и дополнительные расширения
Выполняем в командной строке:
1 |
aptitude install php5 php5-cgi php5-curl php5-mysql php5-gd php5-recode php5-imagick php5-dev php5-mcrypt php5-memcache |
Настройка FastCGI
1. Сохраняем init-скрипт php-fastcgi в /etc/init.d (получится такой путь: /etc/init.d/php-fastcgi)
2. Создаем для него файл конфигурации в директории /etc/default/php-fastcgi.
Сохраняем файл php-fastcgi в /etc/default/ (получится такой путь: /etc/default/php-fastcgi)
3. Выполняем конвертацию файлов из DOS в UNIX
1 2 |
dos2unix /etc/init.d/php-fastcgi dos2unix /etc/default/php-fastcgi |
Добавляем скрипт в список автоматического выполнения при загрузке системы
1 2 3 |
chmod 755 /etc/init.d/php-fastcgi chmod 755 /etc/default/php-fastcgi update-rc.d php-fastcgi defaults |
Запускаем службу:
1 |
/etc/init.d/php-fastcgi restart |
Настройка Nginx
Создаем папку где будут лежать файлы нашего сайта:
1 2 |
mkdir -p /home/www chmod 0755 /home/www |
Открываем файл /usr/local/nginx/conf/nginx.conf и сохраняем его с текущем содержимым
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
user www-data www-data; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; client_max_body_size 100m; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; charset utf-8; #access_log logs/host.access.log main; location / { root /home/www; index index.php index.html index.htm; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www$fastcgi_script_name; include fastcgi_params; } } } |
Перезапускаем nginx:
1 |
/etc/init.d/nginx restart |
Создаем файл index.php и загружаем его в папку /home/www
1 2 3 |
<?php phpinfo(); ?> |
Зайдите на ваш сайт и уведите результат нашей работы. Если вы уведите логотип PHP и большую таблицу с характеристиками установленного PHP значит вы справились!
MEMCACHE
Выполняем следующую команду в командной строке:
1 |
apt-get install memcached |
Перезапускаем php
1 |
/etc/init.d/php-fastcgi restart |
Удачной работы!
Если будут вопросы, задавайте их в комментариях ниже!
Заказать качественный VPS/VDS от качественных представителей FastVPS.ru