Заставьте XAMPP/Apache служить файлу за пределами [закрытого] htdocs

Вот простое решение для простой функции:

.toJSON() Метод

Вместо сериализуемого класса JSON реализуйте метод сериализатора:

import json

class Object:
    def toJSON(self):
        return json.dumps(self, default=lambda o: o.__dict__, 
            sort_keys=True, indent=4)

Итак, вы просто вызываете его для сериализации:

me = Object()
me.name = "Onur"
me.age = 35
me.dog = Object()
me.dog.name = "Apollo"

print(me.toJSON())

выведет:

{
    "age": 35,
    "dog": {
        "name": "Apollo"
    },
    "name": "Onur"
}
295
задан taxicala 19 May 2015 в 11:25
поделиться

5 ответов

Хорошо, на [1 114] pix0r, Искры ' и Dave отвечает, что похоже, что существует три способа сделать это:

свойства

Virtual Hosts

  1. Open C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Un-comment ~line 19 (NameVirtualHost *:80).
  3. Add your virtual host (~line 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. Open your hosts file (C:\Windows\System32\drivers\etc\hosts).

  5. Add

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    to the end of the file (before the Spybot - Search & Destroy stuff if you have that installed).

  6. Save (You might have to save it to the desktop, change the permissions on the old hosts file (right click>), и копия новая в каталог по старому (или переименовывают старый), если Вы используете Vista и испытываете затруднения).
  7. Apache Перезапуска.

Теперь можно получить доступ к тому каталогу путем просмотра к [1 118] http://transitcalculator.localhost/ .

<час>

Делают Псевдоним

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

  2. Находят <IfModule alias_module></IfModule> раздел (~line 300) и добавляют

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

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

<час>

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

  1. ~line 176 Редактирования в C:\xampp\apache\conf\httpd.conf; изменение DocumentRoot "C:/xampp/htdocs" к [1 112] (или независимо от того, что Вы хотите).

  2. ~line 203 Редактирования для соответствия новому местоположению (в этом случае C:/Projects).

<час>

Примечания:

  • необходимо использовать наклонные черты вправо "/" вместо наклонных черт влево "\".
  • не включают запаздывание "/" в конец.
  • перезапускают Ваш сервер .
353
ответ дан Leandro 23 November 2019 в 01:34
поделиться

Можно переместить его путем редактирования установка DocumentRoot в XAMPP\apache\conf\httpd.conf.

Это должно в настоящее время быть:

Изменение C:/xampp/htdocs

это к:

C:/projects/transitCalculator/trunk

94
ответ дан Dave Ward 23 November 2019 в 01:34
поделиться

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" />

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

49
ответ дан cmcculloh 23 November 2019 в 01:34
поделиться

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

Редактирование Ваших апачских файлов (http.conf одно из более общих названий) позволит Вам устанавливать любую папку, таким образом, это появится в Вашем webroot.

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

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

я отредактировал свой ответ для включения формата для создания псевдонима в http.conf файле, который является видом подобных ярлык в окнах или символьной ссылке под un*x, где Apache 'притворяется', что папка находится в webroot. Это, вероятно, будет более полезным для Вас в долгосрочной перспективе.

15
ответ дан sparkes 23 November 2019 в 01:34
поделиться

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

Нижняя часть директива "DocumentRoot" в httpd.conf, необходимо видеть блок каталога. Замените этот блок каталога:

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

НЕ ЗАБЫВАЮТ НЕ ИСПОЛЬЗОВАТЬ ЭТУ КОНФИГУРАЦИЮ В РЕАЛЬНОЙ СРЕДЕ

5
ответ дан Leandro 23 November 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: