ВАМПИР - Удалить локальный хост из URL-адреса проекта
URL-адреса моих проектов в WAMP не разрешаются так, как я ожидал. Например, я бы ожидал, что проект в папке c:\wamp\www\project1 чтобы иметь URL-адрес http://project1 /, но на самом деле у него есть URL http://localhost/project1/.
Это может вызвать проблемы при доступе к переменным сервера. Как мне это исправить?
14 answers
Вы также можете посмотреть на этот ответ , особенно если вы сейчас используете WampServer 3 или выше, для простого clikc и перехода к созданию виртуальных хостов.
На самом деле это изменение было задумано разработчиками WampServer и по уважительной причине.
Существует проблема с использованием URL-адреса localhost/project1
и корневого каталога документов WampServer по умолчанию, поскольку это вызывает проблемы для некоторых фреймворков и сред типа WordPress, а также вашего собственного кода, если вы используете код, который зависит от знания чего-либо о серверной среде.
Правильное решение - создать виртуальные хосты для всех ваших проектов, даже для тех, которые вы храните в папках стиля \wamp\www\project1
.
При этом корень документа равен \wamp\www
, и именно это вызывает эти проблемы.
Эти инструменты ожидают, что DocumentRoot будет корнем сайта, т.Е. \wamp\www\project1
, поэтому, когда они используют переменные PHP, такие как
$_SERVER['HTTP_HOST']
$_SERVER['SERVER_NAME']
$_SERVER['DOCUMENT_ROOT']
Они получают правильный ответ, т.е. ответ они попадут на настоящий живой сервер, на котором размещен только этот сайт.
Таким образом, использование URL-адреса стиля localhost\project1
будет означать, что эти переменные вернут
$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www
Когда они должны вернуться
$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www/project1
Итак, что вам следует сделать, чтобы меню My Projects
работало и уменьшало ваши трудности при копировании сайтов на живые серверы:
Создайте запись в файле HOSTS для каждого проекта подобным образом и не забудьте создать запись для доступа по IPV4 (127.0.0.1) и запись для доступа по IPV6 (::1):-
127.0.0.1 localhost
127.0.0.1 project1
::1 localhost
::1 project1
Не забудьте обновить кэш DNS Windows после любого изменения этого файла следующим образом: -
Запустите окно командной строки с помощью Run as Administrator
и выполните:-
net stop Dnscache
net start Dnscache
Теперь вам необходимо создать определение виртуального хоста, поэтому отредактируйте файл \wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhost.conf
(версии apache могут отличаться)
Удалите все, что там по умолчанию, в первый раз, когда вы это сделаете. А затем создайте определения виртуальных хостов следующим образом:-
#
# Use name-based virtual hosting.
# This next line is not required if you are using Apache 2.4.x and should be deleted
NameVirtualHost *:80
## should be first so the wamp menu page loads and is the default site
## should also never be changed from only allowing access from the local machine
## for a bit of extra security from casual ip address probing
<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "C:/wamp/www">
AllowOverride All
<IfDefine APACHE24>
Require local
</IfDefine>
<IfDefine !APACHE24>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</IfDefine>
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/project1"
ServerName project1
ServerAlias project1
<Directory "C:/wamp/www/project1">
AllowOverride All
<IfDefine APACHE24>
Require local
</IfDefine>
<IfDefine !APACHE24>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</IfDefine>
</Directory>
</VirtualHost>
Теперь вам нужно еще одно изменение, вы должны раскомментировать строка в httpd.conf
, которая включает в себя вышеупомянутый файл, который мы только что изменили. Поэтому отредактируйте файл httpd.conf
, используйте для этого меню wampmanager, так как это гарантирует, что вы отредактируете правильный файл.
Найдите эту строку #Include conf/extra/httpd-vhosts.conf
и удалите символ комментария #
из начала строки следующим образом: -
Include conf/extra/httpd-vhosts.conf
Теперь, конечно, вам нужно будет перезапустить Apache, чтобы он принял ваши изменения конфигурации.
Если Apache не перезапускается, вы, вероятно, допустили ошибку в конфигурации, чтобы узнать, что неправильно пытаться это сделать.
Откройте окно командной строки и CD
в папку \wamp\bin\apache\apache2.4.9\bin
.
Затем выполните следующее:-
httpd -t
Если ошибка находится в файлах httpd.conf
или httpd-vhost.conf
, она сообщит вам об ошибке, а также сообщит номер строки, чтобы очень легко найти ошибку.
В вашей папке www откройте index.php в строке 30 изменение: $suppress_localhost должен быть ложным
Это должно выглядеть так:
$suppress_localhost= ложь;
В вашей папке www
откройте index.php
в строке 30. Здесь измените $suppress_localhost
на false
. Итак, это должно выглядеть:
$suppress_localhost = false;
Это было самое быстрое и простое решение для меня. Я использую 64-битный Wamp.
Ваш wamp, похоже, настроен для запуска веб-сайта в обычно несуществующем домене helloworld.
Добавить:
127.0.0.1 helloworld
Внутри этого файла: c:\windows\system32\drivers\etc\hosts
Убедитесь, что вы запустили свой текстовый редактор с правами администратора, чтобы иметь возможность редактировать этот файл.
Это сообщит вашему компьютеру, что в противном случае несуществующий домен helloworld
должен быть разрешен на ваш обратный адрес.
Хорошо, у меня была эта проблема. Итак, я устранил проблему и проследил ее до реального решения, А НЕ ВЗЛОМА.
РЕШЕНИЕ :
- Щелкните правой кнопкой мыши значок WAMP-сервера
- Выберите
WAMP Settings
, - Выберите (включить) опцию
Add localhost in URL
ГОТОВО. Остальное - к вашему сведению, как и почему.
Примечание: localhost/myproject.php или myproject.php . Хотя решение уже было принято, я видел некоторые сообщения, которые получили я в замешательстве. Принятое решение основано на одном проекте с различными серверными приложениями, основанном на конкретном вопросе ОП и на том, как повлиять на этот отдельный проект, о котором идет речь. Но все остальные решения являются взломами и на самом деле не отвечают на решение вопроса ОП, но поднимают хороший вопрос об URL. Итак, согласно другим "решениям", вот как переключить ссылку localhost в URL-адресе. Следовательно, мое дополнительное решение добавлено к смешать.
This is a toggle switch.
Процесс устранения неполадок (без взлома):
Давайте взглянем на index.php
Давайте посмотрим на конфигурационный файл. Обратите внимание на переменные и массив?
Вот массив. Переменная, используемая ранее. Давайте посмотрим... О, это говорит нам, где и что делать.
Как отмечено в РЕШЕНИЕ:
Для меня было проще всего перейти к http://localhost и на домашней странице wampserver используйте Add a Virtual Host
(раздел Инструментов). Существует приятная и простая форма для создания псевдонима без каких-либо проблем (вместо консоли, когда вы используете значок в трее для создания псевдонима). Без редактирования исходного кода, просто используя то, что предлагает wamp. Не забудьте обновить DNS после создания псевдонима. Протестировано на Win10, 64-битный сервер WampServer 3.0.6.
Создайте виртуальный хост, как сказал РиггсФолли.
И попробуйте раскомментировать LoadModule rewrite_module modules/mod_rewrite.so
в httpd.conf
Если ваша папка "Ваши проекты" существует в "wamp/www/" и если вы можете видеть домашнюю страницу локального хоста после правильного запуска wampserever, и все еще не можете получить доступ к своим проектам, просто перейдите в папку www, откройте index.php и найдите $suppress_localhost и установите его значение в false. Перезапустите wampserver, перейдите на локальный хост и попытайтесь получить доступ к своему проекту.
Поиск имени хоста не выключен в httpd.conf с измененным корнем документа или нет. протестировано в браузере для $_SERVER['HTTP_HOST'] $_SERVER['ИМЯ_СЕРВЕРА'] $_SERVER['КОРНЕВОЙ КАТАЛОГ_ДОКУМЕНТА']
C:\wamp\www
In index.php
line 338
($suppress_localhost ? 'http://' : '')
change http:// to http://localhost/
Для этого вы можете создать виртуальный хост с помощью Add a virtual Host
утилита в меню Инструменты на домашней странице локального хоста.
Для получения дополнительной информации о том, как создать виртуальный хост, посетите: Пошаговые инструкции
Я также столкнулся с такой же проблемой после установки новой установки wamp в 64-битном окне windows 7. просто измените строку № 30 $suppress_localhost = ложь; Это работа для меня.
Открыть index.php в папке www и установите
$suppress_localhost=Истина;===>$suppress_localhost =ложь;
Это и есть работа.