Назад | Перейти на главную страницу

Lighttpd и PHP генерируют ошибку «Не указан входной файл» после перемещения server.document-root

Я хотел бы использовать Lighttpd и PHP для создания легкого автономного веб-сервера в Windows. Вчера скачал все последние сборки и через час все заработало.

Сегодня я изменился server.document-root из каталог-сервера + "/ htdocs" к каталог-сервера + "/../htdocs" и соответствующим образом скорректировал структуру каталогов. После перезапуска всего, я вижу «Не указан входной файл» в веб-браузере, когда я пытаюсь получить доступ к страницам php.

Вот мои файлы конфигурации. Конечно, я пробовал играть с cgi.fix_pathinfo и fastcgi.server но я не могу найти правильные настройки. Любые идеи?

php.ini

cgi.fix_pathinfo=1

extension_dir = .\ext
extension = php_pdo_sqlite.dll 

date.timezone = UTC

log_errors = On
error_log = ..\logs\php_error.log

lighttpd.conf

## modules to load
# at least mod_access and mod_accesslog should be loaded
server.modules = (
    "mod_access",
    "mod_accesslog",
    "mod_fastcgi",
#   "mod_cgi",
    "mod_status"
)

#### include important configuration files
include "variables.conf"
include "mimetype.conf"

## a static document-root
## works fine
server.document-root        = server_root + "/htdocs"
## causes "No input file specified"
#server.document-root        = server_root + "/../htdocs"

# extensions that should not be handle via static-file transfer
static-file.exclude-extensions = ( ".php" )

## virtual directory listings
dir-listing.activate        = "disable"

#directory for file uploads
server.upload-dirs          = ( temp_dir )

# files to check for if .../ is requested
index-file.names            = ( "index.php", "index.html" )

## set the event-handler (read the performance section in the manual)
server.event-handler        = "libev"

## deny access the file-extensions
url.access-deny             = ( "~", ".inc", ".htaccess" )

## disable range request for PDF files
$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}

#### status module
status.status-url           = "/server-status"
status.config-url           = "/server-config"

#### fastcgi module
fastcgi.server = ( ".php" => ("localhost" => ("host" => "127.0.0.1", "port" => 521, "broken-scriptfilename" => "enable" )))
#cgi.assign = ( ".php" => "C:/development/tds/PHP/php-cgi.exe" )

эта структура каталогов работает

c:\base_dir
    \php
    \lightTPD
       \htdocs

это структура каталогов, которую я пытаюсь достичь

c:\base_dir
     \htdocs
     \php
     \lightTPD

проверьте, что ваш doc_root установлен прямо в php.ini

doc_root = C:\base_dir\htdocs

это все, что мне нужно

если вам не нужен абсолютный путь, вы можете отключить его, и он также должен работать.

; doc_root = ""

просто попробовал это на моем без проблем

Сейчас я использую обходной путь.

mklink /J htdocs ..\htdocs

Если у кого-то есть лучшее решение, я был бы рад его услышать.