Niezbędne są minimalne moduły Apache dla statycznej strony internetowej i brak autoryzacji

12

Właśnie zainstalowałem pakiet httpd w RHEL 6.1 (który zapewnia Apache 2.2.15). Domyślny plik httpd.conf zawiera nie mniej niż 50 instancji dyrektywy LoadModule.

Jednak wszystko, co chcę zrobić, to podać statyczną treść, mapę Google lub dwie i trochę CSS.

Próby prób i błędów wraz z apachectl configtestprzekonują mnie, że mogę uciec tylko z włączonymi następującymi modułami (bez żadnych innych zmian w domyślnym pliku konfiguracyjnym):

mod_authz_host
mod_log_config
mod_mime_magic
mod_setenvif
mod_mime
mod_autoindex
mod_negotiation
mod_dir
mod_alias

Czy są jakieś moduły, które powinny zostać uwzględnione na tej liście w celu lepszego / bezpieczniejszego działania serwera? W oficjalnych docs wydają się wskazywać, że nic więcej niż mod_diri mod_mimesą absolutnie niezbędne dla witryny w podstawowe.

Uwaga: nie zwracam się o poradę, którego serwera HTTP użyć do wskazanego zadania. Mam świadomość istnienia „lżejszych” serwerów. To pytanie dotyczy modułów Apache.

chb
źródło

Odpowiedzi:

9

Odpowiedź znajduje się w oficjalnych dokumentach 2.2, w części dotyczącej dostrajania wydajności .

Powiązane pytanie, które się tutaj pojawia, dotyczy oczywiście tego, jakich modułów potrzebujesz, a które nie. Odpowiedź tutaj będzie oczywiście różna dla różnych stron internetowych. Jednak minimalna lista> modułów, które można uzyskać, zwykle obejmuje mod_mime, mod_dir i mod_log_config. mod_log_config jest oczywiście opcjonalny, ponieważ możesz uruchomić stronę internetową bez plików dziennika. Nie jest to jednak zalecane.

chb
źródło
6

Właśnie zauważyłem to pytanie, kiedy konfigurowałem nowy komputer z Apache 2.2. Oto absolutne minimum httpd.conf, które udało mi się wymyślić:

    ServerName 127.0.0.1
    Listen 8080
    LoadModule dir_module modules/mod_dir.so
    LoadModule mime_module modules/mod_mime.so
    DirectoryIndex index.html 
    DocumentRoot "C:/http_root"
    ErrorLog "logs/error.log"
    LogLevel warn                

Oczywiście nie potrzebujesz ErrorLog, ale eksperymentowałem, więc oczywiście potrzebowałem informacji zwrotnej, jeśli mój plik httpd.conf powodował problemy. Należy ServerNameunikać ostrzeżenia podczas uruchamiania o niemożności wiarygodnego ustalenia adresu serwera. Z pewnością mogę potwierdzić, że potrzebujesz dir_modulei mime_moduleże możesz dostarczyć domyślny plik z adresu URL katalogu, a także wyświetlić plik jako HTML zamiast zwykłego tekstu.

Publikuję to, ponieważ uważam, że domyślny plik httpd.conf jest niezwykle skomplikowany i przypomniałem sobie, że kiedy uczyłem się Tomcat, wszystko stało się o wiele wyraźniejsze, gdy odkryłem absolutny minimalny plik konfiguracyjny serwera.

Jeśli chcesz serwer stron php, potrzebujesz tylko 2 następujących linii (dostosowanych do twojego środowiska:

PHPIniDir "C:/php/"
LoadModule php5_module "C:/php/php5apache2_2.dll"
DavidHyogo
źródło
dobrze byłoby to zobaczyć w przypadku Linuksa, w moim przypadku Red Hat. Próbuję powyżej, ale
wymaga
1

Zajęło to rano wypracowanie metodą prób i błędów, ale w Red Hat 6 (ish) to działa, pamiętaj, że musiałem zastąpić istniejący plik .htaccess, którego nie mogę zmienić. To wskaże na offline.html w twoim katalogu głównym

ServerName 127.0.0.1
Listen 80
TypesConfig /etc/mime.types
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so

User apache
Group apache
DocumentRoot "/homedir/"
DirectoryIndex offline.html
ErrorLog "/homedir/error.log"
LogLevel warn  

<Directory />
AllowOverride None
</Directory>

Jeśli nie musisz zastępować pliku htaccess, prawdopodobnie możesz to zrobić (zakładając, że chcesz rejestrować błędy):

ServerName 127.0.0.1
Listen 80
TypesConfig /etc/mime.types
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so

User apache
Group apache
DocumentRoot "/homedir/"
DirectoryIndex offline.html
ErrorLog "/homedir/error.log"
LogLevel warn  
alimack
źródło