В интерпретатор 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 результат:
