Настройка VPS сервера на CentOS 6 с нуля, для чата VOC++BSE NginX mod_voc

Настройка VPS сервера на CentOS 6 с нуля, для чата VOC++BSE NginX mod_voc
 В данной статье будут рассмотрены вопросы настройки VPS сервера на CentOS 6 с нуля, для чата VOC++BSE
Что будет на борту - NginX PHP-FPM 5.5, MariaDB(MySQL)5.5, mod_voc
Также выложены файлы -
daemon_x_86_64.cpp(Демон на С++ переделанный для работы в 64-битной система с mod_voc и NginX)
ngx_http_voc_module.c (Модуль для NginX на С переделанный для работы в 64-битной система с  NginX)
Приступим
Итак хостер прислал вам данные для доступа к серверу, все что нам потребуется это IP-адрес сервера, и пароль для учетной записи root
Идем на сайт - http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
и качаем программу эмулятор терминала PuTTY, через нее мы и будем работать.
Откроем программу в поле Host Name (or IP adress) вводим IP-адрес вашего сервера
Далее, программа попросит ввести логин для авторизации, введите root
Далее, программа попросит вас ввести пароль, введите пароль который вам прислал хостер (Внимание! Пароль, который Вы будете вводить, отображаться не будет, т.е. курсор будет неподвижен. Пароль надо вводить "вслепую".)
Если все сделанно правильно, вам будет отображаться [root@localhost ∽]# или что-то похожее -
Настройка VPS сервера на CentOS 6 с нуля, для чата VOC++BSE NginX mod_voc
Установим локаль по умолчанию UTF-8

LANG="ru_RU.UTF-8"


Установим Midnight Commander(аналог Norton Commander в windows)

yum install mc


Подключим дополнительные репозитории.

rpm -ihv http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm
	rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
	rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
	rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm


Установка MariaDB(MySQL)
Для установки проделаем следующее


	yum install mysql.`uname -i` yum-plugin-replace
	yum replace mysql --replace-with mysql55w
	yum install mysql55w mysql55w-server
	


Добавим MySQL в автозагрузку и запустим MySQL-сервер

chkconfig --levels 235 mysqld on
	service mysqld start
	


Запустим конфигурацию MySQL

/usr/bin/mysql_secure_installation


У вас запросит пароль root от MySQL:

Enter current password for root:


Так как сервер устанавливается с нуля, пароля нет, поэтому нажмем просто Enter.
Далее вам будут заданны вопросы -

Set root password? [Y/n]


Установить новый пароль для root MySQL?
Жмем Y - да
New password: вводим пароль суперпользователя на mysql
Придумайте пароль посложнее и введите его 2 раза(Внимание! Пароль, который Вы будете вводить, отображаться не будет, т.е. курсор будет неподвижен. Пароль надо вводить "вслепую").
Если трудно придумать сложный пароль, можете воспользоваться нашим сервисом - генератор паролей

Remove anonymous users? [Y/n]


Удалить анонимных пользователей? Жмем Y - да

Remove test database and access to it?


Удалить тестовую базу? Жмем Y - да

Reload privilege tables now?


Перегрузить привелегии пользователей? Жмем Y - да
Создадим новую базу и пользователя MySQL


	   mysql -p
	   CREATE DATABASE `vocbase`;
	   GRANT ALL PRIVILEGES ON vocuser.* TO 'vocbase'@'localhost' IDENTIFIED BY 'my_password' WITH GRANT OPTION;
	


Этими командами мы создали базу - vocbase, пользователя с именем - vocuser и паролем - my_password, а также дали этому пользователю привелегии на созданную базу.
Для того чтобы покинуть настройки MySQL наберите -

\q


Установка NginX
"<combr /> "Легким движением ./configure && make && make install
     <combr /> нормальный дистрибутив превращается в слакварь :)" ;)))" (c)Bash
Так как мы собираемся запускать чат с поддержкой mod_voc, нам придется собирать NginX из исходников.
Идем на сайт - http://nginx.org/ru/download.html
Смотрим последнюю версию NginX, на сегодня это - nginx-1.7.9
создаем и переходим в папку - /etc/nginx/


	mkdir /etc/nginx/
	cd /etc/nginx/


Качаем при помощи wget последнюю версию NginX

wget http://nginx.org/download/nginx-1.7.9.tar.gz


Распакуем файлы

tar zxf nginx-1.7.9.tar.gz


Запустим Midnight Commander

mc


Переходим в папку на сервере /etc/nginx/nginx-1.7.9/auto/
Выделим файл modules и нажмем на клавиатуре F4 для его редактирования
После строк

# Copyright (C) Nginx, Inc.
	


Допишем внимательно и без ошибок следующее


	HTTP_MODULES="$HTTP_MODULES ngx_http_voc_module"
	HTTP_SRCS="$HTTP_SRCS src/http/modules/ngx_http_voc_module.c"
	


После этого нажмем F2 чтобы сохранить и F10 2раза для выхода из Midnight Commander
Переходим в папку /etc/nginx/nginx-1.7.9/src/http/modules/


	cd /etc/nginx/nginx-1.7.9/src/http/modules/
	


Теперь нам надо узнать какая у нас на сервере система 32-битная или 64-битная намираем

uname -a


Вам выдаст строку внимательно осмотрите ее
Если в строке встречается выраажение - x86_64, то у вас 64-битная система
А если в строке встречается выраажение - i386, то у вас 32-битная система
Теперь в зависимости от системы надо закачать ngx_http_voc_module.c
Для 32-битной системы команда

wget http://voc.cvs.sourceforge.net/viewvc/voc/voc/data/daemon/ngx_http_voc_module.c


Для 64-битной системы mod_voc был переделан и поэтому надо качать с моего сайта, команда -

wget http://doctormario.ru/ngx_http_voc_module.c


Закачали? Ну и отлично займемся сборкой
Для того чтобы собрать NginX а в последствии и демона, установим gcc-компиллятор а также инструменты разработчика


	yum groupinstall 'Development Tools'
	yum install gcc gcc-c++ kernel-devel pcre-devel GeoIP-devel libxslt-devel openssl-devel
	


Переходим в папку /etc/nginx/nginx-1.7.9/
 

cd /etc/nginx/nginx-1.7.9/


Конфигурируем NginX с модулями следующей немножко длинной командой


	./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --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_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_spdy_module --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'
	


если конфигурация прошла успешно то мы увидим что то вроде

Configuration summary
	  + using system PCRE library
	  + using system OpenSSL library
	  + md5: using OpenSSL library
	  + sha1: using OpenSSL library
	  + using system zlib library
	  nginx path prefix: "/etc/nginx"
	  nginx binary file: "/usr/sbin/nginx"
	  nginx configuration prefix: "/etc/nginx"
	  nginx configuration file: "/etc/nginx/nginx.conf"
	  nginx pid file: "/var/run/nginx.pid"
	  nginx error log file: "/var/log/nginx/error.log"
	  nginx http access log file: "/var/log/nginx/access.log"
	  nginx http client request body temporary files: "/var/cache/nginx/client_temp"
	  nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"
	  nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"
	  nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"
	  nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"


 Собираем NginX


	make
	make install
	


Если вы собираете для 64 битной системы, с модулем с моего сайта, тогда все должно пройти без ошибок
Если вы собираете для 32-битной системы, с модулем с сайта Влада, тогда возможны ошибки
В этом случае повторите конфигурирование и попытайтесь собрать с игнорированием ошибок командами


	make -i
	make install-i
	


 nginx будет установлен в каталог /etc/nginx/, директорию nginx-1.7.9  и архив nginx-1.7.9.tar.gz можно удалить.
Делаем скрипт испольняемым

/etc/rc.d/init.d/nginx
	chmod +x /etc/rc.d/init.d/nginx


Теперь надо создать группу и пользователя NginX
Добавить NginX в автозагрузку.
А также добавить Nginx в исключения iptables
И запустить NginX
Все это делается при помощи следующих команд


	groupadd nginx
	useradd -g nginx nginx
	chkconfig --levels 235 nginx on
	service iptables stop
	iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
	iptables-save > /etc/sysconfig/iptables
	service iptables start
	service nginx start
	



Установка PHP-FPM 5.5


Установим PHP и модули

yum --enablerepo=remi,remi-php55 install php php-opcache php-xml php-pecl-jsonc php-mbstring php-cli php-fpm php-mysqli php-gd gd gd-devel


Закроем уязвимость откроем
/etc/php.ini
Вместо

;cgi.fix_pathinfo = 1


Вставим

cgi.fix_pathinfo = 0


Подробности уязвимости на
http://php.net/manual/ru/ini.core.php#ini.cgi.fix-pathinfo
http://habrahabr.ru/post/100961/
Откроем
/etc/php-fpm.d/www.conf
Вместо

user = apache
group = apache


Вставим

user = nginx
group = nginx


Запустим PHP-FPM и добавим его в автозагрузку

chkconfig --levels 235 php-fpm on
service php-fpm start


Теперь чтобы работали сессии надо поставить разрешения для записи на session.save_path

chmod 777 -R /var/lib/php/session/


Конфигурируем NginX
Содержимое файла /etc/nginx/nginx.conf
меняем на это

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
server_names_hash_bucket_size  128;
    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  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
server {
listen 80;
server_name ""; #default
return 444;
}

server {
        listen       80;
        server_name  vochat.ru;
        location / {
            root   /var/www/vhosts/vochat.ru;
            index  index.php index.html index.htm;
        }
 location  /vocd {
         voc /tmp/vochat;
  }
        location ~ \.php$ {
           root   /var/www/vhosts/vochat.ru;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
        }
}


Создадим каталог vochat.ru в каталоге  /var/www/vhosts/
mkdir  /var/www/vhosts/vochat.ru/ [/code]

Туда зальем файлы чата и установим чат
При установке чата можно воспользоватся нашим сервисом который облегчает установку

 http://doctormario.ru/voc_ssh.html

Далее редактируем URL демона в чате.

Тут возможно несколько вариантов на ваш вкус - 

Первый вариант -  в админке чата, в Параметры демона и URL чата в поле URL демона ставим 


http://ваш_чат/vocd


или

Второй вариант - в chat/voc.php

строки


if ($chat_type=="tail") $shower = "$daemon_url?$session";


 заменяем на 


if ($chat_type=="tail") $shower = $chat_url."vocd?".$session; 
	


2 раза

Этот вариант более предпочтителен, если у вас есть моды, использующие переменную - $daemon_host

Не забывайте!!! Если чат расположен не в корневой папке сайта, а например в папке ваш_сайт/chat/. перед /vocd и в первом и втором варианте надо заменить на /chat/vocd.

Убедитесь что в файле data/daemon/daemon.cpp не закомментирована поддержка mod_voc примерно 24  строка должна иметь вид - 


#define SUPPORT_MOD_VOC 1


11. В админке чата в  в Параметры демона и URL чата  установить режим работы демона mod_voc.

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

для Linux 


g++ -O3 -DSUPPORT_MOD_VOC daemon.cpp -o daemon


для FreeBSD командой - 


g++ -O3 -DSUPPORT_MOD_VOC daemon_bsd.cpp -o daemon


Запускаем демона командой - 


./daemon


Смотрим -

http://ваш_чат/vocd?stat

при правильной установке, и при наличии хоть 1 юзера в чате, должна показываться информация см. Картинку(увеличивается) - 

Ну и бонус для пользователей 64-битной системы исправленный демон а также модуль mod_voc

  Скачать файл: daemon.cpp [159.49 Kb] (cкачиваний: 46)

  Скачать файл: ngx_http_voc_module.c [7.63 Kb] (cкачиваний: 38)

  Настройка VPS сервера на CentOS 6 с нуля, для чата VOC++BSE NginX mod_voc

 

 

Автор инструкции Marik. doctormario.ru

при перепечатке ссылка и указание автора обязательно

 

Комментарии 1

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

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги