Это старая версия документа.


A PCRE internal error occured. This might be caused by a faulty plugin

<rst>RU::004-Администрирование::004-Установка</rst> <rst>Header: Установка</rst> ====== Установка ====== Рекомендуемые ОС ubuntu, debian, centos <code bash> apt-get update apt-get install cmake make cpp gcc libssl-dev g++ nginx libmysqlclient-dev mysql-server mysql-client flex mailutils uuid-dev git </code> ====== Собираем из исходных кодов ====== <code bash> git clone https://github.com/Levhav/comet-server cd comet-server cmake . make </code> Если получим ошибку CMAKE_MINIMUM_REQUIRED то значит надо [[https://cmake.org/install/|установить более новую версию CMake]] <code bash> CMake Error at CMakeLists.txt:1 (CMAKE_MINIMUM_REQUIRED): CMake 3.2 or higher is required. You are running version 3.0.2 </code> Для установки cmake-3.5.2 нужно выполнить следующие команды <code bash> apt-get install build-essential wget http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz tar xf cmake-3.5.2.tar.gz cd cmake-3.5.2 ./configure make make install </code> а потом снова вернуться к папке с файлами comet сервера и ещё раз выполнить <code bash> cmake . make </code> ====== Настройки ====== CppComet использует базу данных mysql для хранения данных пользователей для авторизации на сервере. И хранения времени, когда пользователь был в сети. И для хранения временных данных, таких как не доставленные сообщения и другие данные. * Создайте базу в mysql на основе файла [[https://github.com/Levhav/comet-server/blob/master/db.sql|db.sql]] * В файле [[https://github.com/CppComet/comet-server/blob/master/comet.ini|comet.ini]] укажите реквизиты для доступа к бд в секции [db] <code ini> [db] host = localhost user = root password = root name = comet_db port = 3305 </code> Укажите пароль для доступа к api комет сервера <code ini> [main] ; пароль для доступа к api комет сервера password = 0000000000000000000000000000000000000000000000000000000000000000 </code> Остальные настройки из файла [[https://github.com/CppComet/comet-server/blob/master/comet.ini|comet.ini]] можно не менять. <note>Весь перечень настроек в статье [[comet:ini-file|Настройка файла comet.ini]] </note> ===== Добавление в автозагрузку ===== <code sh>cp ./comet.service /etc/systemd/system systemctl daemon-reload systemctl enable comet.service</code> ====== Запуск ====== Запуск в консольном режиме <code sh> ./cpp_comet </code> Запуск в режиме демона <code sh> systemctl start comet.service </code> ====== Подключение к комет серверу ====== Порт и ip для подключений от вебсокетов задаются в секции ws параметрами <code ini> ip = 0.0.0.0 port = 8087 </code> После запуска комет сервера если открыть адрес ( ВашДомен.com:8087 ) на котором должен быть комет сервер то должна открыться страница комет сервера. Если страница с приветсвием комет сервера открылась успешно то можно попробовать подключиться из javascript api. Для этого при подключении надо задать параметр node и если у вас port установлен не как 80 то надо указать ещё и порт для подключения. <code javascript> CometServer().start({user_id:1, user_key:"userHash", node:"ВашДомен.com:8087"}), </code> После этого комет сервер можно использовать, но только по протоколу http, для работы по протоколу https надо настроить ревирс прокси для предварительной расшифровки трафика. ====== Настройка nginx в качестве реверс прокси ====== Для того чтоб настроить работу комет сервера на одной машине с другим сервером. Или просто иметь возможность работы не только по http но и по https надо настроить реверс прокси. <note tip>Если есть желание то в качестве реверс прокси для websockets можно настроить не nginx а apache2 или что то ещё. Если не получается настроить nginx то можно попробовать найти в гугле другие примеры по запросу "как настроить реверс прокси для websockets"</note> Ниже приведён пример конфигурации nginx для проксирования трафика до комет сервера с /comet-server на комет сервер запущенный на порту 82 и всего остального трафика на веб сервер запущенном на порту 8080 <file text default> server { listen 0.0.0.0:80; server_name comet-server.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 120; proxy_send_timeout 120; proxy_read_timeout 180; } keepalive_disable none; lingering_close always; send_timeout 3600s; location /comet-server { proxy_pass http://127.0.0.1:82; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; keepalive_timeout 900; proxy_read_timeout 900; } } # HTTPS server server { listen 0.0.0.0:443; server_name comet-server.com; ssl on; ssl_certificate /etc/letsencrypt/live/comet-server.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/comet-server.com/privkey.pem; ssl_session_timeout 70m; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; ssl_prefer_server_ciphers on; keepalive_disable none; lingering_close always; send_timeout 3600s; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 120; proxy_send_timeout 120; proxy_read_timeout 180; } location /comet-server { proxy_pass http://127.0.0.1:82; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; keepalive_timeout 900; proxy_read_timeout 900; } } </file> ====== Возможные проблемы после при сборке ====== ==== CMAKE_MINIMUM_REQUIRED ==== Если получим ошибку CMAKE_MINIMUM_REQUIRED то значит надо [[https://cmake.org/install/|установить более новую версию CMake]] <code bash> CMake Error at CMakeLists.txt:1 (CMAKE_MINIMUM_REQUIRED): CMake 3.2 or higher is required. You are running version 3.0.2 </code> Для установки cmake-3.5.2 нужно выполнить следующие команды <code bash> apt-get install build-essential wget http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz tar xf cmake-3.5.2.tar.gz cd cmake-3.5.2 ./configure make make install </code> а потом снова вернуться к папке с файлами comet сервера и ещё раз выполнить <code bash> cmake . make </code> ==== GCC version must be at least 4.9! ==== Ошибка <code>GCC version must be at least 4.9!</code> означает что вам надо установить gcc как минимум 4.9 [[https://askubuntu.com/questions/428198/getting-installing-gcc-g-4-9-on-ubuntu/507068#507068|Инструкция для ubuntu по установки gcc 4.9]] ====== Возможные проблемы после установки ====== ===== Не правильные опции при подключении ===== Обратите внимание на то какие значения параметра port указаны в секциях [ws] и [cometql] именно на этих портах комет сервер будет ожидать входящие подключения. В шаблоне comet.ini поставляемом в репозитории параметр port для подключений из JavaScrip api выставлен в 8087 Это значит что подключатся надо так: <code JavaScript>cometApi.start({user_id:1, user_key:"userHash", node:"example.ru:8087"})</code> Параметр port для подключений из CometQL выставлен в 3300 Это значит что подключатся надо так: <code PHP>$link = mysqli_connect("example.ru", "root", "", "CometQL_v1", 3300);</code> Так же обратите внимание на то что надо указывать имя базы данных CometQL_v1, оно символизирует версию апи и вероятно потом выйдет версия CometQL_v2 и можно будет при подключении выбирать версию для работы. ===== Не читаемый файл comet.ini ===== Некоторые текстовые редакторы добавляют к utf8 файлу непечатные сиволы. После этого файл может выглядеть так же но кометсервер его будет парсить не правильно. Можно попробовать использовать другой редактор или удалить старый файл и создать новый с тем же текстом. ===== Ошибка при сборке в CentOS ===== <code> CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: MYSQL_INCLUDE_DIR (ADVANCED) </code> Не может найти заголовочные файлы mysql клиента. Можно попробовать установить пакет mysql-devel <code> yum install mysql-devel </code> ===== Ошибка при сборке в CentOS ===== <code> /etc/comet-server/comet-server/src/mystring.cpp:15:51: фатальная ошибка: uuid/uuid.h: Нет такого файла или каталога #include <uuid/uuid.h> </code> Не может найти заголовочные файл uuid.h. Можно попробовать установить пакеты libuuid libuuid-devel <code> yum install libuuid libuuid-devel </code>

Обсуждение

Андрей Пастушенко, Костромская 18, 95, 2018/01/28 22:39

При попытке запустить на CentOS в качестве демона выдаёт:

Job for comet.service failed because the control process exited with error code. See «systemctl status comet.service» and «journalctl -xe» for details.

В теме этой я с самого нуля почти, поэтому на самом старте тестового изучения «забуксовал»

Trapenok Victor, 2018/01/29 03:54

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

Игорь, на виртуалке, 2018/04/19 11:39

при команде «cmake .» выдает: – The CXX compiler identification is unknown CMake Error: your CXX compiler: «CMAKE_CXX_COMPILER-NOTFOUND» was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name. – System: Linux 3.10.0-693.21.1.el7.x86_64 – Processor: x86_64 CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES
OPENSSL_INCLUDE_DIR)

Call Stack (most recent call first):

/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake/Modules/FindOpenSSL.cmake:313 (find_package_handle_standard_args)
CMakeLists.txt:93 (find_package)

– Configuring incomplete, errors occurred! See also «/etc/comet-server/CMakeFiles/CMakeOutput.log». See also «/etc/comet-server/CMakeFiles/CMakeError.log».

подскажите куда копать?

Владимир, 2018/09/16 11:20

Здравствуйте!

Заинтересовался Вашим коммет сервером, пытаюсь установить на Debian 8 X64, но возникла ошибка. Сначала ругался на отсутствие пакета libmariadbclient-dev, я его поставил вручную, после этого установка завелась, но в конце установки вылезла эта ошибка:

Errors were encountered while processing: /var/cache/apt/archives/libmariadb-dev_1%3a10.3.9+maria~jessie_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)

На сервере до установки коммет сервера была установлена vesta cp. Можете, пожалуйста, подсказать как исправить эту ошибку?

Trapenok Victor, 2018/09/17 03:45

Ошибка похожа на проблемы в настройке пакетного менеджера а не комет сервера.

Роман, 2019/01/21 13:43

Добрый день при сборке CMakeFiles/cppcomet.dir/src/dbLink.cpp.o: In function `stmBase::init(dbLink*, char const*)': /root/comet/comet-server/src/dbLink.cpp:58: undefined reference to `mysql_stmt_close' /root/comet/comet-server/src/dbLink.cpp:61: undefined reference to `mysql_stmt_init' /root/comet/comet-server/src/dbLink.cpp:68: undefined reference to `mysql_stmt_prepare'

Trapenok Victor, 2019/01/21 16:50

Добрый день. Вероятно у вас не стоит что то из зависимостей связанных с mysql, какая у вас операционная система. Судя по ошибке линковщик не нашёл библиотеку mysql клиента

Ваш комментарий. Вики-синтаксис разрешён:
I I F᠎ K V