GNU/Linux >> LINUX-Kenntnisse >  >> Debian

PlaySMS Kannel SMS Gateway-Integration auf NGINX+Debian

In diesem Beitrag geht es um die PlaySMS-Kannel-SMS-Gateway-Integration auf NGINX+Debian

PlaySMS:

PlaySMS ist eine kostenlose Open-Source-SMS-Verwaltungssoftware, eine Webschnittstelle für SMS-Gateways und Massen-SMS-Dienste. In diesem Artikel konfigurieren wir PlaySMS auf Debian 10 mit NGINX-Webserver und MariaDB-Datenbank. Wir benötigen PHP, um die PlaySMS-Webanwendung und das Kannel SMS Gateway auszuführen. Um Kannel SMS Gateway zu installieren, lesen Sie bitte diesen Artikel.

Informationen zum Host der LAB-Umgebung:

PlaySMS- und Kannel-Server-Host-IP:192.168.10.38
Client-Host-IP:192.168.10.31

Installation von NGINX:

Wir werden das vorgefertigte Debian-Paket aus dem offiziellen NGINX-Repository verwenden

Laden Sie die NGINX-Pakete und den Repository-Signaturschlüssel herunter und fügen Sie sie dem Schlüsselring des apt-Programms hinzu:

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

Um eine NGINX-Quellliste hinzuzufügen, erstellen Sie /etc/apt/sources.list.d/nginx.list Datei mit untenstehendem Inhalt

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

Repository-Liste aktualisieren und NGINX installieren

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

Aktivieren und starten Sie den NGINX-Dienst und vergewissern Sie sich, dass der NGINX-Server betriebsbereit ist:

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

Vom Client-Rechner:

NGINX Server wird ausgeführt und zeigt seine Standardseite an.

Installation von PHP:

Installieren Sie jetzt PHP, PHP-FPM und andere für PlaySMS erforderliche PHP-Pakete

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

Aktivieren und starten Sie den PHP7.3-FPM-Dienst und prüfen Sie den Status

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

NGINX-Konfiguration für PlaySMS:

Erstellen Sie /etc/nginx/fastcgi.conf Datei mit untenstehendem Inhalt mit 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;

www-data ändern Benutzer und Gruppe zu nginx in /etc/php/7.3/fpm/pool.d/www.conf für die folgenden Konfigurationsanweisungen

Benutzer =www-Daten
Gruppe =www-Daten
listen.owner =www-Daten
listen.group =www-Daten

zu

ändern

Benutzer =nginx
Gruppe =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

Ersetzen Sie die NGINX-Standardkonfigurationsdatei, damit PlaySMS mit FPM/FastCGI ausgeführt wird

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

Fügen Sie die folgenden Zeilen zu /etc/nginx/conf.d/default.conf hinzu für 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;
   }
}

Sie müssen Ihre lokale Zeitzone für PHP einstellen.

Entkommentieren Sie und legen Sie date.timezone fest config-Direktive unter [Datum] Abschnitt in /etc/php/7.3/cli/php.ini und /etc/php/7.3/fpm/php.ini um die Ortszeit für Ihre Zeitzone zu erhalten. Beispiel:für New York, USA wäre die Konfiguration

date.timezone = America/New_York

Starten Sie php7.3-fpm neu Dienst nach dem Ändern der Zeitzoneninformationen.

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

Hinweis: Eine Zeitzonenliste finden Sie unter:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Platzieren Sie eine Testseite im NGINX-Stammverzeichnis, um die PHP-Konfiguration mit NGINX zu überprüfen

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

Durchsuchen Sie http://192.168.10.38/info.php vom Client-Rechner

PHP funktioniert ordnungsgemäß mit NGINX unter Verwendung des PHP-FPM-Sockets und zeigt PHP-Informationen an.

Installieren Sie MariaDB:

Wir benötigen einen Datenbankdienst für PlaySMS. Hier verwenden wir MariaDB.

Schlüssel für MariaDB in apt keyring importieren

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

Quellliste für MariaDB vorbereiten:Erstellen Sie /etc/apt/sources.list.d/MariaDB.list Datei einschließlich der folgenden Zeilen

# 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

Repository-Liste aktualisieren und MariaDB installieren

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

Wenn Sie aufgefordert werden, das Root-Passwort für MariaDB anzugeben, maskieren Sie es. Wir werden es später einstellen

MariaDB-Dienst aktivieren und starten

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

Führen Sie mysql_secure_installation aus Befehl zum Festlegen des Root-Passworts und anderer Sicherheitsanweisungen wie unten

Root-Passwort setzen? [J/n] J
Legen Sie das MariaDB-Root-Passwort fest
Anonyme Benutzer entfernen? [J/n] J
Root-Anmeldung aus der Ferne verbieten? [J/n] J
Testdatenbank und Zugriff darauf entfernen? [J/n] J
Und schlussendlich …
Berechtigungstabellen jetzt neu laden? [J/n] Ja

Erstellen Sie eine PlaySMS-Datenbank und einen Benutzer in 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

Jetzt ist MariaDB bereit für PlaySMS.

Installation von PlaySMS:

Abhängigkeiten installieren

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

Füge Playsms hinzu Benutzer

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

Protokollverzeichnis erstellen und entsprechende Berechtigung dafür festlegen

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

Wechseln Sie zu Playsms Benutzer

root@sms-gw:~# su - playsms

Laden Sie das neueste offizielle PlaySMS-Veröffentlichungsformular herunter und entpacken Sie es 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/

Hinweis: Verwenden Sie keine PlaySMS-Versionen unter 1.4.5, diese haben eine Sicherheitslücke, die in Version 1.4.5 behoben wurde

Erstellen Sie install.conf Datei mit folgendem Inhalt

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"

Führen Sie install-playsms.sh aus Datei zum Installieren von PlaySMS

Überprüfen Sie die Installationsdaten und bestätigen Sie jeden Schritt

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"

Verlassen Sie playsms Benutzer-Shell

Stellen Sie den richtigen Bin ein und conf Dateispeicherort in /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';

Außerdem muss die richtige conf eingestellt werden Dateispeicherort in /usr/local/playsms/bin/playsmsd

Ändern Sie [in der Nähe von Zeile 222 ]

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

Als unser Webserver-Benutzer/Gruppe ist nginx , um Berechtigungsprobleme zu vermeiden, ändern wir den Besitz für alle Inhalte im PlaySMS-Webstammverzeichnis auf nginx:nginx

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

Legen Sie ein neues Web-Root-Verzeichnis in /etc/nginx/conf.d/default.conf fest für PlaySMS

Starten Sie den NGINX-Dienst neu

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

Durchsuchen Sie http://192.168.10.38/ von der Client-Arbeitsstation aus und melden Sie sich mit dem Standard-Benutzernamen:admin, Passwort:admin

an

Unter Mein Konto> Einstellungen Menü Standardkennwort und andere Informationen ändern

Integration von PlaySMS mit Kannel SMS Gateway:

Gehen Sie zu Einstellung> Gateway und SMSC verwalten Klicken Sie im PlaySMS-Admin-Webportal auf das Pluszeichen (+) neben der Option Kannel Gateway

Geben Sie die Kannel-Gateway-Informationen so ein, wie wir sie in sendsms-user konfiguriert haben Gruppe in kannel.conf. Siehe:Kannel-Installation

Hinweis: Diese Informationen gelten für den bidirektionalen HTTP-API-Zugriff zwischen Kannel und PlaySMS. Da wir beide Dienste auf demselben Server installieren, haben wir localhost verwendet für Bearerbox, SMS senden und PlaySMS-URL. Bitte verwenden Sie Ihre Host-IP-Adresse/FQDN, wenn Sie Kannel und PlaySMS auf unterschiedlichen Servern installieren.

Der Kannel SMSC wird unter der Registerkarte SMSC in Einstellungen hinzugefügt> Gateway und SMSC verwalten

Gehen Sie zu Einstellung> Hauptkonfiguration . Legen Sie Kannel fest als Standard-SMSC und speichern Sie die Konfiguration.

SMS von PlaySMS senden:

Gehen Sie zu Mein Konto> Nachricht verfassen, SMS schreiben und versenden

Kannel-Zugriffsprotokoll:

Telefon des Empfängers:

SMS in PlaySMS von Kannel empfangen:

Um eingehende SMS zu erhalten, müssen wir die PlaySMS-Rückruf-URL get-url hinzufügen unter sms-service Gruppe in kannel.conf Datei

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"

Sie finden eingehende SMS in Berichte> Sandbox im PlaySMS-Portal.

Unter Einstellungen> Eingehende SMS weiterleiten Sie können Ziel/Aktion für eine eingehende SMS festlegen.

Fügen Sie playsmsd hinzu zum Starten mit systemd :

Erstellen Sie die systemd-Unit /etc/systemd/system/playsms.service mit untenstehendem Inhalt

[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

Laden Sie systemd neu und aktivieren/starten Sie 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

Referenzen:

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


Debian
  1. nginx - 413 Anforderungsentität zu groß

  2. 502 Bad Gateway Error NGINX [Lösung]

  3. Warum stimmt das Awk-Muster nicht mit den Konfigurationsargumenten von Nginx -v überein?

  4. So installieren und konfigurieren Sie den LEMP-Server (Nginx, MySQL und PHP) auf einem Debian 6 (Squeeze) VPS

  5. getpwnam(www) ist in /etc/nginx/nginx.conf fehlgeschlagen

So installieren Sie Nginx unter Debian 11

Kannel SMS Gateway auf Debian 10/11

SMS-Benachrichtigung von Nagios mit Kannel

So beheben Sie das 504-Gateway-Timeout auf Nginx

So beheben Sie den Fehler 502 Bad Gateway auf Nginx

So installieren Sie Nginx unter Debian 10