标签: php-builtin-server

在localhost外部运行PHP 5.4内置Web服务器

是的,在即将发布的PHP 5.4中有一个内置的Web服务器,您可以在他们的候选版本中试用(我最近也发现了这个!)

http://php.net/manual/en/features.commandline.webserver.php

我需要帮助搞清楚的是,有没有办法让它在localhost以外的域名上运行(它在localhost,端口80上运行正常)?甚至127.0.0.1都不起作用.我在我的hosts文件中放入了虚拟主机名,指向127.0.0.1并且它们也不起作用.我知道它只是一个候选版本,但我想知道是否有其他人已经提出了解决此问题的解决方案,以便我可以使用指向我的hosts文件中127.0.0.1的实际域名来测试我的应用程序.操作系统是Windows 7 Professional SP1.

我已经尝试过的事情:1.谷歌搜索(duh)2.通过php.ini查看选项3.尝试127.0.0.1,我的局域网IP,我的WAN IP转发端口80并修复NAT环回问题(路由器运行DD -WRT)

php php-builtin-server

27
推荐指数
1
解决办法
1万
查看次数

是否可以在 php 内置 Web 服务器上使用 xdebug?

我有一台带有 apache2 和 php7 的计算机,我将php.ini其设置为使用 xdebug 并且可以,我可以使用编辑器进行调试。

但是我想在另一台只有php的计算机上调试。

我使用以下方法启动服务器: php -S localhost:8080

我尝试使用相同的php.ini,但似乎 php 内置的网络服务器无法理解php.ini

我使用了命令: php -S localhost:8080 -c <<path to my php.ini>>

这里是 apache 服务器的 phpinfo 输出:

在此处输入图片说明

这里是内置网络服务器的输出:

在此处输入图片说明

php xdebug php-builtin-server

6
推荐指数
1
解决办法
2788
查看次数

php内置的webserver缓存问题

我正在开发一个涉及PHP内置Web服务器的测试项目,我正在测试一些想法.

我想为常用资源(png,jpg,json,txt等)实现我自己的缓存机制,以减少php中内置服务器的负载.

我像这样启动内置服务器:

php -S 127.0.0.1:80 -t public router.php

因此,内置服务器的文档根目录设置为public并运行router.php(因为我正在考虑实现一个简单的重写功能).

这是我的router.php文件的内容:

<?php

// Register request uri
$requestUri = isset($_SERVER['REQUEST_URI']) 
    ? $_SERVER['REQUEST_URI'] 
    : '/';

// Handle app resources with caching
if (preg_match('/\.(?:png|jpg|jpeg|gif|xml|json|css|eot|svg|otf|ttf|woff|woff2|scss|less|txt|ico)$/', $requestUri))
{
    // Generate file name
    $fileName = __DIR__ .'/public'. $requestUri;

    // Parse file data
    $lastModified = filemtime($fileName);
    $etagFile = md5_file($fileName);
    $ifModifiedSince = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false);
    $etagHeader = (isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false);

    // Set caching header
    header('Last-Modified: '. gmdate('D, d …
Run Code Online (Sandbox Code Playgroud)

php caching php-5.6 php-builtin-server

5
推荐指数
1
解决办法
970
查看次数

PHP 5.4内置服务器上的友好URL

我经常使用Apache作为我的php应用程序的Web服务器.但我发现php 5.4带有一个内置的Web服务器.

在我尝试加载php -S的第一个应用程序中,我注意到重写规则未启用或无法正常工作.

有人知道内置服务器是否有这样的东西?

php php-builtin-server

4
推荐指数
1
解决办法
848
查看次数

当PHP内置服务器崩溃时,端口仍在使用中

我正在使用 PHP 内置服务器,如下所示:

$ composer serve
> php -S localhost:8000 -t public/
Run Code Online (Sandbox Code Playgroud)

但超时了..?

[Symfony\Component\Process\Exception\ProcessTimedOutException]                     
  The process "php -S localhost:8080 -t public/" exceeded the timeout of 300 seconds.
Run Code Online (Sandbox Code Playgroud)

所以,我尝试再次启动它:

$ composer serve
> php -S localhost:8000 -t public/
[Thu May 26 21:31:51 2016] Failed to listen on localhost:8000 (reason: Address already in use)
Script php -S localhost:8000 -t public/ handling the serve event returned with error code 1
Run Code Online (Sandbox Code Playgroud)

为什么超时之前服务器运行的同一端口仍在使用中?我可以停止服务器内置的所有 PHP 实例吗?

如果重要的话,下面是我的composer.json 文件:

{
    .
    .
    .
    "scripts": {
        "serve": "php …
Run Code Online (Sandbox Code Playgroud)

php composer-php php-builtin-server

4
推荐指数
2
解决办法
3390
查看次数

在Symfony的生产模式下使用PHP的内置Web服务器

我刚刚创建了一个新的Symfony 3.4应用程序。根据Symfony的文档,我可以通过运行以下命令使用PHP的内置Web服务器对应用程序进行服务器处理

php bin/console server:start
Run Code Online (Sandbox Code Playgroud)

但是,这似乎是在开发模式下运行该应用程序。哎呀,异常打印已打开,显示开发人员工具栏,等等。

有没有办法在Symfony的生产模式下使用内置的Web服务器?这不是将应用程序发布给公众(这是愚蠢的),而是因为我要测试一个问题,可能只会在生产模式下出现。

php symfony php-builtin-server

4
推荐指数
3
解决办法
2412
查看次数

Phalcon Micro应用程序无法使用查询字符串正确路由

我正在尝试使用Phalcon中Micro应用程序开发RESTful API .现在我正在使用面向PHP的Facebook SDK进行社交登录,但我发现当Facebook将我重定向到我的回调(显然内部查询字符串)时,路由器找不到任何处理程序方法.

GET: http://localhost:8000/api/v1/register/facebook/callback?code=...&state=...#_=_

Not-Found handler is not callable or is not defined
#0 /home/adrian/PhpstormProjects/myproject/index.php(39): Phalcon\Mvc\Micro->handle()
#1 {main}
Run Code Online (Sandbox Code Playgroud)

我所有的其他路由都正常工作,但这是我第一次面对查询字符串,所以我不知道我做错了什么.

我正在使用Micro Collections进行路由和PHP 内置服务器.

这是我的.htrouter.php.当我抑制从查询字符串$_SERVER['REQUEST_URI']路径工作正常,但因为它期待参数Facebook的SDK失败.我试图找出Phalcon是否将URL和查询字符串保存在不同的$_GET变量中,但我认为情况并非如此.

<?php
if (!file_exists(__DIR__ . '/' . $_SERVER['REQUEST_URI'])) {
    $_GET['_url'] = $_SERVER['REQUEST_URI'];
}
return false;
Run Code Online (Sandbox Code Playgroud)

我的 micro-collection.php

<?php

use \Phalcon\Mvc\Micro\Collection as MicroCollection;

$register = new MicroCollection();
$register->setHandler('App\Controllers\V1\RegisterController', true);
$register->setPrefix('/api/v1/register');
$register->get('/facebook', 'getAuthFacebook');
$register->get('/facebook/callback', 'facebookCallback');

return $register; …
Run Code Online (Sandbox Code Playgroud)

routing query-string phalcon php-builtin-server

2
推荐指数
1
解决办法
947
查看次数

我无法访问虚拟机上运行的 php 内置服务器

我有一个太基本的 php 应用程序,我想通过内置 php 服务器运行它,并且它位于 Windows 计算机的虚拟机中:

\n\n
<?php\nuse \\Psr\\Http\\Message\\ServerRequestInterface as Request;\nuse \\Psr\\Http\\Message\\ResponseInterface as Response;\n\nrequire \'../vendor/autoload.php\';\n\n$app = new \\Slim\\App();\n\n$app->get(\'/\', function (Request $req, Response $res, $arg = []) {\n    return \'hello world!!\';\n});\n\n$app->run();\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的项目结构

\n\n
tree -I vendor\n.\n|-- cache\n|   `-- 6a\n|       `-- 532bg9987gt23f4356546poo999vvb234234.php\n|-- composer.json\n|-- composer.lock\n|-- public\n|   `-- js\n|       `-- app.js\n|-- routes\n|   `-- web.php\n`-- views\n    `-- templates\n        `-- index.html\n\n7 directories, 7 files\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我从虚拟机中运行curl时,它显然可以工作:

\n\n
php -S localhost:9899&\ncurl localhost:9899/routes/web.php\n\nHello world!!\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是当我尝试从浏览器(Windows 机器)连接到该服务器时,我得到

\n\n
This site can\xe2\x80\x99t be reached\n
Run Code Online (Sandbox Code Playgroud)\n\n

虽然这不适用于我的 php …

php remote-access virtual-machine php-builtin-server

2
推荐指数
1
解决办法
484
查看次数

PHP内置服务器无法cURL

我有一个相对简单的脚本,如下所示:

<?php
$url = "localhost:2222/test.html";

echo "*** URL ***\n";
echo $url . "\n";
echo "***********\n";
echo "** whoami *\n";
echo exec('whoami');
echo "* Output **\n";

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$output = curl_exec($ch); 

curl_close($ch);

echo $output;
Run Code Online (Sandbox Code Playgroud)

当我在命令行上执行它时,它可以正常工作 - 我从test.html中获得了微薄的结果.

当我通过加载内置的PHP服务器并浏览到脚本来运行此脚本时,它会挂起.没有输出到屏幕,没有写入日志.

我读到有时用户权限可能会妨碍,所以我尝试使用whoami来确保运行内置PHP服务器的用户与在命令行上执行脚本的用户相同; 他们是谁.

safe_mode关闭,disable_functions设置为空.我可以成功执行其他命令(比如whoami).

我还应该检查什么?内置的PHP服务器在满足请求时是否算作其他用户?

php curl php-builtin-server

1
推荐指数
1
解决办法
2248
查看次数

将简单的PHP网站部署到Swisscom Application Cloud:如何配置服务器?

我正在尝试将一个简单的PHP网站部署到基于云代工厂的Swisscom Application Cloud.

我的网站在本地工作正常,由Apache提供服务.

我已经按照教程,但我不清楚某些方面.

在本教程中,检查应用程序是否正常工作的方法是在php中的内置Web服务器中运行它php -S.这对我不起作用,因为我的网站有文件html扩展名,php内置服务器无法正确解释这些扩展名.在Apache中,我可以在httpd.conf文件中配置得很好,但在这里我不知道如何配置这样的行为.

这对我来说很好,因为我仍然可以检查本地通过Apache服务的网站.问题是它看起来在云中这也是运行应用程序的方式,虽然我在文档中找不到更多信息.

我很惊讶这是应用程序在生产中的运行方式,因为php文档说明了有关内置服务器的以下内容:

"它不是一个功能齐全的网络服务器.它不应该在公共网络上使用."

Web应用程序是否在Swisscom Application Cloud中的Apache上运行?如果是,我如何获得配置httpd.confphp.ini文件的访问权限?如果不是,我该如何配置我的应用程序所需的特殊行为?

更新:

这是一个示例php应用程序,它总结了我想要实现的目标:将它部署在云代工厂将html文件解释为php文件.

https://github.com/atineoSE/sample-php-app-cloudfoundry

按照@ daniel-mikusa的文档链接,我添加了与mime类型相关的特殊配置.bp-config/httpd/extra/httpd-mime.conf.但是,这并不像预期的那样有效.从firefox访问,我被提示下载该文件.当我通过Apache在本地提供它并在httpd.conf文件中使用相同的指令时,它工作正常.

cloud-foundry php-builtin-server swisscomdev

1
推荐指数
1
解决办法
128
查看次数