GNU/Linux >> Tutoriels Linux >  >> Debian

Intégration de PlaySMS Kannel SMS Gateway sur NGINX + Debian

Cet article concerne l'intégration de PlaySMS Kannel SMS Gateway sur NGINX+Debian

PlaySMS :

PlaySMS est un logiciel de gestion de SMS gratuit et open source, une interface Web pour les passerelles SMS et les services SMS en masse. Dans cet article, nous allons configurer PlaySMS sur Debian 10 avec le serveur Web NGINX et la base de données MariaDB. Nous aurons besoin de PHP pour exécuter l'application Web PlaySMS et la passerelle SMS Kannel. Pour installer Kannel SMS Gateway, veuillez consulter cet article.

Informations sur l'hôte de l'environnement LAB :

PlaySMS et adresse IP de l'hôte du serveur Kannel :192.168.10.38
IP de l'hôte client :192.168.10.31

Installation de NGINX :

Nous utiliserons le paquet Debian préconstruit à partir du référentiel officiel NGINX

Téléchargez et ajoutez les packages NGINX et la clé de signature du référentiel au trousseau de clés du programme apt :

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

Pour ajouter une liste de sources NGINX, créez /etc/apt/sources.list.d/nginx.list fichier avec le contenu ci-dessous

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

Mettre à jour la liste des référentiels et installer NGINX

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

Activez et démarrez le service NGINX et vérifiez que le serveur NGINX est opérationnel :

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

À partir de l'ordinateur client :

NGINX Server est en cours d'exécution et affiche sa page par défaut.

Installation de PHP :

Installez maintenant PHP, PHP-FPM et les autres packages PHP requis pour 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

Activer et démarrer le service PHP7.3-FPM et vérifier l'état

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

Configuration NGINX pour PlaySMS :

Créez /etc/nginx/fastcgi.conf fichier avec le contenu ci-dessous en utilisant 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 $schéma ;
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 $adresse_distante ;
fastcgi_param REMOTE_PORT $port_distant ;
fastcgi_param SERVER_ADDR $adresse_serveur ;
fastcgi_param PORT_SERVEUR $port_serveur ;
fastcgi_param SERVER_NAME $server_name ;

# PHP uniquement, requis si PHP a été compilé avec --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200 ;

Modifier www-data utilisateur et groupe à nginx dans /etc/php/7.3/fpm/pool.d/www.conf pour les directives de configuration ci-dessous

utilisateur =www-données
groupe =www-données
listen.owner =www-data
listen.group =www-data

changer pour

utilisateur =nginx
groupe =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

Remplacez le fichier de configuration par défaut de NGINX pour que PlaySMS s'exécute avec 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

Ajoutez les lignes ci-dessous à /etc/nginx/conf.d/default.conf pour PlaySMS

serveur { 
écouter 80 ;
racine /usr/share/nginx/html ;
index index.php index.html index.htm;
nom du serveur _;

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

jeu de caractères utf-8 ;

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

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

emplacement ~ /\.ht {
Nier tous;
}
}

Vous devrez définir votre fuseau horaire local pour PHP.

Décommentez et définissez date.timezone directive de configuration sous [Date] section dans /etc/php/7.3/cli/php.ini et /etc/php/7.3/fpm/php.ini pour obtenir l'heure locale de votre fuseau horaire. Exemple :pour New York, la configuration des États-Unis serait

date.timezone =Amérique/New_York

Redémarrez le php7.3-fpm service après avoir modifié les informations de fuseau horaire.

root@sms-gw :~# systemctl redémarre php7.3-fpm.service

Remarque : Pour la liste des fuseaux horaires, veuillez visiter :https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Placez une page de test dans le répertoire racine de NGINX pour vérifier la configuration PHP avec NGINX

root@sms-gw:~# echo ""> /usr/share/nginx/html/info.php

Parcourir http://192.168.10.38/info.php depuis l'ordinateur client

PHP fonctionne correctement avec NGINX en utilisant le socket PHP-FPM et en affichant les informations PHP.

Installer MariaDB :

Nous aurons besoin d'un service de base de données pour PlaySMS. Ici, nous utilisons MariaDB.

Importer la clé pour MariaDB dans le trousseau de clés apt

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

Préparez la liste des sources pour MariaDB :créez /etc/apt/sources.list.d/MariaDB.list fichier comprenant les lignes ci-dessous

# Liste de dépôts MariaDB 10.3 - créée le 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

Mettre à jour la liste des référentiels et installer MariaDB

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

S'il vous demande de fournir un mot de passe root pour MariaDB, échappez-le. Nous le réglerons plus tard

Activer et démarrer le service MariaDB

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

Exécutez mysql_secure_installation commande pour définir le mot de passe root et d'autres directives de sécurité comme ci-dessous

Définir le mot de passe root ? [O/n] O
Définir le mot de passe racine MariaDB
Supprimer les utilisateurs anonymes ? [O/n] O
Interdire la connexion root à distance ? [O/n] O
Supprimer la base de données de test et y accéder ? [O/n] O
Et enfin …
Recharger les tables de privilèges maintenant ? [O/n] O

Créer une base de données et un utilisateur PlaySMS dans MariaDB

root@sms-gw :~# mysql -u root –p 
MariaDB [(aucun)]> CREATE DATABASEplaysms ;
MariaDB [(aucun)]> CRÉER UN UTILISATEUR 'playsmsuser'@'localhost' IDENTIFIÉ PAR 'playsmsSecuredPassword' ;
MariaDB [(aucun)]> ACCORDER TOUS LES PRIVILÈGES SUR playsms.* À 'playsmsuser'@'localhost' ;
MariaDB [(aucun)]> PRIVILÈGES FLUSH ;
MariaDB [(aucun)]> quitter

MariaDB est maintenant prêt pour PlaySMS.

Installation de PlaySMS :

Installer les dépendances

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

Ajouter des playsms utilisateur

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

Créez un répertoire de journaux et définissez-y les autorisations appropriées

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

Passer aux playsms utilisateur

root@sms-gw :~# su -playsms

Téléchargez et décompressez le dernier formulaire de version officiel de 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
jouems@sms-gw:/tmp$ mv 1.4.5.tar.gz jouems-1.4.5.tar.gz
jouems@sms-gw:/tmp$ tar -zxf jouems-1.4.5.tar.gz
playsms@sms-gw:/tmp$cdplaysms-1.4.5/

Remarque : N'utilisez pas la version PlaySMS inférieure à 1.4.5, ceux-ci ont une vulnérabilité de sécurité qui a été corrigée dans la version 1.4.5

Créez install.conf fichier avec le contenu ci-dessous

DBUSER="playsmsuser" 
DBPASS="playsmsSecuredPassword"
DBNAME="playsms"
DBHOST="hôte local"
DBPORT="3306"
WEBSERVERUSER="nginx"
WEBSERVERGROUP="nginx"
PATHSRC="$(mot de passe)"
PATWEB="/usr/local/playsms/html"
PATHLIB="/usr/local/playsms/lib"
PATHBIN="/usr/local/playsms/bin"
PATHLOG="/var/log/playsms"
PATHCONF="/usr/local/playsms/etc"

Exécutez install-playsms.sh fichier pour installer PlaySMS

Vérifiez les données d'installation et confirmez chaque étape

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

Script d'installation playSMS pour Ubuntu (basé sur Debian)
=================================================================
AVERTISSEMENT:
- Ce script d'installation NE mettra PAS à jour playSMS actuellement installé
- Ce script d'installation SUPPRIMERA votre base de données playSMS actuelle
- Ce script d'installation est compatible UNIQUEMENT avec playSMS version 1.4
- Veuillez SAUVEGARDER avant de continuer
=================================================================

Vous n'exécutez PAS ce script d'installation en tant que root
Cela signifie que vous devez vous assurer que cet utilisateur Linux a
autorisation de créer les répertoires nécessaires

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

Procéder ?

Lorsque vous êtes prêt, appuyez sur [y/Y] ou appuyez sur [Control+C] pour annuler Y

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

INSTALLER LES DONNÉES :

Nom d'utilisateur MySQL =playmsuser
Mot de passe MySQL =playsmsSecuredPassword
Base de données MySQL =playsms
Hôte MySQL =hôte local
Port MySQL =3306

Utilisateur du serveur Web =nginx
Groupe de serveurs Web =nginx

chemin source playSMS =/tmp/playsms-1.4.5

chemin web playSMS =/usr/local/playsms/html
chemin de la bibliothèque playSMS =/usr/local/playsms/lib
chemin bin playSMS =/usr/local/playsms/bin
chemin du journal playSMS =/var/log/playsms

chemin de configuration playSMS =/usr/local/playsms/etc

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

Veuillez lire et confirmer les données d'installation ci-dessus

Lorsque vous êtes prêt, appuyez sur [y/Y] ou appuyez sur [Control+C] pour annuler Y

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

Es-tu sûr ?

Veuillez lire et vérifier à nouveau les DONNÉES D'INSTALLATION ci-dessus

Lorsque vous êtes prêt, appuyez sur [y/Y] ou appuyez sur [Control+C] pour annuler Y

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

L'installation est en cours

N'appuyez PAS sur [Ctrl+C] jusqu'à ce que ce script se termine

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

Obtenir le compositeur de https://getcomposer.com

Veuillez patienter pendant que le script d'installation télécharge le compositeur

Composer est prêt dans ce dossier

Veuillez patienter pendant que le compositeur récupère et met à jour les packages requis

Chargement des référentiels composer avec les informations de package
Mise à jour des dépendances
Rien à modifier dans le fichier de verrouillage
Installation des dépendances à partir du fichier de verrouillage (y compris require-dev)
Rien à installer, mettre à jour ou supprimer
Génération de fichiers à chargement automatique

Composer a été installé et les packages ont été mis à jour

Début Fin

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 =
Horaire PIDS =
Taux PIDSmsd =
PIDS dlrssmsd =
PIDS recvsmsd =
PIDS envoie msd =

playmsd a été lancé
horaire au pid 21444
tauxmsd au pid 21447
dlrssmsd au pid 21450
recvsmsd au pid 21453
envoie msd au pid 21455

playmsd est en cours d'exécution
horaire au pid 21444
tauxmsd au pid 21447
dlrssmsd au pid 21450
recvsmsd au pid 21453
envoie msd au pid 21455


playSMS a été installé sur votre système

Guide opérationnel de votre script de démon playSMS :

- Pour le démarrer :playsmsd /usr/local/playsms/etc/playsmsd.conf start
- Pour l'arrêter :playsmsd /usr/local/playsms/etc/playsmsd.conf stop
- Pour le vérifier :playsmsd /usr/local/playsms/etc/playsmsd.conf check

ATTENTION

=========

Lorsque le message "unable to start playsmsd" s'est produit ci-dessus, veuillez vérifier :
1. Il y a peut-être un problème avec les mises à jour du compositeur, essayez d'exécuter :"./composer update"
2. Lancez manuellement playsmsd, "playsmsd /usr/local/playsms/etc/playsmsd.conf start", puis "playsmsd /usr/local/playsms/etc/playsmsd.conf status"

Quitter les playsms shell utilisateur

Définissez le bin approprié et conf emplacement du fichier dans /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';

Il faut également définir la bonne conf emplacement du fichier dans /usr/local/playsms/bin/playsmsd

Changer [près de la ligne 222 ]

$PLAYSMSD_CONF =”;
Pour
$PLAYSMSD_CONF ='/usr/local/playsms/etc/playsmsd.conf';

Comme notre utilisateur/groupe de serveur Web est nginx , pour éviter les problèmes d'autorisation, nous allons changer la propriété de tous les contenus du répertoire racine Web de PlaySMS en nginx:nginx

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

Définissez le nouveau répertoire racine Web dans /etc/nginx/conf.d/default.conf pour PlaySMS

Redémarrez le service NGINX

root@sms-gw :~# systemctl redémarre nginx.service

Parcourir http://192.168.10.38/ depuis le poste client et connectez-vous avec le nom d'utilisateur par défaut :admin, mot de passe :admin

Sous Mon compte> Préférences Menu Modifier le mot de passe par défaut et d'autres informations

Intégration de PlaySMS avec Kannel SMS Gatway :

Allez dans Paramètres> Gérer la passerelle et le SMSC dans le portail Web d'administration de PlaySMS, cliquez sur le signe Plus (+) à côté de l'option de passerelle de canal

Mettez les informations de la passerelle Kannel comme nous l'avons configuré dans sendsms-user groupe dans kannel.conf. Réf :Installation du canal

Remarque : Ces informations concernent l'accès bidirectionnel à l'API HTTP entre Kannel et PlaySMS. Comme nous installons les deux services sur le même serveur, nous avons utilisé localhost pour Bearerbox, Envoyer des SMS et PlaySMS URL. Veuillez utiliser l'adresse IP/FQDN de votre hôte si vous installez Kannel et PlaySMS sur des serveurs différents.

Le Kannel SMSC sera ajouté sous l'onglet SMSC dans Paramètres> Gérer la passerelle et le SMSC

Allez dans Paramètres> Configuration principale . Définir Canal comme SMSC par défaut et enregistrez la configuration.

Envoi de SMS depuis PlaySMS :

Accédez à Mon compte> Composer un message, rédiger un SMS et l'envoyer

Journal d'accès au canal :

Téléphone du destinataire :

Réception de SMS dans PlaySMS de Kannel :

Pour recevoir les SMS entrants, nous devrons ajouter l'URL de rappel PlaySMS get-url sous service SMS groupe dans kannel.conf fichier

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

Vous trouverez les SMS entrants dans Rapports > Sandbox dans le portail PlaySMS.

Depuis Paramètres > Router les SMS entrants vous pouvez définir la destination/action pour un SMS entrant.

Ajouter playsmsd pour démarrer en utilisant systemd :

Créer l'unité systemd /etc/systemd/system/playsms.service avec le contenu ci-dessous

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

[Un service]
Utilisateur=playsms
Type =bifurcation
ExecStart=/usr/local/playsms/bin/playsmsd start
ExecReload=/usr/local/playsms/bin/playsmsd redémarrer
ExecStop=/usr/local/playsms/bin/playsmsd stop
Redémarrer =en cas d'échec

[Installer]
WantedBy=multi-utilisateur.cible

Recharger systemd et activez/démarrez 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 :~# l'état de systemctl jouems.service

Références :

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


Debian
  1. Comment recompiler le serveur Web nginx sur Debian Linux

  2. 502 Erreur de passerelle incorrecte NGINX [Solution]

  3. Pourquoi le modèle Awk ne correspond-il pas aux arguments de configuration de Nginx -v ?

  4. Comment installer et configurer un serveur LEMP (Nginx, MySQL et PHP) sur un VPS Debian 6 (squeeze)

  5. Comment installer Microweber sur Debian 9

Comment installer Nginx sur Debian 11

Passerelle SMS Kannel sur Debian 10/11

Notification par SMS de Nagios via Kannel

Comment réparer le délai d'expiration de la passerelle 504 sur Nginx

Comment réparer l'erreur 502 Bad Gateway sur Nginx

Comment installer Nginx sur Debian 10