Démarrez rapidement un serveur Web avec PHP
Je n'étais pas à la maison hier… et je me suis souvenu que j'avais un fichier important dans mon NAS, a la maison. Je peux accéder à mon NAS via le VPN que j'ai activé, mais le document se retrouve dans un chemin dont je ne me souvenais pas à l'époque, au lieu de cela, parmi les rares choses dont je me souvenais, c'était que le nom du fichier était un nom générique progressif, donc pas très utile si il faut le chercher en ligne de commande. Ce qu'il faut faire?
PHP est un langage de programmation aux multiples fonctionnalités. Même si je ne sais pas programmer en PHP, Je me suis souvenu d'une fonction qui m'a été très utile dans ce cas. Il s'agit d'une commande de terminal qui vous permet de démarrer un serveur Web avec un interpréteur PHP activé. Nous n'avons pas besoin d'installer Apache, Nginx ou autre… PHP suffira.
Ne le crois-tu pas?
Eh bien, En attendant, commençons à installer la dernière version de PHP (Prenons comme exemple une distribution Debian ou dérivée (mais PHP peut être installé sur n'importe quelle distribution):
$ sudo apt install php8
A la fin de l'installation, notre PHP sera installé. Vérifions la version avec la commande suivante:
$ php --version
PHP 8.0.30 (cli) (built: Aug 23 2023 12:00:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
Eh bien: PHP est installé et prêt à être utilisé. Veuillez noter que nous n'avons installé aucun serveur Web (Apache, Nginx ou autre), mais seulement l'interpréteur PHP.
Démarrons maintenant le serveur de développement avec une seule commande:
# php -S 0.0.0.0:4000
Cette commande (Exécuter en tant qu'administrateur) s'ouvre à toutes les connexions entrantes sur le port 4000 dans le répertoire dans lequel nous nous trouvons. Nous allons dans le navigateur et tapons l'IP du serveur. Voyons si ça marche:
Une erreur 404 pas trouvé. Vérifions le terminal:
[Sat Jan 27 17:27:42 2024] PHP 8.0.30 Development Server (http://0.0.0.0:4000) started
[Sat Jan 27 17:27:44 2024] xxx.xxx.xxx.xxx:49893 Accepted
[Sat Jan 27 17:27:44 2024] xxx.xxx.xxx.xxx:49893 [404]: GET / - No such file or directory
[Sat Jan 27 17:27:44 2024] xxx.xxx.xxx.xxx:49893 Closing
Depuis le terminal, nous voyons le débogage classique de ce qui se passe sur le navigateur. J'ai fait une demande pour le répertoire racine “/
“. Ça ne s'est pas bien terminé (parce que je n'ai pas de fichier index.php
dans quel répertoire), mais je m'en fiche car le serveur a démarré et l'erreur 404 ça veut dire qu'il fonctionne comme il se doit.
Je voudrais plutôt lister le contenu du répertoire comme dans un dépôt et récursivement tous les sous-répertoires. En recherchant dans les ressources en ligne, je trouve un petit projet hébergé sur GitHub: Petit gestionnaire de fichiers. Il s'agit justement d'un unique fichier PHP qui liste le contenu du répertoire dans lequel il se trouve et de manière récursive tous les répertoires enfants. Notez qu'il prend en charge deux authentifications différentes (avec et sans privilèges administratifs) et prend en charge le téléchargement et le téléchargement de fichiers. Le projet est bien documenté, l'installation est simple et le résultat est garanti. Il a quelques petites addictions:
$ sudo apt install php8-fileinfo php8-iconv php8-zip php8-tar php8-mbstring
Dernières pensées
Je ne l'ai encore écrit nulle part, mais j'espère qu'il est clair que cette procédure de démarrage rapide d'un serveur Web ne doit être utilisée que sur un réseau local et jamais exposée au trafic Internet., beaucoup moins utilisé dans aucune entreprise pour la production. Disons que vous pouvez dormir relativement bien s'il est utilisé via un VPN.
je pense qu'on pourrait faire la même chose, mais sans interpréteur PHP avec Python… je dois vérifier.
0 commentaires