Сделать файл обслуживания XAMPP/Apache вне htdocs [закрыто]

StackOverflow https://stackoverflow.com/questions/1408

Вопрос

Можно ли настроить xampp для обслуживания файла за пределами htdocs каталог?

Например, скажем, у меня есть файл, расположенный следующим образом:

C:\projects\transitCalculator\trunk\TransitCalculator.php

и мой xampp файлы обычно передаются из:

C:\xampp\htdocs\

(потому что это конфигурация по умолчанию). Есть ли способ заставить Apache распознавать и обслуживать мои TransitCalculator.php файл, не перемещая его под htdocs?Предпочтительно, чтобы Apache обслуживал/имел доступ ко всему содержимому каталога проектов, и я не хочу перемещать каталог проектов в htdocs.

редактировать:отредактировано, чтобы добавить Apache в заголовок вопроса, чтобы сделать вопросы/ответы более доступными для поиска.

Это было полезно?

Решение

Хорошо, за пикс0рх, Искры' и Дэйвответы, похоже, есть три способа сделать это:


Виртуальные хосты

  1. Откройте C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Раскомментируйте строку 19 (NameVirtualHost *:80).
  3. Добавьте свой виртуальный хост (~ строка 36):

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    
  4. Откройте файл хостов (C:\Windows\System32\drivers\etc\hosts).

  5. Добавлять

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    до конца файла (до Spybot — Search & Destroy, если он у вас установлен).

  6. Сохранить (Возможно, вам придется сохранить его на рабочем столе, изменить разрешения для старого файла хостов (щелкните правой кнопкой мыши > свойства) и скопировать новый файл в каталог поверх старого (или переименовать старый), если вы используете Виста и беда).
  7. Перезапустите Апач.

Теперь вы можете получить доступ к этому каталогу, перейдя по адресу http://transitcalculator.localhost/.


Создать псевдоним

  1. Начиная с ~строки 200 вашего http.conf файл, скопируйте все между <Directory "C:/xampp/htdocs"> и </Directory> (~ строка 232) и вставьте его сразу ниже с помощью C:/xampp/htdocs заменен желаемым каталогом (в данном случае C:/Projects), чтобы предоставить вашему серверу правильные разрешения для нового каталога.

  2. Найди <IfModule alias_module></IfModule> раздел (~ строка 300) и добавьте

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
    

    (или что-то еще, что соответствует вашим желаниям) ниже Alias блок комментариев внутри тегов модуля.


Измените корень документа

  1. Отредактируйте ~строку 176 в C:\xampp\apache\conf\httpd.conf;изменять DocumentRoot "C:/xampp/htdocs" к #DocumentRoot "C:/Projects" (или что хотите).

  2. Отредактируйте ~строку 203, чтобы она соответствовала вашему новому местоположению (в данном случае C:/Projects).


Примечания:

  • Вы должны использовать косую черту «/» вместо обратной косой черты «\».
  • Не добавляйте завершающий «/» в конце.
  • перезагрузите ваш сервер.

Другие советы

Вы можете переместить его, отредактировав DocumentRoot настройка в XAMPP\apache\conf\httpd.conf.

На данный момент это должно быть:

C:/xampp/htdocs

Измените его на:

C:/projects/transitCalculator/trunk

VirtualHost также подойдет для этого и может подойти вам лучше, поскольку вы можете размещать несколько проектов без необходимости использования подкаталогов.Вот как это сделать:

httpd.conf (или extra\httpd-vhosts.conf относительно httpd.conf.Завершающие косые черты "\" могут привести к тому, что это не сработает):

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

Файл HOSTS (обычно c:\windows\system32\drivers\etc\hosts):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Теперь перезапустите XAMPP, и вы сможете получить доступ. http://transitcalculator.localhost/ и он будет отображаться прямо в этом каталоге.

Это может быть полезно, если вы пытаетесь воспроизвести производственную среду, в которой разрабатываете сайт, который будет располагаться в корне доменного имени.Например, вы можете указать файлы с абсолютными путями, которые будут перенесены на сервер:

<img src="/images/logo.png" alt="My Logo" />

тогда как в среде, использующей псевдонимы или подкаталоги, вам нужно будет точно отслеживать, где находится каталог «изображения» относительно текущего файла.

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

Редактирование файлов Apache (http.conf — одно из наиболее распространенных имен) позволит вам настроить любую папку так, чтобы она отображалась в корне вашего веб-сайта.

РЕДАКТИРОВАТЬ:

псевдоним myapp c:\myapp\

Я отредактировал свой ответ, включив в файл http.conf формат для создания псевдонима, который похож на ярлык в Windows или символическую ссылку в un*x, где Apache «притворяется», что папка находится в корневом каталоге сети.Вероятно, это принесет вам больше пользы в долгосрочной перспективе.

Если вы пытаетесь заставить XAMPP использовать сетевой диск в качестве корня вашего документа, вам необходимо использовать пути UNC в httpd.conf.XAMPP не распознает подключенные сетевые диски.

Например, следующее не сработает, DocumentRoot "x:/webroot"

Но это будет, DocumentRoot "//192.168.10.100/webroot" (обратите внимание на переходные черты, а не сзади)

Решение, позволяющее Apache 2 размещать веб-сайты за пределами htdocs:

Под директивой DocumentRoot в httpd.conf вы должны увидеть блок каталога.Замените этот блок каталога на:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

ПОМНИТЕ, НЕ ИСПОЛЬЗУЙТЕ ЭТУ КОНФИГУРАЦИЯ В РЕАЛЬНОЙ СРЕДЕ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top