В интерпретатор php встроен веб-сервер. Откроем справку по параметрам запуска php из командной строки, чтобы узнать параметры запуска php web сервера.
php -S Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code> [--] [args...] php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...] php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...] php [options] -S <addr>:<port> [-t docroot] [router] php [options] -- [args...] php [options] -a -a Run interactively -c <path>|<file> Look for php.ini file in this directory -n No configuration (ini) files will be used -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -f <file> Parse and execute <file>. -h This help -i PHP information -l Syntax check only (lint) -m Show compiled in modules -r <code> Run PHP <code> without using script tags <?..?> -B <begin_code> Run PHP <begin_code> before processing input lines -R <code> Run PHP <code> for every input line -F <file> Parse and execute <file> for every input line -E <end_code> Run PHP <end_code> after processing all input lines -H Hide any passed arguments from external tools. -S <addr>:<port> Run with built-in web server. -t <docroot> Specify document root <docroot> for built-in web server. -s Output HTML syntax highlighted source. -v Version number -w Output source with stripped comments and whitespace. -z <file> Load Zend extension <file>. args... Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin --ini Show configuration file names --rf <name> Show information about function <name>. --rc <name> Show information about class <name>. --re <name> Show information about extension <name>. --rz <name> Show information about Zend extension <name>. --ri <name> Show configuration for extension <name>. root@debian:/home/dior/www# php -S 192.168.12:8080 [Sat Mar 7 00:28:28 2020] Failed to listen on 192.168.12:8080 (reason: Cannot assign requested address)
Нас интересуют 2 параметра -S и -t
Создайте папку для сервера, например www в своём рабочем каталоге, поместите туда файл favicon.ico и index.html. Http.server (веб-сервер) поддерживает структуру каталогов. Можно создать подпапки. Перейдите в папку www и запускайте сервер:
dior@debian:~/www$ php -S 192.168.1.12:8080 PHP 7.3.14-1~deb10u1 Development Server started at Sat Mar 7 00:30:26 2020 Listening on http://192.168.1.12:8080 Document root is /home/dior/www Press Ctrl-C to quit. [Sat Mar 7 00:31:04 2020] 192.168.1.19:51378 [200]: / [Sat Mar 7 00:31:04 2020] 192.168.1.19:51380 [200]: /css/main.css [Sat Mar 7 00:31:04 2020] 192.168.1.19:51386 [200]: /js/flame.js [Sat Mar 7 00:31:04 2020] 192.168.1.19:51388 [200]: /favicon.ico
Для экспериментов предлагаем наши файлы веб страницы index.html (пути указаны относительно папки www в которой запущен сервер):
index.html
<HTML> <HEAD> <META charset="utf-8" /> <LINK href="/css/main.css" rel="stylesheet" /> </HEAD> <BODY id="body"> <H1>Привет мир!</H1> <SCRIPT src="/js/flame.js" type="text/javascript"></SCRIPT> </BODY> </HTML>
Важно: для этого сервера все относительные пути к файлам, указанным в html файле считаются относительными корня сервера (в нашем случае папка www).
/css/main.css
body{ font-size: 1000%; text-align: center; background-color: midnightblue; color: moccasin; text-shadow: red -6px 6px 8px; }
/js/flame.js
i=0; id=1; j=0; jd=1; k=0; kd=1; setInterval("animate()", 80); function animate(){ body.style.textShadow = i+'px '+j+'px '+k+'px red' i=i+id; j=j+jd; k=k+kd; if (i>23) id=-1; if (i<-27) id=1; if (j>19) jd=-1; if (j<-17) jd=1; if (k>31) kd=-1; if (k<13) kd=1; }
И, вы получитe результат: