Cookie

Быстро запустите веб-сервер с помощью PHP

Опубликовано TheJoe на

Приблизительное время чтения: 3 минут

меня не было дома вчера… и я вспомнил, что у меня на NAS есть важный файл, дома. Я могу получить доступ к своему NAS через активированную мной VPN., но документ найден по пути, который я тогда не запомнил, invece tra le poche cose che mi ricordavo c’è che il nome del file era un nome progressivo generico, quindi poco utile nel caso dovessi cercarlo a riga di comando. Che fare?

PHP è un linguaggio di programmazione dalle molteplici funzionalità. Benché io non sappia programmare in PHP, mi sono ricordato di una funzione che mi è stata molto utile in questo caso. Si tratta di un comando da terminale che permette l’avvio di un server web con interprete PHP abilitato. Non dobbiamo installare Apache, Nginx o altrobasterà PHP.

Non ci credi?

хорошо, intanto iniziamo a installare l’ultima release di PHP (prendiamo come esempio una distribuzione Debian o derivata (ma PHP è installabile su qualsiasi distribuzione):

$ sudo apt install php8

Al termine dell’installazione avremo il nostro PHP installato. Controlliamo la versione con il comando seguente:

$ 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

хорошо: PHP è installato ed è pronto per essere utilizzato. Da notare che non abbiamo installato alcun server web (апаш, Nginx o altro), ma solo l’interprete PHP.

Ora avviamo il server di sviluppo con un singolo comando:

# php -S 0.0.0.0:4000

Эта команда (eseguito come amministratore) apre a tutte le connessioni in entrata sulla porta 4000 nella directory in cui ci troviamo. Andiamo sul browser e digitiamo l’IP del server. Vediamo se funziona:

Un errore 404 не найден. Controlliamo il terminale:

[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

Dal terminale vediamo il classico debug di ciò che sta accadendo sul browser. Ho inoltrato una richiesta per la directory radice/“. Non è andata a buon fine (perché non ho un file index.php in quella directory), ma non mi interessa perché il server si è avviato e l’errore 404 significa che sta funzionando come dovrebbe.

Смотри сюда:  "нивелирование" объем нашей MP3 библиотеки с MP3Gain

Vorrei invece elencare il contenuto della directory come in un repository e ricorsivamente tutte le sottodirectory. Cercando tra le risorse online trovo un piccolo progetto ospitato su GitHub: Tiny File Manager. Si tratta per l’appunto di un singolo file PHP che elenca il contenuto della directory in cui si trova e in modo ricorsivo tutte le directory figlie. Da notare che supporta due differenti autenticazioni (con e senza privilegi amministrativi) e supporta l’upload e il download dei file. Il progetto è ben documentato, l’installazione è semplice e il risultato è assicurato. Ha qualche piccola dipendenza:

$ sudo apt install php8-fileinfo php8-iconv php8-zip php8-tar php8-mbstring

Considerazioni finali

Non l’ho ancora scritto da nessuna parte, ma spero sia chiaro che questa procedura per avviare velocemente un webserver dovrebbe essere utilizzata solo in LAN e mai esposta al traffico internet, tanto meno utilizzata su una qualsiasi realtà aziendale per produzione. Diciamo che si possono dormire sonni relativamente tranquilli se viene utilizzata su una VPN.

Mi pare si potesse fare la stessa cosa, ma senza interprete PHP con Pythondevo controllare.


TheJoe

Я держу это в качестве хобби блог от 2009. Я графики энтузиастов, технология, Программное обеспечение с открытым исходным кодом. Среди моих статей не будет трудно найти о музыке, и некоторые личные размышления, но я предпочитаю, чтобы направить линию блога в основном технологии. Для получения дополнительной информации связаться со мной.

0 Комментарии

оставьте ответ

Заполнитель аватара

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатывается комментарий данных.