Marik - 04 фев 2015 22:34 1

Настройка 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://marik.kz/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://marik.kz/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качиваний: 43)

 ngx_http_voc_module.c [7.63 Kb] (cкачиваний: 35)

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

 

 

Автор инструкции Marik. marik.kz

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

 

Другие статьи по теме:

Комментарии

    1. Дмитрий

      11 май 2020 19:58

      /etc/rc.d/init.d/nginx
      фаил nginx не появляется после
      make
      make install

      Жалоба Цитировать Ответить
Добавить комментарий

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

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent
Marik.kz. Блог. При использовании информации, пожалуйста указывайте ссылку на оригинал.