Установить / удалить Apache2 на MacOS Sierra 10.12.1

Не зная, что мой Mac поставляется с Apache2.4 и не проверив, на какой операционной системе я работал, я следовал этому руководству, чтобы установить Apache / MySQL / PHP на мою машину с помощью Homebrew: https://echo.co/blog/os-x-109-local-development-environment-apache-php-and-mysql-homebrew

Это привело к тому, что на моей машине работало две версии Apache2: 2.2 и 2.4. При запросе в терминале, для которого работает apache, ответ был 2.4, но при попытке открыть экземпляр моей программы на моем виртуальном хосте я не смог добраться до страницы.
То, что произошло после этого, сбито с толку, потому что другие люди работают над ним, пытаясь решить его, и они меняют и перемещают файлы, поэтому, когда я вернул свой компьютер, я даже не знал, с чего начать, чтобы понять, где я был, поэтому Я попытался удалить обе версии Apache и переустановить 2.4.

Так как я не смог найти руководство, которое помогло бы мне удалить apache, а команда brew remove не работала, я попытался стереть папки apache и искал в своих каталогах что-либо, содержащее слова «apache» или «httpd» (что угодно Я мог найти, что означает, что я мог также пропустить некоторые файлы, потому что я просто не знал, где их искать).

После этого я переустановил Apache 2.4, следуя этому другому руководству https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions до установки PHP (которую я не выполнил).

После установки apache я вставил данные для своего виртуального хоста в httpd-vhost.conf следующим образом:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/Users/username/apache_vh/myApp"ServerName myApp.username.com
ErrorLog "/usr/local/var/log/apache2/myApp-error_log"CustomLog "/usr/local/var/log/apache2/myApp-access_log" common
<Directory />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

а затем я изменил файл httpd.conf в папке /usr/local/etc/apache2/2.4 следующим образом (я опускаю закомментированные строки):

ServerRoot "/usr/local/opt/httpd24"Listen 80

LoadModule authn_file_module libexec/mod_authn_file.so
[...]
LoadModule authn_core_module libexec/mod_authn_core.so
LoadModule authz_host_module libexec/mod_authz_host.so
LoadModule authz_groupfile_module libexec/mod_authz_groupfile.so
LoadModule authz_user_module libexec/mod_authz_user.so
[...]
LoadModule authz_core_module libexec/mod_authz_core.so
LoadModule access_compat_module libexec/mod_access_compat.so
LoadModule auth_basic_module libexec/mod_auth_basic.so
[...]
LoadModule reqtimeout_module libexec/mod_reqtimeout.so
[...]
LoadModule filter_module libexec/mod_filter.so
[...]
LoadModule mime_module libexec/mod_mime.so
LoadModule log_config_module libexec/mod_log_config.so
[...]
LoadModule env_module libexec/mod_env.so
[...]
LoadModule headers_module libexec/mod_headers.so
[...]
LoadModule setenvif_module libexec/mod_setenvif.so
LoadModule version_module libexec/mod_version.so
[...]
LoadModule unixd_module libexec/mod_unixd.so
[...]
LoadModule status_module libexec/mod_status.so
LoadModule autoindex_module libexec/mod_autoindex.so
[...]
<IfModule mpm_prefork_module>
#LoadModule cgi_module libexec/mod_cgi.so
</IfModule>
<IfModule !mpm_prefork_module>
#LoadModule cgid_module libexec/mod_cgid.so
</IfModule>
[...]
LoadModule dir_module libexec/mod_dir.so
[...]
LoadModule alias_module libexec/mod_alias.so
LoadModule rewrite_module libexec/mod_rewrite.so

<IfModule unixd_module>
User _www
Group staff
</IfModule>

ServerAdmin [email protected]

ServerName localhost

<Directory />
AllowOverride none
Require all denied
</Directory>

<Directory "/Users/username/Sites">
MultiViews
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

<Files ".ht*">
Require all denied
</Files>

ErrorLog "/usr/local/var/log/apache2/error_log"
LogLevel warn

<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>

CustomLog "/usr/local/var/log/apache2/access_log" common

</IfModule>

<IfModule alias_module>

ScriptAlias /cgi-bin/ "/usr/local/var/apache2/cgi-bin/"
</IfModule>

<Directory "/usr/local/var/apache2/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

<IfModule mime_module>
TypesConfig /usr/local/etc/apache2/2.4/mime.types

#AddType application/x-gzip .tgz
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#AddHandler cgi-script .cgi
#AddHandler type-map var
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>

# Virtual hosts
Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

[...]

<IfModule proxy_html_module>
Include /usr/local/etc/apache2/2.4/extra/proxy-html.conf
</IfModule>

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

Позже я добавил следующее в файл hosts в папке / etc (который не совпадает с / usr / local / etc, этот находится в корневом каталоге, на один уровень выше / usr):

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost

127.0.0.1  myApp.username.com

И я надеялся увидеть «это работает!» на локальном хосте: 8080 и myApp на локальном хосте: 80.
Я вижу «это работает!» на локальном хосте: 8080, но если я обновляю страницу, я получаю сообщение «Этот сайт недоступен / локальный хост отказался подключиться». Я запустил, остановил, перезапустил apache, но у меня все время такое поведение.
На localhost: 80 вместо этого я получаю myApp, но не могу его запустить, PHP не анализируется, и я вижу только древовидную структуру папки.

Я запустил apachectl configtest и получил синтаксис ОК. Я запустил php -v и получил PHP 5.4.45 (cli) (сборка: 23 ноября 2016 г., 11:12:05), так что все работает.

Проверяя файл httpd.conf, который я вставил выше, я заметил, что мне не хватает модуля php, поэтому я добавил LoadModule php5_module libexec/libphp5.so

У меня все те же проблемы.

Что я действительно не понимаю, так это структура всех папок, потому что я пытаюсь следовать другим руководствам, но они, похоже, указывают на папку apache2, которую я должен был стереть, пока не должен был пытаться удалить старые версии и, по-видимому, он не был воссоздан во время переустановки (/ etc / apache2 / users). У меня нет папки apache2 в моей папке etc, которая у меня есть на корневом уровне, поэтому я предполагаю, что мне нужно искать / users в / etc / apache2, который у меня есть в / usr / local, но в этой папке я только есть каталог 2.4.

Меня крайне смущает организация всех этих каталогов и файлов, и я не могу понять, были ли они перемещены людьми, которые пытались мне помочь, если я случайно стер это / etc / apache2 / пользователи при удалении этих предыдущих версий или если я просто испортил слишком много разных руководств.

Итак, мой вопрос:

Можно ли это как-то исправить, так как это правильно показывает myApp на порте 80 в PHP для localhost?

Если нет, то как я могу удалить apache чистым способом, убедившись, что я не удаляю важные файлы, которые не должны быть затронуты, и в то же время убираю все те, которые создадут конфликт с недавно установленной версией ?

5

Решение

После долгих исследований и совместной работы единственным способом заставить Apache работать снова было восстановление заводских настроек для моей ОС и возврат к организации по умолчанию.
Теперь мои папки выглядят чистыми, и Apache работает на порте 80, как и положено вместо 8080. Теперь я приступлю к созданию виртуального хоста для myApp.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]