PHP 5.4 서버가 내장된 Drupal 7 서비스 제공




drupal-7 webserver (2)

나는 해결책을 찾고 있었고 드루팔 (Drupal) 8 호 에서 그 중 하나를 발견 했다 .

이것은 현존하는 Drupal 7 설치에서 나에게 매우 효과적입니다.

이것을 .htrouter.php (또는 원하는대로)로 저장하고 Drupal 루트 디렉토리에서 다음과 같이 실행하십시오.

php -S localhost:8080 .htrouter.php

<?php
/**
 * @file
 * The router.php for clean-urls when use PHP 5.4.0 built in webserver.
 *
 * Usage:
 *
 * php -S localhost:8888 .htrouter.php
 *
 */
$url = parse_url($_SERVER["REQUEST_URI"]);
if (file_exists('.' . $url['path'])) {
  // Serve the requested resource as-is.
  return FALSE;
}
// Remove opener slash.
$_GET['q'] = substr($url['path'], 1);
include 'index.php';

( https://drupal.org/files/router-1543858-3.patch 에서 https://drupal.org/files/router-1543858-3.patch 스 니펫)

PHP의 내장 서버를 사용하여 Drupal 7 사이트를 개발하고자합니다. 깨끗한 URL (예 : index.php? q = / about / )이 없지만 정상적인 (예 : / about / ) URL은 mod_rewrite 또는 그와 동등한 암호를 사용합니다. 문서에서는 PHP 파일을 다음과 같이 라우터 파일과 함께 실행할 수 있습니다.

php -S localhost:8000 routing.php

routing_php에 mod_rewrite를 시뮬레이트하려면 어떻게해야합니까?


이 작업은 기본적으로 PHP에서 Drupal의 .htaccess를 router.php 파일로 인코딩하는 것입니다.

여기에 시작 :

<?php

if (preg_match("/\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)/", $_SERVER["REQUEST_URI"])) {
  print "Error\n"; // File type is not allowed
} else
if (preg_match("/(^|\/)\./", $_SERVER["REQUEST_URI"])) {
  return false; // Serve the request as-is
} else
if (file_exists($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) {
  return false;
} else {
  // Feed everything else to Drupal via the "q" GET variable.
  $_GET["q"]=$_SERVER["REQUEST_URI"];
  include("index.php");
}

이것은 알파 품질로 간주되어야합니다. 그것은 Drupal 7.14의 .htaccess 파일을 통해 3 분간 걸 으면서 10 초 이상의 생각을 필요로하는 것을 건너 뜁니다. :)

그러나 Drupal의 설치 스크립트 (스타일 시트, JS 및 이미지가 예상대로로드 됨)를 시작하고 Clean URL을 사용하여 Drupal의 페이지를 조회 할 수 있습니다. 이 환경에 Drupal을 설치하려면 Drupal 7의 일부가 될 수없는 패치 가 필요 했습니다 .





webserver