0

我想将我的第一个 silex 项目放在网络主机上。目前我唯一能看到的是一个白页,我的浏览器需要一段时间才能真正找到该页面。

我的虚拟主机:www.mijnhostingpartner.nl 我目前的结构:

/root/data
/root/logs
/root/wwwroot
/root/wwwroot/app
/root/wwwroot/src
/root/wwwroot/vendor
/root/wwwroot/web

我的 web.config:

<?xml version="1.0" encoding="UTF-8"?>
  <configuration>
    <system.webServer>
      <directoryBrowse enabled="false" />
       <rewrite>
        <rules>
            <rule name="Silex Front Controller" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>
    <defaultDocument>
        <files>
            <clear />
            <add value="Default.html" />
            <add value="Default.htm" />
            <add value="Default.asp" />
            <add value="index.htm" />
            <add value="Default.aspx" />
            <add value="index.html" />
            <add value="index.php" />
            <add value="index.asp" />
        </files>
    </defaultDocument>
  </system.webServer>
</configuration>

我的 index.php:我发现“Require_once”不起作用。直到 echo('test1') 工作。“test2”未显示在屏幕上。

<?php

// PHP 5.4's built in server can now server static files
// @see http://silex.sensiolabs.org/doc/web_servers.html#php-5-4
$filename = __DIR__ . preg_replace('#(\?.*)$#', '', $_SERVER['REQUEST_URI']);
if (php_sapi_name() === 'cli-server' && is_file($filename)) {
    return false;
}
echo('test1');
// Require the app and run it
require_once __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'app.php';
echo('test2');

$app->run();
4

1 回答 1

2

如果您得到一个空白页面,请检查您的网络服务器的错误日志。如果可能,然后启用error_reportingphp.ini对于silex,请确保您正在调用$app->run()前端控制器。

(在您的情况下,后者似乎不是问题)

于 2013-08-18T21:05:53.710 回答