2016-12-01 34 views
5

Nie wiedząc, że mój Mac przyszedł z Apache2.4 i nie sprawdzając, na którym systemie operacyjnym działałem, poszedłem za tym przewodnikiem, aby uzyskać Apache/MySQL/PHP na moim komputerze przy użyciu Homebrew : https://echo.co/blog/os-x-109-local-development-environment-apache-php-and-mysql-homebrewZainstaluj/Odinstaluj Apache2 na MacOS Sierra 10.12.1

To doprowadziło mnie do posiadania dwóch wersji Apache2 działających na moim komputerze: 2.2 i 2.4. Kiedy pytałam w terminalu, dla którego uruchomiłem apache'a, odpowiedź brzmiała 2.4, ale gdy próbowałem otworzyć instancję mojego programu na moim wirtualnym hoście, nie mogłem dotrzeć do strony. To, co się później wydarzyło, jest zdezorientowane, ponieważ pracowałem nad tym nad innymi osobami, które próbowały go rozwiązać, i zmieniły i przeniosły pliki, więc kiedy odzyskałem komputer, nie wiedziałem nawet, gdzie zacząć rozumieć, gdzie jestem, więc próbowałem odinstalować obie wersje Apache i zainstalować ponownie 2.4.

Ponieważ nie mogłem znaleźć żadnego przewodnika, który pomógłby mi odinstalować Apache, a polecenie parzenia nie działało, poszedłem do usuwania folderów Apache i szukałem czegokolwiek w moich katalogach zawierających słowa "apache" lub " httpd "(wszystko, co mogłem znaleźć, co oznacza, że ​​mogłem również pominąć niektóre pliki, ponieważ nie wiedziałem, gdzie je szukać).

Po wykonaniu tej czynności ponownie zainstalowałem apache 2.4 po tym innym przewodniku https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions aż do instalacji PHP (której nie wykonałem).

Po powinno zainstalować znowu dodaje dane do mojego wirtualnego hosta w httpd-vhost.conf następująco:

<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> 

a potem zmodyfikowany plik httpd.conf w/usr/lokalnym/itp/apache2/2,4 folder z poniższych (jestem pomijając komentowanej linii):

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> 

Później dodałem następujące do pliku hosts w katalogu/etc Folder (co nie jest takie samo jak/usr/local/etc, ten znajduje się w katalogu głównym, jeden poziom w górę/usr):

127.0.0.1 localhost 
255.255.255.255 broadcasthost 
::1    localhost 

127.0.0.1 myApp.username.com 

Moją nadzieją było zobaczyć "działa!" na localhost: 8080 i myApp na localhost: 80. Widzę "działa!" na localhost: 8080, ale jeśli zaktualizuję stronę, otrzymam komunikat "Ta witryna nie może zostać osiągnięta/localhost odmówił połączenia.". Zacząłem, zatrzymałem, zrestartowałem apache, ale cały czas mam takie samo zachowanie. Na localhost: 80 zamiast tego otrzymuję myApp, ale nie mogę go uruchomić, PHP nie jest przetwarzane i widzę tylko strukturę drzewa w folderze.

Uruchomiłem apachectl configtest i otrzymuję składnię OK. Uruchomiłem php -v i otrzymałem PHP 5.4.45 (cli) (zbudowany: 23 listopada 2016 11:12:05), więc wszystko działa.

Sprawdzanie pliku httpd.conf, że wklejony wyżej zauważyłem, że brakowało moduł php, więc dodałem LoadModule php5_module libexec/libphp5.so

ja wciąż się te same problemy.

Czego naprawdę nie rozumiem, to struktura folderów, ponieważ próbuję podążać za innymi przewodnikami, ale zdają się wskazywać na folder apache2, który musiałem wymazać, a nie powinienem próbując odinstalować starsze wersje i najwyraźniej nie został odtworzony podczas ponownej instalacji (/ etc/apache2/users). Nie mam folderu apache2 w moim folderze etc, który mam na poziomie głównym, więc zakładam, że muszę szukać/użytkowników w/etc/apache2, które mam pod/usr/local, ale w tym folderze mam tylko mieć katalog 2.4.

Jestem bardzo zdezorientowany organizacją wszystkich tych katalogów i plików i wydaje mi się, że nie jestem w stanie zrozumieć, czy zostały one poruszone przez ludzi, którzy próbowali mi pomóc, gdybym przypadkowo je wymazał/etc/apache2/users podczas odinstalowywania tych poprzednich wersji lub jeśli po prostu w gruncie rzeczy popsułem się po zbyt wielu różnych przewodnikach.

Więc moje pytanie brzmi:

Mogę to jakoś naprawić, gdyż jest pokazanie MojaApl na port 80 na localhost analizowania PHP poprawnie?

Jeśli nie, jak mogę odinstalować apache w czysty sposób, upewniając się, że nie usuwam ważnych plików, których nie należy dotykać, a jednocześnie zabieram wszystkie te, które spowodują konflikt z nowo zainstalowana wersja?

+0

Mam też więcej niż jedno miejsce, w którym plik index.html dla "działa!" Wiadomość jest: /Library/WebServer/Documents/index.html.en i /usr/local/var/www/htdocs/index.html Próbowałem modyfikowania zarówno z nich, ale nie mogę osiągnąć sukces w uzyskaniu zmienia się tekst, więc apache z folderu publicznego odnosi się do odpowiedzi na localhost: 8080 nie jest jednym z dwóch (lub ciągle coś mi brakuje). –

Odpowiedz

0

Po wielu badaniach i współpracy, jedynym sposobem na ponowne uruchomienie Apache było przywrócenie ustawień fabrycznych do mojego systemu operacyjnego i powrót do domyślnej organizacji. Teraz moje foldery wyglądają na czyste, a apache działa na porcie 80, tak jak powinno, zamiast na 8080. Teraz będę kontynuował tworzenie wirtualnego hosta dla myApp.