Я работаю над хостингом изображений imgur clone. Я создал поддомен для своих изображений i.localhost добавлен в файл hosts -> 127.0.0.1 i.localhost добавлен в httpd-vhosts.conf ->
<VirtualHost *:80>
DocumentRoot "/Users/BillGates/Sites/images/"
ServerName i.localhost
</VirtualHost>
Мой сайт работает на моем локальном компьютере по адресу localhost. Посетитель может увидеть изображение по URL-адресу, например localhost / NE2bd, я сделал этот URL-адрес с помощью Mod_Rewrite, поэтому все похоже на imgur.com
Поскольку я храню все свои изображения в / Users / BillGates / Sites / images /, я не вижу изображения в i.localhost / NE2bd.jpeg !!!! Но образ находится в папке изображений !!
Я получаю сообщение "Не найдено"
Запрошенный URL /NE2bd.jpeg не найден на этом сервере. Мой httpd-vhosts.conf
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/BillGates/Sites/images/"
ServerName i.localhost
</VirtualHost>
И, конечно, несколько важных строк в httpd.conf
DocumentRoot "/Users/BillGates/Sites"
Ваша конфигурация выглядит неверной. Я привык объявлять vhost как
<VirtualHost *:80>
ServerAdmin webmaster@host.foo.com
DocumentRoot /www/docs/host.foo.com
ServerName host.foo.com
</VirtualHost>
в файле, который включается в ваш httpd.conf.
Я не уверен, что ваша конфигурация вообще используется Apache, потому что ваш "localhost" -vhost не существует в вашей конфигурации.
Попробуйте добавить домены «foo.bar» и «i.foo.bar» в ваш / etc / hosts и указать им свой IP. Затем напишите директиву VirtualHost для каждого из них с разными DocumentRoot.
После этого попробуйте добраться до файлов, расположенных в каталогах с вашим (под) доменом, и опубликовать ошибки (и конфиги).
Похоже, вы используете Apache 2 в OSX и редактируете файл. /etc/apache2/extra/httpd-vhosts.conf
. Часть кода, который вы скопировали и вставили, кажется, отсутствует <VirtualHost *:80>
Возможно, конфигурация, которую вы добавили, не считывается в конфигурацию apache. По умолчанию этот файл не читается. Вы можете попробовать отредактировать основной /etc/apache2/httpd.conf
чтобы включить этот файл.
Попробуйте раскомментировать строку:
Include /private/etc/apache2/extra/httpd-vhosts.conf.
И, конечно же, не забудьте запустить и остановить apache, чтобы он вступил в силу.