Risolvi / Utenti / nomeutente / Siti / foo ~ / bar localhost / ~ nomeutente Alta connessione al server Sierra Apache Errore interno del server

0

Battle of VirtualHost / Users / myusername / Sites / foo ~ / bar Errore interno del server per giorni tenta di collegare localhost / ~ myusername al server http Apache / 2.4.28 su macOS 10.13 .3 Il teatro delle operazioni di High Sierra non va secondo alcun piano:

Apache non funziona con la cartella Siti dell'utente su macOS 10.13 High Sierra

Configura host virtuali su macos High Sierra 10.13 in Apache

Configura localhost su macOS High Sierra (Apache, MySQL e PHP 7) con SSL / HTTPS

La mia domanda è ovviamente molto simile a quella di Fyfe: Apache non funziona con la cartella Siti dell'utente su macOS 10.13 High Sierra tranne che non ho bisogno di mantenere alcun / Library / Webserver / Documenti poiché non ce n'erano, voglio solo Users / myusername / Siti per essere operativi.

In effetti, vedo questo problema del server-username Apache dappertutto, che cosa c'è di più centrale nello sviluppo del web rispetto a uno che si connette semplicemente al proprio server? Così sembra che ci siano solo due tipi di sviluppatori ~ / foo: "Ho appena fatto questo e funziona perfettamente!" e ~ / bar: "Ho fatto tutto questo e niente funziona." Bene, La domanda di Fyfe del 27 settembre 17 ha 15 risposte e il conteggio, l'ultima è il 1 ° febbraio 18 con nessun segno di spunta verde .

Anche in questo caso, non avevo impostato o utilizzato Apache, php o vhosts in Sierra, quindi non ho bisogno di mantenere / Library / Webserver / Documents perché non ce n'erano, VirtualHost *: 80 comando aggiunto sotto per mantenere l'opzione aperta , anche se sto solo cercando di ottenere utenti / myusername / Sites / foo e ~ / bar per funzionare.

sudo apachectl configtest 
Syntax OK

php -v
PHP 7.1.7

/etc/apache2/extra/https-vhosts.conf

#Enable PHP interpretation within HTML files
<FilesMatch ".+\.html$">
  SetHandler application/x-httpd-php
</FilesMatch>

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Library/WebServer/Documents/
</VirtualHost>

#VIRTUAL HOST ENTRY FOR foo.localhost
<VirtualHost *:80>
  DocumentRoot "/Users/myusername/Sites/foo"
  ServerName foo.localhost
  ErrorLog "/private/var/log/apache2/foo-error_log"
  CustomLog "/private/var/log/apache2/foo-access_log" common
</VirtualHost>

#VIRTUAL HOST ENTRY FOR bar.localhost
<VirtualHost *:80>
  DocumentRoot "/Users/myusername/Sites/bar"
  ServerName bar.localhost
  ErrorLog "/private/var/log/apache2/bar-error_log"
  CustomLog "/private/var/log/apache2/bar-access_log" common
</VirtualHost>

/ etc / hosts

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

#Local myusername/Sites
127.0.0.1       foo.localhost
127.0.0.1       bar.localhost

#Map your IP address to localhost
127.0.0.1 apple.com www.apple.com

/etc/apache2/httpd.conf

# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.

ServerRoot "/usr"

# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

#User _www
#Group _www

User myusername
Group staff

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule negotiation_module libexec/apache2/mod_negotiation.so
LoadModule dir_module libexec/apache2/mod_dir.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module libexec/apache2/libphp7.so
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

/etc/apache2/extra/httpd-userdir.conf

Include /private/etc/apache2/users/*.conf
  • I comandi di PHP 7 non funzionano
  • localhost / ~ myusername = > Errore interno del server
  • foo.localhost = > ricerca google "foo.localhost" results = > poo
  • localhost = > Vietato negare il permesso di accesso / su questo server

È ora di chiamare attacchi aerei ... tutto quello che ho qui è FUBAR

AGGIORNAMENTO DELLA SOLUZIONE: klanomath ha eliminato i primi bersagli, Tanks! funzionano localhost / ~ myusername e link .

Tuttavia ... Arrg ... quando si digita localhost / ~ myusername php sembra eseguire questo file /Sites/index.php, in cui "Hello From Sites Folder!" e arriva la pagina 7.1.7 phpinfo:

<?php
    echo "Hello From Sites Folder!";
    phpinfo();
?>

Tuttavia questa combinazione php index.html e example.php apparentemente non viene eseguita

<?php
    date_default_timezone_set('UTC');
    $day = date('l');
?>

<!doctype html>
<html>
   <head>
       <title>Hello, World! | Foo</title>
   </head>
   <body>
       <h1>Hello, World!</h1>
           <p>Welcome to <strong>Foo</strong>.</p>
           echo $greeting
   </body>
</html

example.php (entrambi nella directory foo)

<?php
   $greeting = 'Hello, PHP World!';
   echo '<h1>' . $greeting . '</h1>';
?>

in cui si fa doppio clic su /Sites/foo/index.html si apre solo una stampa della pagina

Hello, World!

Welcome to Foo.

echo $greeting (instead of Hello, PHP World!)
    
posta ehounder 04.03.2018 - 18:57
fonte

1 risposta

0

Una semplice configurazione di lavoro che inizia con default macOS di file di configurazione Apache è la seguente:

/ etc / hosts

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
127.0.0.1       foo.localhost
127.0.0.1       bar.localhost
255.255.255.255 broadcasthost
::1             localhost

Modifiche del file predefinito /private/etc/apache2/httpd.conf:

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
...
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module libexec/apache2/libphp7.so
...
DocumentRoot "/Users/<username>/Sites"
<Directory "/Users/<username>/Sites">
...
Include /private/etc/apache2/extra/httpd-vhosts.conf

Configurazione degli host virtuali /etc/apache2/extra/https-vhosts.conf

#Enable PHP interpretation within HTML files
<FilesMatch ".+\.html$">
  SetHandler application/x-httpd-php
</FilesMatch>

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Users/<username>/Sites
</VirtualHost>

#VIRTUAL HOST ENTRY FOR foo.localhost
<VirtualHost *:80>
  DocumentRoot "/Users/<username>/Sites/foo"
  ServerName foo.localhost
  ErrorLog "/private/var/log/apache2/foo-error_log"
  CustomLog "/private/var/log/apache2/foo-access_log" common
</VirtualHost>

#VIRTUAL HOST ENTRY FOR bar.localhost
<VirtualHost *:80>
  DocumentRoot "/Users/<username>/Sites/bar"
  ServerName bar.localhost
  ErrorLog "/private/var/log/apache2/bar-error_log"
  CustomLog "/private/var/log/apache2/bar-access_log" common
</VirtualHost>

File di test PHP index.html in foo / and bar /:

<html><body><h1>Welcome to foo/bar. It works!</h1></body></html>

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>

L'abilitazione di roba userdir non è richiesta perché non vuoi accedere a ... / ~ username /

Quindi in Safari o Google inserisci " link " invece di semplicemente "bar | foo.localhost"

Questa configurazione non dovrebbe / non consentirà l'accesso al link o al link . Ma nel tuo caso questo non è richiesto in ogni caso.

Se accedi al link e link ecc è richiesto, usa il DocumentRoot /Library/Websites/Documents predefinito in httpd.conf e per il vhost localhost. Abilita inoltre LoadModule userdir_module libexec/apache2/mod_userdir.so e Include /private/etc/apache2/extra/httpd-userdir.conf in httpd.conf. Abilita Include /private/etc/apache2/users/*.conf in /private/etc/apache2/extra/httpd-userdir.conf e aggiungi i rispettivi file < ⁣username1 | 2 | 3 > .conf in / private / etc / apache2 / users / per ciascun utente.

    
risposta data 05.03.2018 - 04:16
fonte

Leggi altre domande sui tag