2016-12-01 1 views
5

Ne sachant pas que mon Mac est venu avec Apache2.4 et ne pas avoir vérifié quel OS je fonctionnais, j'ai suivi ce guide pour obtenir Apache/MySQL/PHP sur ma machine en utilisant Homebrew : https://echo.co/blog/os-x-109-local-development-environment-apache-php-and-mysql-homebrewInstaller/Désinstaller Apache2 sur MacOS Sierra 10.12.1

Cela m'a conduit à avoir deux versions d'Apache2 fonctionnant sur ma machine: 2.2 et 2.4. Lors de la demande dans le terminal pour lequel Apache était en cours d'exécution, la réponse était 2.4, mais en essayant d'ouvrir une instance de mon programme sur mon hôte virtuel, je ne pouvais pas accéder à la page. Ce qui est arrivé après cela est confus parce que j'ai demandé à d'autres personnes d'essayer de le résoudre et ils ont changé et déplacé des fichiers, donc quand j'ai récupéré mon ordinateur, je ne savais même pas par où commencer, J'ai donc essayé de désinstaller les deux versions d'Apache et de réinstaller 2.4. Comme je n'ai pas trouvé de guide qui m'a aidé à désinstaller apache et que la commande de brassage remove ne fonctionnait pas, je suis allé effacer les dossiers apache et j'ai recherché dans mes répertoires les mots "apache" ou " httpd "(tout ce que j'ai pu trouver, ce qui signifie que j'ai peut-être aussi manqué certains fichiers parce que je ne savais pas où les chercher). Après je l'ai fait, j'ai réinstallé Apache 2.4 suite à cet autre guide https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions jusqu'à l'installation de PHP (que je n'ai pas effectuée)

Après avoir installé apache à nouveau j'inséré les données pour mon hôte virtuel dans httpd-vhost.conf comme suit:

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

puis j'ai modifié le fichier httpd.conf dans le répertoire/usr/local/etc/dossier apache2/2.4 avec les Suiveurs (j'omettre les lignes commentées):

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> 

Plus tard, j'ajouté ce qui suit au fichier hosts dans le dossier/etc (ce qui est la même chose que/usr/local/etc, celui-ci réside dans la racine, un niveau haut/usr):

127.0.0.1 localhost 
255.255.255.255 broadcasthost 
::1    localhost 

127.0.0.1 myApp.username.com 

Et mon espoir était de voir "ça marche!" sur localhost: 8080 et myApp sur localhost: 80. Je vois "ça marche!" sur localhost: 8080 mais si je mets à jour la page je reçois "Ce site ne peut pas être atteint/localhost a refusé de se connecter.". J'ai commencé, arrêté, redémarré apache mais j'ai toujours le même comportement. Sur localhost: 80 à la place je reçois myApp, mais je ne peux pas l'exécuter, le PHP n'est pas analysé et je ne vois que l'arborescence du dossier.

J'ai exécuté le fichier configtest apachectl et j'ai obtenu la syntaxe OK. J'ai couru php -v et j'ai obtenu PHP 5.4.45 (cli) (construit: Nov 23 2016 11:12:05) donc tout fonctionne.

Vérification du fichier httpd.conf que je collais ci-dessus, j'ai remarqué que je manquais le module php, donc j'ajouté LoadModule php5_module libexec/libphp5.so

Je reçois toujours les mêmes problèmes. Ce que je ne semble vraiment pas comprendre, c'est la structure de dossier de tout cela, parce que j'essaie de suivre d'autres guides mais ils semblent pointer vers un dossier apache2 que j'ai dû effacer alors que je n'aurais pas dû essayer de désinstaller les anciennes versions et apparemment il n'a pas été recréé lors de la réinstallation (/ etc/apache2/users). Je n'ai pas de dossier apache2 dans mon dossier etc que j'ai au niveau de la racine, donc je suppose que je dois chercher/users dans/etc/apache2 que j'ai sous/usr/local, mais dans ce dossier seulement avoir le répertoire 2.4.Je suis extrêmement confus par l'organisation de tous ces répertoires et fichiers et je ne semble pas pouvoir comprendre s'ils ont été déplacés par ceux qui ont essayé de m'aider, si j'ai accidentellement effacé cela/etc/apache2/users lors de la désinstallation de ces versions précédentes ou si j'ai simplement foiré en suivant trop de guides différents.

Ma question est la suivante:

Puis-je résoudre ce problème en quelque sorte comme il est de montrer myApp sur le port 80 dans l'analyse syntaxique localhost PHP correctement?

Si non, comment puis-je désinstaller apache de manière propre, en veillant à ne pas effacer les fichiers importants qui ne devraient pas être touchés et en même temps je supprime tous ceux qui vont créer un conflit avec la nouvelle version installée?

+0

J'ai aussi plus d'un endroit où un index.html pour le "ça marche!" message est: /Library/WebServer/Documents/index.html.en et /usr/local/var/www/htdocs/index.html J'ai essayé en train de modifier les deux mais je ne peux pas réussir à avoir le texte change, donc le dossier public apache fait référence à quand il répond sur localhost: 8080 n'est ni l'un ni l'autre (ou il me manque encore quelque chose). –

Répondre

0

Après de nombreuses recherches et collaborations, la seule façon de faire fonctionner Apache à nouveau était de réinitialiser les paramètres d'usine de mon système d'exploitation et de revenir à l'organisation par défaut. Maintenant, mes dossiers semblent propres et apache fonctionne sur le port 80 comme il se doit au lieu de 8080. Je vais maintenant procéder à la création d'un hôte virtuel pour myApp.