Поднимаем веб‑сервер на macOS
Статья утратила свою актуальность и предлагается только для ознакомительных целей.
Веб-разработка начинается с настройки локального веб-сервера. Есть множество различных комбинаций устанавливаемых пакетов и сборок, которые удобны по-своему. В этой статье я расскажу об установке связки Apache + PHP + MySQL + Redis + Memcached на macOS.
Установка Homebrew
Управлением пакетов, которые не идут в комплекте с macOS, занимается утилита Homebrew.
На официальном сайте вы найдете команду для запуска установки.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Следуйте указаниям и введите пароль администратора, когда потребуется. В результате выполнения команды будет установлен Homebrew и XCode Command Line Tools.
Чтобы убедиться, что установка прошла успешно, выполните команду “brew —version”.
$ brew --version
Homebrew 1. 1.4
Homebrew/homebrew-core (git revision 4a1f; last commit 2016-12-15)
Подключаем репозитории с необходимыми пакетами.
$ brew tap homebrew/php
$ brew tap homebrew/apache
И выполняем обновление всех репозиториев, подключенных к brew.
$ brew update
Всё готово к установке пакетов.
Установка Apache
С помощью Homebrew установим Apache со всеми необходимыми скриптами.
Перед установкой следует отключить и убрать из автозагрузки встроенный Apache-сервер.
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
$ brew install httpd24 --with-privileged-ports --with-http2
Операция займет время. Ожидайте появления строки, которая подтвердит успех установки.
/usr/local/Cellar/httpd24/2.4.23_2: 212 files, 4.4M, built in 1 minute 45 seconds
Обратите внимание на этот путь “/usr/local/Cellar/httpd24/2. 4.23_2”. Он сейчас понадобится для настройки автозапуска Apache.
Задаем права и включаем автозагрузку свежеустановленного сервера.
$ sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
$ sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
$ sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
Перейдите по адресу http://localhost/.
Apache успешно установленРешения возможных проблем
Если вы получаете сообщение, что браузер не может подключиться к серверу, первым делом проверьте, запущен ли сервер.
$ ps -aef | grep httpd
Вы должны увидеть несколько httpd процессов, если Apache запущен.
Попробуйте перезагрузить сервер следующей командой.
$ sudo apachectl -k restart
В поиске проблемы вам могут помочь логи сервера. Посмотреть свежие записи можно с помощью такой команды.
$ tail -f /usr/local/var/log/apache2/error_log
Если проблема не пропала, убедитесь, что в файле /usr/local/etc/apache2/2.4/httpd.conf имеется следующая строчка.
Listen: 80
Apache контролируется с помощью apachectl. Следующие команды могут быть полезны.
$ sudo apachectl start
$ sudo apachectl stop
$ sudo apachectl -k restart
Настрока Apache
У вас есть установленный веб-сервер. Пора настроить его.
Первым делом мы изменим директорию для хранения сайтов. Откройте для редактирования конфигурационный файл Apache.
$ open -e /usr/local/etc/apache2/2.4/httpd.conf
Найдите строку, где задается параметр DocumentRoot.
DocumentRoot "/usr/local/var/www/htdocs"
И измените её на следующую, где your_user — имя вашего аккаунта.
DocumentRoot /Users/your_user/Sites
Также надо изменить тег , чтобы его параметр совпадал с DocumentRoot.
Обратите внимание, что кавычки отсутствуют. Стандартный редактор автоматически может заменить их на другие символы, что может стать причиной ошибки.
Если вы планируете в локальных проектах использовать файл дополнительной конфигурации сервера .htaccess, то обратите внимание на настройки AllowOverride и mod_rewrite.
В блоке найдите опцию AllowOverride, которая отвечает за возможность использования .htaccess, и измените её на следующую.
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
Для возможности преобразования URL потребуется модуль mod_rewrite, который по-умолчанию закомментирован. Найдите строку и уберите символ комментирования #.
#LoadModule rewrite_module libexec/mod_rewrite.so
LoadModule rewrite_module libexec/mod_rewrite.so
Пользователи и группы
Мы направили обращения Apache к сайтам в директорию Sites, которую поместили в домашнем каталоге. Обычно Apache работает от имени системного пользователя daemon группы daemon, из-за этого могут возникнуть некоторые проблемы с доступом. Необходимо задать, пользователя и группу, от чьего имени Apache будет работать.
В конфигурационном файле Apache найдите User и Group и измените на следующее. your_user — имя вашего аккаунта.
User your_user
Group staff
Директория для локальных сайтов
Создайте папку для сайтов в домашнем каталоге.
$ mkdir ~/Sites
Следующая команда создаст в папке Sites файл index.html и поместит в нем код первой веб-страницы.
$ echo "My User Web Root" > ~/Sites/index.html
Чтобы изменения в файле настроек вступили в силу, необходимо перезагрузить сервер.
$ sudo apachectl -k restart
Снова откройте в браузере страницу по адресу http://localhost/.
Установка PHP
На этом шаге мы установим PHP 5.6 и PHP 7. 0, а также настроим скрипт переключения между версиями PHP.
Выполните установку необходимых версий PHP с помощью следующих команд.
$ brew install php70 --with-apache
$ brew unlink php70
$ brew install php56 --with-apache
Если потребуется, вы можете настроить каждую версию языка в соответствующих php.ini.
/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/7.0/php.ini
Знакомим Apache и PHP
Вы успешно установили нужные версии PHP, но теперь нужно сказать Apache использовать их.
Снова откройте файл /usr/local/etc/apache2/2.4/httpd.conf и найдите строку
#LoadModule php5_module
Вместо нее добавьте следующие строки для подключения ваших версий PHP.
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
#LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
Оставим незакомментированным php5_module, чтобы использовать его сейчас. Скрипт для переключения между версиями добавим немного позже.
Найдите ниже настройку указания на корневой файл директории.
DirectoryIndex index.html
И замените её следующими настройками.
DirectoryIndex index.php index.html
SetHandler application/x-httpd-php
Сохраните файл настроек и снова перезагрузите сервер.
$ sudo apachectl restart
Проверяем установку PHP
Создайте в директории с сайтами файл index.php с содержанием “
$ echo " ~/Sites/index.php
Откройте в браузере страницу по адресу http://localhost/. Вы увидите информацию о настройках PHP.
Переключение версий PHP
Установим небольшой sphp скрипт в стандартную для brew директорию /usr/local/bin.
$ curl -L https://gist.github.com/w00fz/142b6b19750ea6979137b963df959d11/raw > /usr/local/bin/sphp
$ chmod +x /usr/local/bin/sphp
Homebrew при установке должен был добавить свои директории /usr/local/bin и /usr/local/sbin в переменную $PATH. Убедимся в этом.
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Если вышеуказанные директории отсутствуют в результат выполнения команды у вас, то выполните следующую команду, которая исправит это.
$ export PATH=/usr/local/bin:/usr/local/sbin:$PATH
Остановите и запустите Apache. Не перезагружайте.
$ sudo apachectl -k stop
$ sudo apachectl start
Снова откройте файл настроек Apache /usr/local/etc/apache2/2.4/httpd.conf и замените блок с подключениями этих модулей:
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
#LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
На следующий код.
# Brew PHP LoadModule for `sphp` switcher
LoadModule php5_module /usr/local/lib/libphp5.so
#LoadModule php7_module /usr/local/lib/libphp7.so
Сохраните файл настроек и закройте его.
Проверим возможность переключения версий PHP.
Выполните команду sphp с двумя цифрами нужной версии.
$ sphp 70
PHP version 70 found
Unlinking old binaries...
Linking new binaries...
Linking /usr/local/Cellar/php70/7.0.14_7... 17 symlinks created
Linking new modphp addon...
Fixing LoadModule...
Updating version file...
Restarting homebrew Apache...
Restarting non-root homebrew Apache...
Done.
PHP 7.0.14 (cli) (built: Dec 14 2016 01:24:46) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
Откройте страницу http://localhost/ и убедитесь, что теперь активен PHP версии 7.0.
Установка MySQL
Для установки MySQL введите следующую команду.
$ brew install mysql
Завершение установки подтвердит следующее сообщение.
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
To connect run:
mysql -uroot
To have launchd start mysql now and restart at login:
brew services start mysql
Or, if you don't want/need a background service you can just run:
mysql. server start
==> Summary
/usr/local/Cellar/mysql/5.7.16: 13,511 files, 439M
Выполните указанные действия, если необходимо установить mysql на автозапуск.
$ brew services start mysql
Установка Redis, Memcached
С помощью Homebrew установка дополнительного ПО максимально проста.
Установим Redis.
$ brew install redis
==> Downloading https://homebrew.bintray.com/bottles/redis-3.2.6.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring redis-3.2.6.sierra.bottle.tar.gz
==> Caveats
To have launchd start redis now and restart at login:
brew services start redis
Or, if you don't want/need a background service you can just run:
redis-server /usr/local/etc/redis.conf
==> Summary
/usr/local/Cellar/redis/3.2.6: 11 files, 1.7M
Настроим автозагрузку и запустим Redis.
$ brew services start redis
Установим Memcached.
$ brew install memcached
==> Downloading https://homebrew.bintray.com/bottles/memcached-1.4.33.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring memcached-1.4.33.sierra.bottle.tar.gz
==> Caveats
To have launchd start memcached now and restart at login:
brew services start memcached
Or, if you don't want/need a background service you can just run:
/usr/local/opt/memcached/bin/memcached
==> Summary
/usr/local/Cellar/memcached/1.4.33: 11 files, 184.5K
Настроим автозагрузку и запустим Memcached.
$ brew services start memcached
Теперь необходимо установить PHP расширений для работы со свежеустановленнымы сервисами для каждой версии вам нужно загрузить расширения, которые требуются.
$ sphp 70
$ brew install php70-redis
$ brew install --HEAD homebrew/php/php70-memcached
Перезагрузите Apache и снова откройте http://localhost/.
$ sudo apachectl restart
В пункте “ дополнительные .ini файлы” вы увидите ini файлы установленных расширений.
Вы также можете заметить, что нужные расширения подгружены и готовы к работе.
Смените версию PHP перед началом установки расширений для нее.
$ sphp 56
$ brew install php56-redis php56-memcache php56-memcached
Снова перезагрузите Apache и откройте http://localhost/, чтобы убедиться в успехе.
$ sudo apachectl restart
Создание локального сайта
Для работы над несколькими проектами сразу удобно создать отдельную папку и доменное имя для каждого.
Например, ваш проект называется сodex. Первым делом создайте директорию.
$ mkdir ~/Sites/codex
Локальный сайт codex.local будет находиться на вашем компьютере. Поэтому нужно прописать в файле /etc/hosts адрес сервера и доменное имя.
$ sudo open -e /etc/hosts
Добавьте в конец файла следующую строку.
127.0.0.1 codex.local
Теперь надо настроить сам Apache сервер. Для этого откройте для редактирования файл настроек хостов.
$ open -e /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf
Добавьте следующий код, описывающий новый хост, в файл настроек. Название проекта codex уже вписано в нужные строки. Замените your_user на логин вашего пользователя.
# корневая директория проекта codex
DocumentRoot /Users/your_user/Sites/codex
# доменное имя
ServerName codex.local
# настройка прав доступа к директории проекта
AllowOverride All
Order allow,deny
Allow from all
Перед подключением первого локального сайта необходимо включить возможность использования хостов.
Откройте для редактирования файл /usr/local/etc/apache2/2.4/httpd.conf. Необходимо раскомментировать строку с подключением файла настроек виртуальных хостов.
# Virtual hosts
Include /usr/local/etc/apache2/2. 4/extra/httpd-vhosts.conf
После этих действий нужно перезагрузить сервер.
$ sudo apachectl restart
Теперь сайт, находящийся в директории ~/Sites/codex, будет доступен по адресу http://codex.local/.
Заключение
После выполнения описанных в статье шагов у вас должен получиться готовый к работе веб-сервер.
В этой статье представлен наиболее простой способ разворачивания рабочего окружения непосредственно на операционной системе. Существуют и другие способы решения описанных задач: например, с использованием Open Server (для Windows) или виртуализации с помощью VirtualBox, VMWare, Vagrant, Docker и других утилит. Об использовании докера читайте в статье «Как поднять сайт в Docker».
Материалы
- Статья-источник https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions
- Homebrew http://brew.sh
не удается достоверно определить полное доменное имя сервера
26 сентября, 2020 12:02 пп 27 856 views | Комментариев нетLAMP Stack | Amber | Комментировать запись
Эта серия мануалов поможет вам предотвратить или устранить самые распространенные ошибки, которые возникают при работе с веб-сервером Apache.
Каждый мануал в этой серии включает описание распространенных ошибок Apache, связанных с конфигурацией, сетью, файловой системой или привилегиями.
Ошибка конфигурации Apache «AH00558: Could not reliably determine the server’s fully qualified domain name» возникает, когда в настройках Apache нет глобальной директивы ServerName. Сообщение в основном предназначено для информирования, и сама по себе ошибка AH00558 не помешает правильной работе Apache.
В этом мануале вы узнаете, как применить алгоритм, описанный в руководстве Устранение общих ошибок Apache, чтобы обнаружить AH00558. Мы также поможем вам установить директиву ServerName, чтобы устранить эту ошибку.
Примечание: Если вы уже определили, что на вашем сервере Apache появляется ошибка AH00558, вы можете пропустить разделы по поиску неполадок и сразу перейти к последнему разделу этого мануала, чтобы установить глобальную директиву ServerName.
Поиск ошибки с помощью systemctl
Первый шаг при устранении AH00558 – это проверить статус Apache с помощью systemctl. Вывод systemctl часто содержит всю информацию, необходимую для исправления ошибки.
В дистрибутивах Ubuntu и Debian запустите следующую команду, чтобы проверить статус Apache:
sudo systemctl status apache2.service -l --no-pager
В CentOS, Fedora и других системах, производных от RedHat, используйте эту команду:
sudo systemctl status httpd.service -l --no-pager
Флаг -l выводит все содержимое строки без сокращений (без замены длинных строк многоточием (…)). Флаг –no-pager выводит весь лог на ваш экран, не вызывая инструмент less, который показывает только один экран контента за раз.
Вы должны получить такой вывод:
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2020-07-29 14:30:03 UTC; 33min ago
Process: 34 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 46 (apache2)
Tasks: 55 (limit: 2344)
CGroup: /system. slice/apache2.service
├─46 /usr/sbin/apache2 -k start
├─47 /usr/sbin/apache2 -k start
└─48 /usr/sbin/apache2 -k start
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server...
Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.
Обратите внимание на выделенную строку, содержащую сообщение об ошибке AH00558. По сути, она говорит вам, что Apache не смог найти валидную директиву ServerName в своем конфигурационном файле, поэтому он будет использовать первый обнаруженный IP-адрес. В данном примере это внешний IP-адрес сервера: 172.17.02. В вашем случае IP-адрес может быть другим, это также может быть человекочитаемое DNS-имя.
Если ваш вывод systemctl предлагает вам любое автоматически определяемое значение IP-адреса или хоста, перейдите к последнему разделу этого руководства, чтобы установить глобальную директиву ServerName и решить проблему (этот раздел поможет установить для Apache безопасное значение ServerName по умолчанию, используя IP-адрес localhost: 127. 0.0.1).
Если в выходных данных systemctl не указано значение, которое можно использовать для директивы ServerName, в следующем разделе этого мануала мы расскажем, как исследовать логи systemd с помощью journalctl для поиска информации о AH00558.
Устранение ошибки с помощью journalctl
Чтобы проверить логи systemd для Apache, воспользуйтесь командой journalctl. При вызове journalctl есть два особых флага, которые помогут вам найти определенные сообщения среди других записей.
Первый флаг, который нужно добавить к journalctl – это флаг –since today. он ограничит вывод команды только теми записями, которые были зарегистрированы в логе с 00:00:00 текущего дня. Использование этой опции поможет ограничить объем выведенных записей, которые вам придется изучить при поиске ошибок.
Второй флаг, который мы советуем использовать, – это опция –no-pager, которую вы применили в systemctl. Она сразу выводит весь лог на экран.
В системах Ubuntu и Debian выполните следующую команду:
sudo journalctl -u apache2. service --since today --no-pager
В CentOS, Fedora и других RedHat-подобных системах используйте эту команду:
sudo journalctl -u httpd.service --since today --no-pager
Если на вашем сервере Apache есть ошибка AH00558, просмотрите вывод journalctl и найдите такую строку:
-- Logs begin at Wed 2020-07-29 14:30:02 UTC, end at Wed 2020-07-29 14:45:03 UTC. --
. . .
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server...
Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.
Вторая строка вывода – это сообщение об ошибке AH00558. Строка содержит внешний IP-адрес сервера, который Apache автоматически определяет и устанавливает по умолчанию во время выполнения. Получив это сообщение как подтверждение ошибки AH00558, вы можете перейти к настройке глобальной директивы ServerName для решения проблемы.
В следующем разделе мы расскажем, как диагностировать ошибку AH00558 с помощью команды apachectl.
Поиск ошибки с помощью apachectl
Ошибка AH00558 может быть обнаружена с помощью утилиты Apache apachectl. Она может перехватывать подобные сообщения перед перезагрузкой или перезапуском Apache, и вам не придется искать ошибки в логах systemctl и journalctl.
Чтобы проверить конфигурацию Apache на наличие ошибки AH00558, выполните следующую команду:
sudo apachectl configtest
Вы должны получить следующий вывод, если на вашем сервере действительно есть ошибка AH00558:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Как и в предыдущих разделах этого мануала, в которых для поиска сообщений AH00558 использовались systemctl и journalctl, здесь важно найти строку, содержащую сообщение AH00558. Еще раз обратите внимание, что IP-адрес (172.17.0.2) у вас может отличаться.
В следующем разделе мы поможем установить директиву ServerName для устранения сообщений об ошибках AH00558.
Установка глобальной директивы ServerName
Чтобы устранить ошибку AH00558, необходимо добавить директиву ServerName в конфигурацию Apache. Apache использует директиву ServerName для сопоставления входящих HTTP-запросов с IP-адресом или именем DNS хоста (с помощью директив VirtualHost) для обработки запросов нескольких сайтов, размещенных в рамках одного сервера.
В сообщении об ошибке отмечается, что также нужно установить глобальную директиву ServerName. С ее помощью Apache сможет корректно обрабатывать входящие запросы, которые не сопоставляются с VirtualHost, не выдавая при этом дополнительных ошибок.
Для максимальной совместимости с различными конфигурациями Apache используйте для вашей глобальной директивы ServerName значение 127.0.0.1. При необходимости вы можете использовать другой IP-адрес или DNS-имя, соответствующее конфигурации вашего сервера, но безопаснее всего использовать 127. 0.0.1.
В системах Ubuntu и Debian откройте файл /etc/apache2/apache2.conf с правами root:
sudo nano /etc/apache2/apache2.conf
Добавьте в конец файла строку ServerName 127.0.0.1:
. . .
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
ServerName 127.0.0.1
В CentOS, Fedora и других системах RedHat откройте файл /etc/httpd/conf/httpd.conf с правами root:
sudo nano /etc/httpd/conf/httpd.conf
Добавьте строку ServerName 127.0.0.1 в конец файла:
. . .
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
ServerName 127.0.0.1
Сохраните и закройте файл, когда закончите.
После добавления директивы ServerName в конфигурацию запустите apachectl, чтобы проверить ошибки в обновленной конфигурации веб-сервера.
sudo apachectl configtest
Если apachectl не обнаружила ошибок в конфигурации, вы увидите:
Syntax OK
Теперь вы можете перезапустить Apache, используя соответствующую команду systemctl restart для вашего дистрибутива Linux.
В системах Ubuntu и Debian запустите:
sudo systemctl restart apache2.service
В системах CentOS, Fedora и RedHat используйте эту команду:
sudo systemctl restart httpd.service
После перезапуска Apache сообщение об ошибке AH00558 больше не будет отображаться в ваших логах. Вы можете убедиться, что сообщения исчезли, выполнив любую из трех команд systemctl, journalctl или apachectl, которые мы использовали ранее в этом руководстве.
Заключение
В этом мануале вы познакомились с ошибкой AH00558: Could not reliably determine the server’s fully qualified domain name. Хотя эти сообщения не препятствуют запуску Apache, их можно устранить, установив глобальную директиву ServerName.
Вы узнали, как искать сообщения об ошибках AH00558 с помощью команд systemctl, journalctl и apachectl и как отредактировать конфигурацию Apache в различных дистрибутивах Linux, чтобы эти сообщения больше не отображались.
Если вы хотите узнать больше о том, как Apache использует директивы ServerName, обратитесь к документации Apache.
Tags: Apache, apachectl, CentOS, Debian, Fedora, journalctl, systemctl, UbuntuПочему я не могу получить доступ к своему локальному веб-сайту после настройки веб-сервера Apache на Ubuntu?
Я хочу настроить локальный сервер Apache со стеком ламп. Я использую Ubuntu (использую последнюю выпущенную версию). Я следовал руководству, которое нашел во французской документации, поэтому вот что я сделал:
Я ввел в терминал следующую команду, чтобы установить основные инструменты: sudo apt установить apache2 php libapache2-mod-php mysql-сервер php-mysql Затем я установил и настроил phmyadmin, похоже, он работает, и я могу получить к нему доступ через localhost/phpmyadmin, поэтому я думаю, что сделал это правильно (localhost работает, я попадаю на страницу приветствия apache).
Проблема с доступом к моему проекту через браузер. Как сказано в руководстве, я создал файл конфигурации, чтобы предоставить Apache информацию о местонахождении моего проекта, в руководстве сказано создать файл конфигурации в /etc/apache2/sites-available/, мой файл называется location.com.conf ( файл учебника называется example.com.conf )
Вот содержимое этого файла, который я заполнил после руководства:
имя_сервера location.com Псевдоним сервера www.location.com DocumentRoot "/var/www/location/" <Каталог "/var/www/location/"> Параметры РазрешитьПереопределить все Требовать все предоставленные Каталог> Журнал ошибок /var/log/apache2/error.location.com.log CustomLog /var/log/apache2/access.location.com.log вместе виртуальный хост>
Я поместил папку своего проекта в /var/www/ (и имя проекта — «местоположение», поэтому полный путь к файлам моего проекта — /var/www/location/). Вот скриншот, если он может помочь:
После этого я также выполнил следующие команды: (Поскольку они сказали сделать это в учебнике, я понял, что он используется для активации проекта веб-сайта на apache после небольшого исследования):
sudo a2ensite location. ком sudo systemctl reload apache2
Кажется, он понимает, что означает location.com, потому что, если я попытаюсь сделать это несколько раз, он скажет мне, что он уже активирован (и если я попытаюсь, например, sudo a2ensite thrkrthrth.com, он скажет мне, что он не не знаю что такое thrkrtf.. )
Проблема в том, что когда я пытаюсь зайти на localhost/location или localhost/location.com или 127.0.0.1/location или 127.0.0.1/location.com, это просто не работает, вот скриншот, если он может помочь:
Я получаю этот результат каждый раз (я также пробовал просто location.com или www.location.com, я знаю, что это глупо, но, возможно, это могло бы сработать, очевидно, я просто захожу на случайный веб-сайт с именем location. com)
Можете ли вы помочь Я пожалуйста ? Спасибо РЕДАКТИРОВАТЬ : Я только что случайно обнаружил, что если я зайду в файл с именем «000-default.conf» в apache2/sites-available, там будет строка: «DocumentRoot /var/www/html/». Я изменил ее на « DocumentRoot /var/www/» просто попробовать, и теперь я могу получить доступ к localhost/location, но мне нужно набрать localhost/www/phpmyadmin, я думаю, это грязный способ сделать это, поэтому я просто добавляю это как новую подсказку, которая может Помогите узнать, откуда взялась проблема и как ее решить, мне все еще нужна помощь, пожалуйста. Я хотел бы иметь доступ к phpmyadmin, просто набрав localhost/phpmyadmin, как обычно, и получить доступ к моему веб-сайту, используя localhost/location
сервер — виртуальный хост apache — локальный хост и псевдоним разработки / имя сервера
спросил
Изменено 2 года, 5 месяцев назад
Просмотрено 2к раз
Я пытаюсь настроить файл apache vhosts так, чтобы он имел локальное/что-то имя хоста и псевдонимы хостов. В настоящее время я работаю с API Google, и они не принимают пользовательские псевдонимы в качестве URL-адресов, поэтому я не могу заставить его работать с моими пользовательскими URL-адресами. Есть мысли, что делать? Моя текущая конфигурация, которая не работает:
<Виртуальный хост 127.0.0.1:80> имя_сервера localhost/go Псевдоним сервера localhost/go DocumentRoot "D:/имя_пользователя/Web/server.dev/go" виртуальный хост> <Каталог "D:/имя пользователя/Web/"> Опционы Индексы FollowSymLinks MultiViews РазрешитьПереопределить все Порядок Запретить, Разрешить Разрешить от всех Требовать все предоставленные Каталог> <Виртуальный хост *:80> Имя Сервера api.server.dev Псевдоним сервера api.server.dev DocumentRoot "D:/имя_пользователя/Web/server.dev/api" виртуальный хост> ##... больше пользовательских URL с вырезанными поддоменами, потому что это не нужно <Виртуальный хост *:80> Имя_сервера adstrck.server.dev DocumentRoot "D:/имя_пользователя/Web/server. dev/adstrck" виртуальный хост> ### ВСЕ ДРУГИЕ ### <Виртуальный хост *:80> Имя сервера www.server.dev Псевдоним сервера server.dev *.server.dev DocumentRoot D:/имя пользователя/Web/server.dev виртуальный хост>
Когда я пытаюсь получить доступ к 127.0.0.1/go или localhost/go, я получаю внутреннюю ошибку сервера.
- апач
- сервер
- виртуальный хост
Возможно, вам нужно что-то вроде этого
имя_сервера Псевдоним сервера server.dev *.server.dev DocumentRoot "D:/имя_пользователя/Web/server.dev" виртуальный хост> <Каталог "D:/имя пользователя/Web/server.dev"> Опционы Индексы FollowSymLinks MultiViews РазрешитьПереопределить все Порядок Запретить, Разрешить Разрешить от всех Требовать все предоставленные Каталог>
Затем используйте адрес типа http://localhost/go для просмотра сайта.
4В зависимости от вашей ОС/браузера вы можете добавить поддомен разработки на localhost.