2016-12-01 4 views
5

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

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

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

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

После повторной установки апача я вставил данные для моего виртуального хоста в 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/местные/и т.д./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> 

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

127.0.0.1 localhost 
255.255.255.255 broadcasthost 
::1    localhost 

127.0.0.1 myApp.username.com 

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

Я запустил apachectl configtest и получил синтаксис OK. Я запустил 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, которая у меня на корневом уровне, поэтому я предполагаю, что мне нужно искать/пользователей в/etc/apache2, которые у меня есть под/usr/local, но в этой папке я только иметь каталог 2.4.

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

Так что мой вопрос:

Могу ли я исправить это как-то, как это должно показать MYAPP на порт 80 в LOCALHOST парсинга PHP правильно?

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

+0

У меня также есть более одного места, где index.html для «он работает!». сообщение: /Library/WebServer/Documents/index.html.en и /usr/local/var/www/htdocs/index.html Я попытался модифицируя их обоих, но я не могу добиться успеха в том, изменение текста, поэтому общая папка apache относится к ответу на localhost: 8080 не является ни одним из двух (или я все еще что-то не хватает). –

ответ

0

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

Смежные вопросы