PHP.mk документација

Вграден веб сервер

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

features.commandline.webserver.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека features.commandline.webserver.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Вграден веб сервер

Референца за `features.commandline.webserver.php` со подобрена типографија и навигација.

features.commandline.webserver.php

Вграден веб сервер

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Овој веб-сервер е дизајниран да помогне во развојот на апликации. Може да биде корисен и за тестирање или за демонстрации на апликации што се изведуваат во контролирани средини. Не е наменет да биде целосно функционален веб-сервер. Не треба да се користи на јавна мрежа.

На CLI SAPI Овој веб-сервер е дизајниран да помогне во развојот на апликации. Исто така може да биде корисен за тестирање или за демонстрации на апликации што се извршуваат во контролирани средини. Не е наменет да биде целосно функционален веб-сервер. Не треба да се користи на јавна мрежа.

обезбедува вграден веб-сервер.

URI requests are served from the current working directory where PHP was started, unless the -t option is used to specify an explicit document root. If a URI request does not specify a file, then either index.php or index.html in the given directory are returned. If neither file exists, the lookup for index.php and index.html will be continued in the parent directory and so on until one is found or the document root has been reached. If an index.php or index.html is found, it is returned and $_SERVER['PATH_INFO'] is set to the trailing part of the URI. Otherwise a 404 response code is returned.

Веб-серверот работи само еден процес со една нишка, така што PHP апликациите ќе се заглават ако барањето е блокирано. falseАко PHP датотека е дадена на командната линија кога се стартува веб-серверот, таа се третира како скрипта за „рутер“. Скриптата се извршува на почетокот на секое HTTP барање. Ако оваа скрипта врати

, тогаш бараниот ресурс се враќа како што е. Во спротивно, излезот на скриптата се враќа во прелистувачот. .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, .zip .

Стандардни MIME типови се враќаат за датотеки со екстензии: PHP_CLI_SERVER_WORKERS Од PHP 7.4.0, вградениот веб-сервер може да се конфигурира да форкира повеќе работници за да тестира код што бара повеќе истовремени барања до вградениот веб-сервер. Поставете го

Забелешка: променливата на околината на бројот на посакуваните работници пред да го стартувате серверот.

Забелешка: Оваа функција не е поддржана на Windows. За информации за употребата и опциите на PHP командната линија, стартувајте or човек phpphp --help

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Ова experimental . Не сите опции ќе важат при стартување на веб-серверот. not функцијата е not наменета за продукциска употреба. Генерално, вградениот веб-сервер е

наменет за продукциска употреба.

$ cd ~/public_html
$ php -S localhost:8000

Пример #1 Стартување на веб-серверот

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit

After URI requests for http://localhost:8000/ and http://localhost:8000/myscript.html the terminal will show something similar to:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read

Терминалот ќе прикаже:

Имајте предвид дека пред PHP 7.4.0, симболичките врски до статични ресурси не биле достапни на Windows, освен ако скриптата за рутер не ги обработувала.

$ cd ~/public_html
$ php -S localhost:8000 -t foo/

Пример #1 Стартување на веб-серверот

PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit

Пример #2 Стартување со специфична директориумска патека за документи

Во овој пример, барањата за слики ќе ги прикажат, но барањата за HTML-датотеки ќе прикажат „Добредојдовте во PHP“:

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return
false; // serve the requested resource as-is.
} else {
echo
"<p>Welcome to PHP</p>";
}
?>
$ php -S localhost:8000 router.php

Пример #4 Проверка за користење на CLI веб-сервер

За повторно користење на скрипта за рутер на рамка за време на развој со CLI веб-сервер, а подоцна и со продукциски веб-сервер:

<?php
// router.php
if (php_sapi_name() == 'cli-server') {
/* route static assets and return false */
}
/* go on with normal index.php operations */
?>
$ php -S localhost:8000 router.php

Пример #5 Ракување со неподдржани типови датотеки

Ако треба да послужите статичен ресурс чиј MIME тип не е поддржан од CLI веб-серверот, користете:

<?php
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if (
$path["extension"] == "el") {
header("Content-Type: text/x-script.elisp");
readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
return
FALSE;
}
?>
$ php -S localhost:8000 router.php

Пример #6 Пристап до CLI веб-серверот од далечински машини

Можете да го направите веб-серверот достапен на портата 8000 за кој било интерфејс со:

$ php -S 0.0.0.0:8000
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Вградениот веб-сервер не треба да се користи на јавна мрежа.

Белешки од корисници 8 белешки

jonathan на reinink dot ca
12 години пред
In order to set project specific configuration options, simply add a php.ini file to your project, and then run the built-in server with this flag:

php -S localhost:8000 -c php.ini

This is especially helpful for settings that cannot be set at runtime (ini_set()).
Марк Симон
пред 9 години
It’s not mentioned directly, and may not be obvious, but you can also use this to create a virtual host. This, of course, requires the help of your hosts file.

Here are the steps:

1    /etc/hosts
    127.0.0.1    www.example.com

2    cd [root folder]
    php -S www.example.com:8000

3    Browser:
    http://www.example.com:8000/index.php

Combined with a simple SQLite database, you have a very handy testing environment.
oan на vizrt dot com
пред 9 години
I painfully experienced behaviour that I can't seem to find documented here so I wanted to save everyone from repeating my mistake by giving the following heads up:

When starting php -S on a mac (in my case macOS Sierra) to host a local server, I had trouble with connecting from legacy Java. 

As it turned out, if you started the php server with 
"php -S localhost:80" 
the server will be started with ipv6 support only!

To access it via ipv4, you need to change the start up command like so:
 "php -S 127.0.0.1:80"
which starts server in ipv4 mode only.
tamas на bartatamas dot hu
пред 11 години
If your URI contains a dot, you'll lose the $_SERVER['PATH_INFO'] variable, when using the built-in webserver.
I wanted to write an API, and use .json ending in the URI-s, but then the framework's routing mechanism broke, and it took a lot of time to discover that the reason behind it was its router relying on $_SERVER['PATH_INFO'].

References:
https://bugs.php.net/bug.php?id=61286
matthes на leuffen dot de
пред 9 години
To output debugging information on the command line you can write output to php://stdout:

<?php
$path = $_SERVER["SCRIPT_FILENAME"];

file_put_contents("php://stdout", "\nRequested: $path");
echo "<p>Hello World</p>";
?>
Иван Ферер
12 години пред
On Windows you may find useful to have a phpserver.bat file in shell:sendto with the folowing:
explorer http://localhost:8888
rem check if arg is file or dir
if exist "%~1\" (
  php -S localhost:8888 -t "%~1"
) else (
  php -S localhost:8888 -t "%~dp1"
)

then for fast web testing you only have to SendTo a file or folder to this bat and it will open your explorer and run the server.
deep на deepshah dot me
пред 5 години
Listen on all addresses of IPv4:
php -S 0.0.0.0:80

Listen on all addresses of IPv6:
php -S [::0]:80
sony на sony-ak dot com
пред 6 години
To send environment variable as long as with PHP built-in web server, type like this.

~$ MYENV=dev php -d variables_order=EGPCS -S 0.0.0.0:8000

On PHP script we can check with this code.

<?php
  echo getenv('MYENV'); // print dev
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.