Сделать файл обслуживания XAMPP/Apache вне htdocs [закрыто]
-
08-06-2019 - |
Вопрос
Можно ли настроить xampp для обслуживания файла за пределами htdocs
каталог?
Например, скажем, у меня есть файл, расположенный следующим образом:
C:\projects\transitCalculator\trunk\TransitCalculator.php
и мой xampp файлы обычно передаются из:
C:\xampp\htdocs\
(потому что это конфигурация по умолчанию). Есть ли способ заставить Apache распознавать и обслуживать мои TransitCalculator.php
файл, не перемещая его под htdocs
?Предпочтительно, чтобы Apache обслуживал/имел доступ ко всему содержимому каталога проектов, и я не хочу перемещать каталог проектов в htdocs
.
редактировать:отредактировано, чтобы добавить Apache в заголовок вопроса, чтобы сделать вопросы/ответы более доступными для поиска.
Решение
Хорошо, за пикс0рх, Искры' и Дэйвответы, похоже, есть три способа сделать это:
Виртуальные хосты
- Откройте C:\xampp\apache\conf\extra\httpd-vhosts.conf.
- Раскомментируйте строку 19 (
NameVirtualHost *:80
). Добавьте свой виртуальный хост (~ строка 36):
<VirtualHost *:80> DocumentRoot C:\Projects\transitCalculator\trunk ServerName transitcalculator.localhost <Directory C:\Projects\transitCalculator\trunk> Order allow,deny Allow from all </Directory> </VirtualHost>
Откройте файл хостов (C:\Windows\System32\drivers\etc\hosts).
Добавлять
127.0.0.1 transitcalculator.localhost #transitCalculator
до конца файла (до Spybot — Search & Destroy, если он у вас установлен).
- Сохранить (Возможно, вам придется сохранить его на рабочем столе, изменить разрешения для старого файла хостов (щелкните правой кнопкой мыши > свойства) и скопировать новый файл в каталог поверх старого (или переименовать старый), если вы используете Виста и беда).
- Перезапустите Апач.
Теперь вы можете получить доступ к этому каталогу, перейдя по адресу http://transitcalculator.localhost/.
Создать псевдоним
Начиная с ~строки 200 вашего
http.conf
файл, скопируйте все между<Directory "C:/xampp/htdocs">
и</Directory>
(~ строка 232) и вставьте его сразу ниже с помощьюC:/xampp/htdocs
заменен желаемым каталогом (в данном случаеC:/Projects
), чтобы предоставить вашему серверу правильные разрешения для нового каталога.Найди
<IfModule alias_module></IfModule>
раздел (~ строка 300) и добавьтеAlias /transitCalculator "C:/Projects/transitCalculator/trunk"
(или что-то еще, что соответствует вашим желаниям) ниже
Alias
блок комментариев внутри тегов модуля.
Измените корень документа
Отредактируйте ~строку 176 в C:\xampp\apache\conf\httpd.conf;изменять
DocumentRoot "C:/xampp/htdocs"
к#DocumentRoot "C:/Projects"
(или что хотите).Отредактируйте ~строку 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>
ПОМНИТЕ, НЕ ИСПОЛЬЗУЙТЕ ЭТУ КОНФИГУРАЦИЯ В РЕАЛЬНОЙ СРЕДЕ.