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_YorkRedémarrez le php7.3-fpm service après avoir modifié les informations de fuseau horaire.
root@sms-gw :~# systemctl redémarre php7.3-fpm.serviceRemarque : 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.phpParcourir 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 mainMettre à jour la liste des référentiels et installer MariaDB
root@sms-gw :~# apt-get update
root@sms-gw :~# apt-get install –y mariadb-serverS'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.serviceExé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] OCré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)]> quitterMariaDB est maintenant prêt pour PlaySMS.
Installation de PlaySMS :
Installer les dépendances
root@sms-gw :~# apt-get install -y zipAjouter 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/playsmsPasser aux playsms utilisateur
root@sms-gw :~# su -playsmsTé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.serviceParcourir 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.cibleRecharger 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.serviceRéférences :
https://playsms.org/documentation/
https://mariadb.org/download/?t=repo-config
https://docs.nginx.com/nginx/admin-guide/installing-nginx/