Am creat un laravel 8
aplicație și instalată apache2
.
Fișierele mele de configurare arată astfel:
000-default.conf
<VirtualHost *:80>
# Directiva ServerName stabilește schema de solicitare, numele gazdă și portul
# serverul îl folosește pentru a se identifica. Acesta este folosit la creare
# adrese URL de redirecționare. În contextul gazdelor virtuale, ServerName
# specifică ce nume de gazdă trebuie să apară în antetul Gazdă: către solicitări
# potriviți această gazdă virtuală. Pentru gazda virtuală implicită (acest fișier) aceasta
# valoarea nu este decisivă deoarece este folosită ca gazdă de ultimă instanță, indiferent.
# Cu toate acestea, trebuie să îl setați pentru orice altă gazdă virtuală în mod explicit.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /home/admin/Desktop/Code/
# Niveluri de jurnal disponibile: trace8, ..., trace1, debug, info, notice, warn,
# eroare, critică, alertă, emerg.
# De asemenea, este posibil să configurați nivelul de jurnal pentru un anumit
# module, de ex.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinat
# Pentru majoritatea fișierelor de configurare din conf-available/, care sunt
# activat sau dezactivat la nivel global, este posibil să
# includeți o linie doar pentru o anumită gazdă virtuală. De exemplu, cel
# următoarea linie activează configurația CGI numai pentru această gazdă
# după ce a fost dezactivat global cu „a2disconf”.
#Include conf-available/serve-cgi-bin.conf
<Directorul /home/admin/Desktop/Code/laravel_project/public/>
AllowOverride All
permite de la toti
Opțiuni +Indecși
</Director>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
apache2.conf
# Acesta este fișierul principal de configurare a serverului Apache. Acesta conține
# directive de configurare care oferă serverului instrucțiunile sale.
# Consultați http://httpd.apache.org/docs/2.4/ pentru informații detaliate despre
# directivele și /usr/share/doc/apache2/README.Debian despre specificul Debian
# indicii.
#
#
# Rezumatul modului în care funcționează configurația Apache 2 în Debian:
# Configurația serverului web Apache 2 în Debian este destul de diferită de
# modalitatea sugerată de amonte de a configura serverul web. Acest lucru se datorează faptului că Debian
# instalarea implicită Apache2 încearcă să adauge și să elimine module,
# gazde virtuale și directive de configurare suplimentare cât mai flexibile posibil, în
# pentru a face automatizarea modificărilor și administrarea serverului la fel de ușor ca
# posibil.
# Este împărțit în mai multe fișiere care formează ierarhia de configurare conturată
# de mai jos, toate situate în directorul /etc/apache2/:
#
# /etc/apache2/
# |-- apache2.conf
# | `-- ports.conf
# |-- mods-enabled
# | |-- *.încărcare
# | `-- *.conf
# |-- conf-activat
# | `-- *.conf
# `-- site-uri activate
# `-- *.conf
#
#
# * apache2.conf este fișierul de configurare principal (acest fișier). Se pune piesele
# împreună prin includerea tuturor fișierelor de configurare rămase la pornirea
# server web.
#
# * ports.conf este inclus întotdeauna din fișierul de configurare principal. Este
# ar trebui să determine porturile de ascultare pentru conexiunile de intrare care pot fi
# personalizat oricând.
#
# * Fișierele de configurare în mods-enabled/, conf-enabled/ și site-enabled/
# directoarele conțin anumite fragmente de configurare care gestionează module,
# fragmente de configurație globală sau configurații de gazdă virtuală,
# respectiv.
#
# Ele sunt activate prin crearea de legături simbolice ale fișierelor de configurare disponibile din acestea
# respectiv *-disponibil/ omologi. Acestea ar trebui gestionate prin utilizarea noastră
# helpers a2enmod/a2dismod, a2ensite/a2dissite și a2enconf/a2disconf. Vedea
# paginile lor de manual respective pentru informații detaliate.
#
# * Binarul se numește apache2. Datorită utilizării variabilelor de mediu, în
# configurația implicită, apache2 trebuie pornit/oprit cu
# /etc/init.d/apache2 sau apache2ctl. Apelarea directă a /usr/bin/apache2 nu va fi
# lucrează cu configurația implicită.
# Configurație globală
#
#
# ServerRoot: partea de sus a arborelui de directoare sub care se află serverul
# sunt păstrate fișierele de configurare, erori și jurnal.
#
# NOTĂ! Dacă intenționați să plasați acest lucru pe o rețea NFS (sau altfel)
# sistem de fișiere montat, apoi vă rugăm să citiți documentația Mutex (disponibilă
# la <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# te vei scuti de multe necazuri.
#
# NU adăugați o bară oblică la sfârșitul căii directorului.
#
#ServerRoot „/etc/apache2”
#
# Fișierul de blocare a serializării de acceptare TREBUIE SĂ FIE STOCAT PE UN DISC LOCAL.
#
#Fișier Mutex:${APACHE_LOCK_DIR} implicit
#
# Directorul în care vor fi stocate shm și alte fișiere de rulare.
#
DefaultRuntimeDir ${APACHE_RUN_DIR}
#
# PidFile: Fișierul în care serverul ar trebui să-și înregistreze procesul
# număr de identificare când începe.
# Acesta trebuie setat în /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}
#
# Timeout: numărul de secunde înainte de expirarea timpului de primire și trimitere.
#
Timeout 300
#
# KeepAlive: dacă se permit sau nu conexiuni persistente (mai mult decât
# o cerere per conexiune). Setați la „Oprit” pentru a dezactiva.
#
Keep Alive On
#
# MaxKeepAliveRequests: numărul maxim de solicitări de permis
# în timpul unei conexiuni persistente. Setați la 0 pentru a permite o sumă nelimitată.
# Vă recomandăm să lăsați acest număr ridicat, pentru performanță maximă.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Numărul de secunde de așteptat pentru următoarea solicitare de la
# același client pe aceeași conexiune.
#
KeepAliveTimeout 5
# Acestea trebuie setate în /etc/apache2/envvars
Utilizator ${APACHE_RUN_USER}
Grup ${APACHE_RUN_GROUP}
#
# HostnameLookups: Înregistrați numele clienților sau doar adresele IP ale acestora
# de ex., www.apache.org (activat) sau 204.62.129.132 (dezactivat).
# Valoarea implicită este dezactivată pentru că ar fi în general mai bine pentru net dacă oamenii
# a trebuit să activeze cu bună știință această funcție, deoarece activarea acesteia înseamnă că
# fiecare cerere de client va avea ca rezultat cel puțin o cerere de căutare către
# server de nume.
#
Căutarea numelui gazdei este dezactivată
# ErrorLog: Locația fișierului jurnal de erori.
# Dacă nu specificați o directivă ErrorLog într-un <VirtualHost>
# container, mesajele de eroare referitoare la gazda virtuală vor fi
# conectat aici. Dacă *faceți* definiți un fișier jurnal de erori pentru un <VirtualHost>
# container, erorile gazdei respective vor fi înregistrate acolo și nu aici.
#
ErrorLog ${APACHE_LOG_DIR}/error.log
#
# LogLevel: Controlați severitatea mesajelor înregistrate în error_log.
# Valori disponibile: trace8, ..., trace1, debug, info, notice, warn,
# eroare, critică, alertă, emerg.
# Este, de asemenea, posibil să configurați nivelul de jurnal pentru anumite module, de ex.
# "Informații LogLevel ssl:warn"
#
Avertizare LogLevel
# Includeți configurația modulului:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Includeți lista de porturi pe care să ascultați
Includeți ports.conf
# Setează modelul de securitate implicit al serverului Apache2 HTTPD. Da
# nu permite accesul la sistemul de fișiere rădăcină în afara /usr/share și /var/www.
# Primul este folosit de aplicațiile web ambalate în Debian,
# acesta din urmă poate fi folosit pentru directoarele locale servite de serverul web. Dacă
# sistemul dvs. difuzează conținut dintr-un subdirector din /srv pe care trebuie să îl permiteți
# accesați aici sau în orice gazdă virtuală asociată.
<Director />
Opțiuni Indexuri FollowSymLinks Include ExecCGI
AllowOverride All
Solicitați toate acordate
</Director>
<Director /usr/share>
AllowOverride Nici unul
Solicitați toate acordate
</Director>
<Director /var/www/>
Opțiuni Indexuri FollowSymLinks
AllowOverride All
Solicitați toate acordate
</Director>
#<Director /srv/>
# Opțiuni Indexuri FollowSymLinks
# AllowOverride Niciunul
# Solicită toate acordate
#</Directory>
# AccessFileName: Numele fișierului de căutat în fiecare director
# pentru directive de configurare suplimentare. A se vedea, de asemenea, AllowOverride
# directivă.
#
AccessFileName .htaccess
#
# Următoarele linii împiedică fișierele .htaccess și .htpasswd
# vizualizate de clienții web.
#
<FilesMatch „^\.ht”>
Solicitați refuzul tuturor
</FilesMatch>
#
# Următoarele directive definesc unele porecle de format pentru a fi folosite cu
# o directivă CustomLog.
#
# Acestea se abat de la definițiile Common Log Format prin faptul că folosesc %O
# (octeții efectivi trimiși, inclusiv anteturile) în loc de %b (dimensiunea
# fișier solicitat), deoarece acesta din urmă face imposibilă detectarea parțială
# cereri.
#
# Rețineți că utilizarea lui %{X-Forwarded-For}i în loc de %h nu este recomandată.
# Folosiți în schimb mod_remoteip.
#
LogFormat „%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat „%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combinat
LogFormat "%h %l %u %t \"%r\" %>s %O" comun
LogFormat „%{Referer}i -> %U” referitor
LogFormat agent „%{User-agent}i”.
# Includerea directoarelor ignoră fișierele de rezervă ale editorilor și dpkg,
# consultați README.Debian pentru detalii.
# Includeți fragmente generice de declarații
IncludeOptional conf-enabled/*.conf
# Includeți configurațiile gazdei virtuale:
IncludeOptional site-enabled/*.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ale mele .htaccess
fișierul este fișierul standard la crearea unui proiect laravel
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Următoarele module sunt activate pentru instalarea mea apache2:
> apachectl -M
AH00558: apache2: Nu s-a putut determina în mod fiabil numele de domeniu complet calificat al serverului, utilizând 127.0.1.1. Setați directiva „ServerName” la nivel global pentru a suprima acest mesaj
Module încărcate:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (partajat)
alias_module (partajat)
auth_basic_module (partajat)
authn_core_module (partajat)
authn_file_module (partajat)
authz_core_module (partajat)
authz_host_module (partajat)
authz_user_module (partajat)
autoindex_module (partajat)
deflate_module (partajat)
dir_module (partajat)
env_module (partajat)
filter_module (partajat)
mime_module (partajat)
mpm_prefork_module (partajat)
negotiation_module (partajat)
php7_module (partajat)
reqtimeout_module (partajat)
rewrite_module (partajat)
setenvif_module (partajat)
status_module (partajat)
Configurația serverului meu arată astfel:
sudo apache2ctl -S
AH00558: apache2: Nu s-a putut determina în mod fiabil numele de domeniu complet calificat al serverului, utilizând 127.0.1.1. Setați directiva „ServerName” la nivel global pentru a suprima acest mesaj
Configurare VirtualHost:
*:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: „/etc/apache2”
DocumentRoot principal: „/var/www/html”
ErrorLog principal: „/var/log/apache2/error.log”
Mutex implicit: dir="/var/run/apache2/" mecanism=default
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Fișier Pid: „/var/run/apache2/apache2.pid”
Definiți: DUMP_VHOSTS
Definiți: DUMP_RUN_CFG
Utilizator: name="www-data" id=33
Grup: name="www-data" id=33
Când deschid /
url totul merge bine.Cu toate acestea, atunci când deschideți o adresă URL profundă, cum ar fi /company/appl
Primesc următoarea eroare:
Orice sugestii cu ce fac gresit? Am folosit deja AllowOverride All
și permite de la toti
pentru a mea DocumentRoot
.
Apreciez răspunsurile voastre!