GNU/Linux >> Znalost Linux >  >> Debian

Integrace SMS brány PlaySMS Kannel na NGINX+Debian

Tento příspěvek je o integraci SMS brány PlaySMS Kannel na NGINX+Debian

PlaySMS:

PlaySMS je bezplatný a open source software pro správu SMS, webové rozhraní pro SMS brány a hromadné SMS služby. V tomto článku nakonfigurujeme PlaySMS na Debianu 10 s webovým serverem NGINX a databází MariaDB. Ke spuštění webové aplikace PlaySMS a Kannel SMS Gateway budeme potřebovat PHP. Chcete-li nainstalovat Kannel SMS Gateway, přečtěte si tento článek.

Informace o hostiteli prostředí LAB:

IP hostitelského serveru PlaySMS a Kannel Server:192.168.10.38
IP klientského hostitele:192.168.10.31

Instalace NGINX:

Budeme používat předem sestavený balíček Debian z oficiálního úložiště NGINX

Stáhněte si a přidejte balíčky NGINX a podpisový klíč úložiště do kroužku na klíče programu apt:

root@sms-gw:~# wget https://nginx.org/keys/nginx_signing.key
root@sms-gw:~# apt-key add nginx_signing.key

Chcete-li přidat zdrojový seznam NGINX, vytvořte /etc/apt/sources.list.d/nginx.list soubor s níže uvedeným obsahem

deb https://nginx.org/packages/debian/ buster nginx
deb-src https://nginx.org/packages/debian/ buster nginx

Aktualizujte seznam úložišť a nainstalujte NGINX

root@sms-gw:~# apt-get update
root@sms-gw:~# apt-get install –y nginx

Povolte a spusťte službu NGINX a ověřte, zda je server NGINX spuštěn:

root@sms-gw:~# systemctl enable nginx.service
root@sms-gw:~# systemctl start nginx.service
root@sms-gw:~# netstat –lntp
root@sms-gw:~# curl -l 127.0.0.1

Z klientského počítače:

NGINX Server běží a zobrazuje svou výchozí stránku.

Instalace PHP:

Nyní nainstalujte PHP, PHP-FPM a další balíčky PHP potřebné pro PlaySMS

root@sms-gw:~# apt-get install –y php php-fpm php-mysql php7.3-mysql php7.3-cli php7.3-common php7.3-xml php7.3-xmlrpc php7.3-mbstring php7.3-gd php7.3-curl

Povolte a spusťte službu PHP7.3-FPM a zkontrolujte stav

root@sms-gw:~# systemctl enable php7.3-fpm.service
root@sms-gw:~# systemctl start php7.3-fpm.service
root@sms-gw:~# systemctl status php7.3-fpm.service

Konfigurace NGINX pro PlaySMS:

Vytvořte /etc/nginx/fastcgi.conf soubor s níže uvedeným obsahem pomocí vim

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

Změňte data www uživatele a skupinu do nginx v /etc/php/7.3/fpm/pool.d/www.conf pro níže uvedené konfigurační direktivy

uživatel =www-data
skupina =www-data
listen.owner =www-data
listen.group =www-data

změnit na

uživatel =nginx
skupina =nginx
listen.owner =nginx
listen.group =nginx

root@sms-gw:~# sed -i 's/www-data/nginx/g'  /etc/php/7.3/fpm/pool.d/www.conf

Nahraďte výchozí konfigurační soubor NGINX pro spuštění PlaySMS pomocí FPM/FastCGI

root@sms-gw:~# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bk
root@sms-gw:~# vim /etc/nginx/conf.d/default.conf

Přidejte níže uvedené řádky do /etc/nginx/conf.d/default.conf pro PlaySMS

server {
   listen       80;
   root   /usr/share/nginx/html;
   index  index.php index.html index.htm;
   server_name  _;

    access_log  /var/log/nginx/playsms_access.log;
   error_log   /var/log/nginx/playsms_error.log;

    charset utf-8;

    location / {
       try_files $uri $uri/ =404;
   }

   location ~ .php {
       include fastcgi.conf;
       fastcgi_split_path_info ^(.+.php)(/.+)$;
       fastcgi_pass unix:/run/php/php7.3-fpm.sock;
       }

   location ~ /\.ht {
       deny  all;
   }
}

Budete muset nastavit místní časové pásmo pro PHP.

Odkomentujte a nastavte date.timezone config pod [Datum] sekce v/etc/php/7.3/cli/php.ini a /etc/php/7.3/fpm/php.ini získat místní čas pro vaše časové pásmo. Příklad:pro New York, USA by konfigurace byla

date.timezone = America/New_York

Restartujte php7.3-fpm službu po změně informací o časovém pásmu.

root@sms-gw:~# systemctl restart php7.3-fpm.service

Poznámka: Seznam časových pásem naleznete na:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Umístěte testovací stránku do kořenového adresáře NGINX a zkontrolujte konfiguraci PHP pomocí NGINX

root@sms-gw:~# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php

Prohlédněte si http://192.168.10.38/info.php z klientského počítače

PHP funguje správně s NGINX pomocí soketu PHP-FPM a zobrazování informací o PHP.

Nainstalovat MariaDB:

Pro PlaySMS budeme potřebovat databázovou službu. Zde používáme MariaDB.

Importujte klíč pro MariaDB do kroužku na klíče apt

root@sms-gw:~# apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

Připravte seznam zdrojů pro MariaDB:vytvořte /etc/apt/sources.list.d/MariaDB.list soubor včetně níže uvedených řádků

# MariaDB 10.3 repository list - created 2021-12-28 18:41 UTC
# https://mariadb.org/download/
deb [arch=amd64,arm64,ppc64el] https://download.nus.edu.sg/mirror/mariadb/repo/10.3/debian buster main
deb-src https://download.nus.edu.sg/mirror/mariadb/repo/10.3/debian buster main

Aktualizujte seznam úložišť a nainstalujte MariaDB

root@sms-gw:~# apt-get update
root@sms-gw:~# apt-get install –y mariadb-server

Pokud požádá o zadání hesla uživatele root pro MariaDB, ukončete jej. Nastavíme to později

Povolit a spustit službu MariaDB

root@sms-gw:~# systemctl enable mariadb.service
root@sms-gw:~# systemctl start mariadb.service

Spusťte mysql_secure_installation příkaz k nastavení hesla uživatele root a dalších bezpečnostních direktiv, jak je uvedeno níže

Nastavit heslo root? [A/N] A
Nastavte root heslo MariaDB
Odebrat anonymní uživatele? [A/N] A
Zakázat vzdálené přihlášení root? [A/N] A
Odebrat testovací databázi a přístup k ní? [A/N] A
A nakonec …
Znovu načíst tabulky oprávnění? [A/n] A

Vytvořte databázi PlaySMS a uživatele v MariaDB

root@sms-gw:~# mysql -u root –p
MariaDB [(none)]> CREATE DATABASE playsms;
MariaDB [(none)]> CREATE USER 'playsmsuser'@'localhost' IDENTIFIED BY 'playsmsSecuredPassword';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON playsms.* TO 'playsmsuser'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

Nyní je MariaDB připravena na PlaySMS.

Instalace PlaySMS:

Instalovat závislosti

root@sms-gw:~# apt-get install -y zip

Přidejte hraní uživatel

root@sms-gw:~# adduser playsms --disabled-password --home=/usr/local/playsms/

Vytvořte adresář Log a nastavte mu příslušná oprávnění

root@sms-gw:~# mkdir /var/log/playsms
root@sms-gw:~# chown nginx:nginx -R /var/log/playsms

Přepněte na playsms uživatel

root@sms-gw:~# su - playsms

Stáhněte si a rozbalte nejnovější oficiální formulář vydání PlaySMS https://github.com/playsms/playsms/archive/refs/tags/1.4.5.tar.gz

playsms@sms-gw:~$ cd /tmp/
playsms@sms-gw:/tmp$ wget https://github.com/playsms/playsms/archive/refs/tags/1.4.5.tar.gz
playsms@sms-gw:/tmp$ mv 1.4.5.tar.gz playsms-1.4.5.tar.gz
playsms@sms-gw:/tmp$ tar -zxf playsms-1.4.5.tar.gz
playsms@sms-gw:/tmp$ cd playsms-1.4.5/

Poznámka: Nepoužívejte PlaySMS verze nižší než 1.4.5, ty mají bezpečnostní chybu, která byla opravena ve verzi 1.4.5

Vytvořte soubor install.conf soubor s níže uvedeným obsahem

DBUSER="playsmsuser"
DBPASS="playsmsSecuredPassword"
DBNAME="playsms"
DBHOST="localhost"
DBPORT="3306"
WEBSERVERUSER="nginx"
WEBSERVERGROUP="nginx"
PATHSRC="$(pwd)"
PATHWEB="/usr/local/playsms/html"
PATHLIB="/usr/local/playsms/lib"
PATHBIN="/usr/local/playsms/bin"
PATHLOG="/var/log/playsms"
PATHCONF="/usr/local/playsms/etc"

Spusťte install-playsms.sh soubor k instalaci PlaySMS

Zkontrolujte Data instalace a potvrďte každý krok

playsms@sms-gw:/tmp/playsms-1.4.5$ ./install-playsms.sh

playSMS Install Script for Ubuntu (Debian based)
==================================================================
WARNING:
- This install script WILL NOT upgrade currently installed playSMS
- This install script WILL REMOVE your current playSMS database
- This install script is compatible ONLY with playSMS version 1.4
- Please BACKUP before proceeding
==================================================================

You are NOT running this installation script as root
That means you need to make sure that this Linux user has
permission to create necessary directories

==================================================================

Proceed ?

When you're ready press [y/Y] or press [Control+C] to cancel Y

==================================================================

INSTALL DATA:

MySQL username      = playsmsuser
MySQL password      = playsmsSecuredPassword
MySQL database      = playsms
MySQL host          = localhost
MySQL port          = 3306

Web server user     = nginx
Web server group    = nginx

playSMS source path = /tmp/playsms-1.4.5

playSMS web path    = /usr/local/playsms/html
playSMS lib path    = /usr/local/playsms/lib
playSMS bin path    = /usr/local/playsms/bin
playSMS log path    = /var/log/playsms

playSMS conf path   = /usr/local/playsms/etc

==================================================================

Please read and confirm INSTALL DATA above

When you're ready press [y/Y] or press [Control+C] to cancel Y

==================================================================

Are you sure ?

Please read and check again the INSTALL DATA above

When you're ready press [y/Y] or press [Control+C] to cancel Y

==================================================================

Installation is in progress

DO NOT press [Control+C] until this script ends

==================================================================

Getting composer from https://getcomposer.com

Please wait while the install script downloading composer

Composer is ready in this folder

Pleas wait while composer getting and updating required packages

Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files

Composer has been installed and packages has been updated

Start................end

PLAYSMSD_CONF = /usr/local/playsms/etc/playsmsd.conf
PLAYSMS_PATH = /usr/local/playsms/html
PLAYSMS_LIB = /usr/local/playsms/lib
PLAYSMS_BIN = /usr/local/playsms/bin
PLAYSMS_LOG = /var/log/playsms
DAEMON_SLEEP = 1
ERROR_REPORTING = E_ALL ^ (E_NOTICE | E_WARNING)
IS_RUNNING =
PIDS schedule =
PIDS ratesmsd =
PIDS dlrssmsd =
PIDS recvsmsd =
PIDS sendsmsd =

playsmsd has been started
schedule at pid 21444
ratesmsd at pid 21447
dlrssmsd at pid 21450
recvsmsd at pid 21453
sendsmsd at pid 21455

playsmsd is running
schedule at pid 21444
ratesmsd at pid 21447
dlrssmsd at pid 21450
recvsmsd at pid 21453
sendsmsd at pid 21455


playSMS has been installed on your system

Your playSMS daemon script operational guide:

- To start it : playsmsd /usr/local/playsms/etc/playsmsd.conf start
- To stop it  : playsmsd /usr/local/playsms/etc/playsmsd.conf stop
- To check it : playsmsd /usr/local/playsms/etc/playsmsd.conf check

ATTENTION

=========

When message "unable to start playsmsd" occurred above, please check:
1. Possibly theres an issue with composer updates, try to run: "./composer update"
2. Manually run playsmsd, "playsmsd /usr/local/playsms/etc/playsmsd.conf start", and then "playsmsd /usr/local/playsms/etc/playsmsd.conf status"

Ukončete playsms uživatelský shell

Nastavte správný přihrádka a conf umístění souboru v /usr/local/playsms/html/plugin/feature/playsmslog/config.php

$plugin_config['playsmslog']['playsmsd']['bin'] = '/usr/local/playsms/bin/playsmsd';
$plugin_config['playsmslog']['playsmsd']['conf'] = 'https://1118798822.rsc.cdn77.org/usr/local/playsms/etc/playsmsd.conf';

Také je potřeba nastavit správné conf umístění souboru v /usr/local/playsms/bin/playsmsd

Změňte [blízko čáry č. 222 ]

$PLAYSMSD_CONF =”;
Na
$PLAYSMSD_CONF =‘/usr/local/playsms/etc/playsmsd.conf’;

Jako uživatel/skupina našeho webového serveru je nginx , abychom se vyhnuli problémům s oprávněními, změníme vlastnictví veškerého obsahu v kořenovém adresáři webu PlaySMS na nginx:nginx

root@sms-gw:~# cd /usr/local/playsms/html/
root@sms-gw:/usr/local/playsms/html# chown nginx:nginx -R ./*

Nastavte nový webový kořenový adresář v /etc/nginx/conf.d/default.conf pro PlaySMS

Restartujte službu NGINX

root@sms-gw:~# systemctl restart nginx.service

Procházet http://192.168.10.38/ z klientské pracovní stanice a přihlaste se pomocí výchozího uživatelského jména:admin, hesla:admin

V části Můj účet> Předvolby Nabídka Změnit výchozí heslo a další informace

Integrace PlaySMS s Kannel SMS Gatway:

Přejděte na Nastavení> Správa brány a SMSC na webovém portálu pro správu PlaySMS klikněte na znaménko plus (+) vedle možnosti brány kanálu

Vložte informace o bráně Kannel tak, jak jsme nakonfigurovali v sendsms-user skupina v kannel.conf. Ref:Instalace kanálu

Poznámka: Tyto informace jsou pro obousměrný přístup HTTP API mezi Kannel a PlaySMS. Protože obě služby instalujeme na stejný server, použili jsme localhost pro Bearerbox, Send SMS a PlaySMS URL. Pokud instalujete Kannel a PlaySMS na různé servery, použijte svou hostitelskou IP adresu/FQDN.

Kannel SMSC bude přidán na kartu SMSC v Nastavení> Správa brány a SMSC

Přejděte na Nastavení> Hlavní konfigurace . Nastavte Kannel jako Výchozí SMSC a uložte konfiguraci.

Odesílání SMS z PlaySMS:

Přejděte na Můj účet> Napsat zprávu napište SMS a odešlete

Protokol přístupu ke kanálu:

Telefon příjemce:

Příjem SMS ve službě PlaySMS z Kannelu:

Abychom dostali příchozí SMS, budeme muset přidat adresu URL zpětného volání PlaySMS get-url pod službou SMS skupina v kannel.conf soubor

group = sms-service
get-url = "http://localhost/index.php?app=call&cat=gateway&plugin=kannel&access=geturl&t=%t&q=%q&a=%a&Q=%Q&smsc=kannel"

Příchozí SMS najdete v Přehledy> Sandbox na PlaySMS Portal.

Z Nastavení> Směrovat příchozí SMS můžete nastavit cíl/akci pro příchozí SMS.

Přidat playsmsd ke spuštění pomocí systemd :

Vytvořte systémovou jednotku /etc/systemd/system/playsms.service s níže uvedeným obsahem

[Unit]
Description=PlaySMS
Documentation=https://playsms.org/documentation/
After=network-online.target
Wants=network-online.target

[Service]
User=playsms
Type=forking
ExecStart=/usr/local/playsms/bin/playsmsd start
ExecReload=/usr/local/playsms/bin/playsmsd restart
ExecStop=/usr/local/playsms/bin/playsmsd stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

Znovu načtěte systemd a povolit/spustit playsms.service

root@sms-gw:~# systemctl daemon-reload
root@sms-gw:~# systemctl enable playsms.service
root@sms-gw:~# systemctl start playsms.service
root@sms-gw:~# systemctl status playsms.service

Odkazy:

https://playsms.org/documentation/
https://mariadb.org/download/?t=repo-config
https://docs.nginx.com/nginx/admin-guide/installing-nginx/


Debian
  1. Jak znovu zkompilovat webový server nginx na Debian Linuxu

  2. nginx - 413 entita požadavku je příliš velká

  3. nginx:[emerg] neznámá direktiva v /etc/nginx/sites-enabled/example.com:3

  1. Jak opravit časový limit brány 504 na serveru Nginx

  2. 502 Chyba špatné brány NGINX [Řešení]

  3. Jak nainstalovat Microweber na Debian 9

  1. Proč se vzor Awk neshoduje s argumenty konfigurace Nginx -v?

  2. Časový limit brány nginx 504

  3. getpwnam(www) se nezdařilo v /etc/nginx/nginx.conf