PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache unter opensuse 10.3



Corraggiouno
08.12.07, 11:28
habe unter opensuse 10.3 den apache2 installiert. Wenn ich nun eine html-Seite in das Verzeichnis
/srv/www/htdocslege, kann ich diese auch ohne Probleme per localhost/index.html aufrufen.
Im Verzeichnis
/etc/apache2gibts es noch eine Datei, die
httpd.confdie folgendes beinhaltet:


#
# /etc/apache2/httpd.conf
#
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs-2.2/> for detailed information about
# the directives.

# Based upon the default apache configuration file that ships with apache,
# which is based upon the NCSA server configuration files originally by Rob
# McCool. This file was knocked together by Peter Poeml <poeml+apache@suse.de>.

# If possible, avoid changes to this file. It does mainly contain Include
# statements and global settings that can/should be overridden in the
# configuration of your virtual hosts.

# Quickstart guide:
# http://www.opensuse.org/Apache_Howto_Quickstart


# Overview of include files, chronologically:
#
# httpd.conf
# |
# |-- uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under
# |-- server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, ...)
# |-- sysconfig.d/loadmodule.conf . . . . . load these modules
# |-- listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on
# |-- mod_log_config.conf . . . . . . . . . define logging formats
# |-- sysconfig.d/global.conf . . . . . . . server-wide general settings
# |-- mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring)
# |-- mod_info.conf . . . . . . . . . . . . restrict access to mod_info
# |-- mod_usertrack.conf . . . . . . . . . defaults for cookie-based user tracking
# |-- mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings
# |-- mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration
# |-- errors.conf . . . . . . . . . . . . . customize error responses
# |-- ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server _and all_ virtual hosts
# |
# |-- default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests
# | |--mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded)
# | `--conf.d/apache2-manual?conf . . . add the docs ('?' = if installed)
# |
# |-- sysconfig.d/include.conf . . . . . . your include files
# | (for each file to be included here, put its name
# | into APACHE_INCLUDE_* in /etc/sysconfig/apache2)
# |
# `-- vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here
# `-- *.conf . . . . . . . . . . . . . (*.conf is automatically included)
#
#
# Files marked are created from sysconfig upon server restart: instead of
# these files, you edit /etc/sysconfig/apache2



# Filesystem layout:
#
# /etc/apache2/
# |-- charset.conv . . . . . . . . . . . . for mod_auth_ldap
# |-- conf.d/
# | |-- apache2-manual.conf . . . . . . . conf that comes with apache2-doc
# | |-- mod_php4.conf . . . . . . . . . . (example) conf that comes with apache2-mod_php4
# | `-- ... . . . . . . . . . . . . . . . other configuration added by packages
# |-- default-server.conf
# |-- errors.conf
# |-- httpd.conf . . . . . . . . . . . . . top level configuration file
# |-- listen.conf
# |-- magic
# |-- mime.types -> ../mime.types
# |-- mod_autoindex-defaults.conf
# |-- mod_info.conf
# |-- mod_log_config.conf
# |-- mod_mime-defaults.conf
# |-- mod_perl-startup.pl
# |-- mod_status.conf
# |-- mod_userdir.conf
# |-- mod_usertrack.conf
# |-- server-tuning.conf
# |-- ssl-global.conf
# |-- ssl.crl/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Revocation Lists (CRL)
# |-- ssl.crt/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificates
# |-- ssl.csr/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Signing Requests
# |-- ssl.key/ . . . . . . . . . . . . . . PEM-encoded RSA Private Keys
# |-- ssl.prm/ . . . . . . . . . . . . . . public DSA Parameter Files
# |-- sysconfig.d/ . . . . . . . . . . . . files that are created from /etc/sysconfig/apache2
# | |-- global.conf
# | |-- include.conf
# | `-- loadmodule.conf
# |-- uid.conf
# `-- vhosts.d/ . . . . . . . . . . . . . . put your virtual host configuration (*.conf) here
# |-- vhost-ssl.template
# `-- vhost.template



### Global Environment ################################################## ####
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests.

# run under this user/group id
Include /etc/apache2/uid.conf

# - how many server processes to start (server pool regulation)
# - usage of KeepAlive
Include /etc/apache2/server-tuning.conf

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog /var/log/apache2/error_log

# generated from APACHE_MODULES in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/loadmodule.conf

# IP addresses / ports to listen on
Include /etc/apache2/listen.conf

# predefined logging formats
Include /etc/apache2/mod_log_config.conf

# generated from global settings in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/global.conf

# optional mod_status, mod_info
Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf

# optional cookie-based user tracking
# read the documentation before using it!!
Include /etc/apache2/mod_usertrack.conf

# configuration of server-generated directory listings
Include /etc/apache2/mod_autoindex-defaults.conf

# associate MIME types with filename extensions
TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf

# set up (customizable) error responses
Include /etc/apache2/errors.conf

# global (server-wide) SSL configuration, that is not specific to
# any virtual host
Include /etc/apache2/ssl-global.conf

# forbid access to the entire filesystem by default
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>

# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

# List of resources to look for when the client requests a directory
DirectoryIndex index.html index.html.var

### 'Main' server configuration #############################################
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
Include /etc/apache2/default-server.conf


# Another way to include your own files
#
# The file below is generated from /etc/sysconfig/apache2,
# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and
# APACHE_CONF_INCLUDE_DIRS
Include /etc/apache2/sysconfig.d/include.conf


### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
Include /etc/apache2/vhosts.d/*.conf


# Note: instead of adding your own configuration here, consider
# adding it in your own file (/etc/apache2/httpd.conf.local)
# putting its name into APACHE_CONF_INCLUDE_FILES in
# /etc/sysconfig/apache2 -- this will make system updates

Was mir persönlich aufgefallen ist, das die httpd.conf keine Direktiven
(DocumentRoot, ServerRoot, Listen) beinhaltet. Ist es ratsam, den Inhalt in der httpd.conf zu löschen und eigene Direktiven zu definieren? Oder wird dadurch der Apache "lahmgelegt"?

Blade
08.12.07, 11:38
Nein, lass die Einträge so unverändert drin stehen und nutze die Funktion VirtualHost.

Du hast moment Deine Seite im Hauptverzeichnis von apache2 abgelegt. Seit der neuen Version 2.0 habe ich für meine Webseiten die vhosts-Funktion genutzt:

### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
Include /etc/apache2/vhosts.d/*.conf[/QUOTE] Diese ist ja auch schon in der httpd.conf eingetragen.

Die Direktiven wie DocumentRoot, ServerRoot, Listen trägst Du dann im Verzeichnis vhosts.d ein. Lies Dir mal die Doku durch oder lege mal mit Webmin einen vhost an und teste einfach die Einstellungen.

Corraggiouno
08.12.07, 11:47
ich frage deshalb, weil ich das Buch von Markt und Technik habe

Jetzt lerne ich Apache2 und in diesem Buch wird einem vermittelt, in der httpd.conf die Konfiguration von Direktiven vorzunehmen. Ok, das Buch ist von 2005, aber so alt nun auch wieder nicht.
Ich hatte zuvor den Inhalt in der httpd.conf gelöscht und Direktiven definiert. Danach lief der Apache nicht mehr sauber! Ist da was dran?

drcux
08.12.07, 12:09
Schaue dir doch einfach das Verzeichnis /etc/apache2 an, die Konfigdateien wurden gesplittet.

Den Eintrag zu /srv/www/htdocs findest du jetzt zB in der default-server.conf

Corraggiouno
08.12.07, 12:42
ok, das habe ich verstanden mit der vhost.d. Aber warum sollte die httpd.conf nicht verändert werden?

Blade
08.12.07, 12:44
Warum sollte sie gelöscht werden, es besteht kein Anlass den Inhalt zu löschen.

Corraggiouno
08.12.07, 12:48
...........ich frage deshalb, weil ich in der httpd.conf doch die Direktiven definieren kann. Warum sollten in der
vhosts.d die Direktiven definiert werden? Ist das besser?

Roger Wilco
08.12.07, 13:32
Dass die einzelnen VirtualHosts in je einer Datei im Verzeichnis vhosts.d definiert werden, dient zur Strukturierung der Konfiguration. Außerdem kannst du dadurch recht schnell einen vorhandenen VirtualHost wieder löschen oder kopieren.

Du könntest natürlich jegliche Konfigurationsdirektiven in eine einzige Datei packen. Das würde die Übersichtlichkeit allerdings massiv einschränken.

Corraggiouno
09.12.07, 17:21
Du könntest natürlich jegliche Konfigurationsdirektiven in eine einzige Datei packen. Das würde die Übersichtlichkeit allerdings massiv einschränken
Aber wenn ich die Konfigurationsdirektiven in die vhosts.d packe, dann sind die Direktiven aber auch in einer einzigen Datei. Dadurch wird doch ebenso die Übersichtlichkeit eingeschränkt, oder?
Kann mir jemand sagen, warum davon abzuraten ist, die Direktiven in der httpd.conf zu definieren?

BedriddenTech
09.12.07, 17:26
Die SuSE-Jungs haben sich was dabei gedacht, nicht einfach _alles_ in eine Datei reinzustecken. Wenn du deine httpd.conf aufmerksam durchgelesen hast, ist dir sicherlich eingefallen, daß sie lediglich eine ganze Reihe anderer Dateien einliest ("include foo/bar.conf"). In diesen Dateien stehen dann die restlichen Anweisungen.

Das ist für den Parser genauso gut, als würdest du alles in eine Datei stecken. Für dich als Mensch bedeutet es aber mehr Übersichtlichkeit. Bei SuSE hat man den Apache längst vorkonfiguriert; mach dich doch erstmal mit allen Konfigurationsdateien vertraut, bevor du Änderungen vornimmst. :)

Corraggiouno
09.12.07, 17:37
es ist nur, ich habe ja ein Buch "Jetzt lerne ich Apache von Markt und Technik". In diesem Buch wird mit einem Beispiel begonnen, dass die Konfiguration (Definition von Direktiven) in der httpd.conf beschreibt!
In den vorherigen Beiträgen wurde ja dazu geraten, lieber in der vhost.d die Direktiven zu definieren.
Deshalb habe ich nachgefragt, welche Methode denn die bessere ist.

BedriddenTech
09.12.07, 18:25
Die "beste" Methode ist die, bei der du alles verstehst, den Überblick behältst und mit deiner Distribution weiterhin in Freundschaft lebst. ;) Ich rate dir davon ab, SuSEs Layout einfach über den Haufen zu werfen; du könntest später dazu gezwungen sein, viel Zeit bei der (Re-) Organisation zu lassen.

Klammer dich doch nicht so starr an die Dateiorganisation. :) Der Parser des Apache lädt sowieso alles in einem Rutsch. In welche Datei du die Direktiven schreibst, ist letztlich egal. Also wirf einfach mal einen Blick in jede Datei, die der SuSE-Indianer so mitbringt, versuche grob zu verstehen, welchen Teilbereich der Konfiguration sie abdecken, und wende dann dein Buchwissen auf sie an. :)

Wenn dir das aber für den Anfang zu viel ist, sichere einfach das Konfigurationsverzeichnis und fange "von vorne" an. Dann lernst dus bestimmt von der Pike auf, wenn auch mit viel Zeiteinsatz wahrscheinlich.

drcux
09.12.07, 20:10
Sagt mal, hat einer von euch schonmal #4 gelesen? Oder werde ich hier jetzt komplett ignoriert?

BedriddenTech
09.12.07, 20:15
Sagt mal, hat einer von euch schonmal #4 gelesen? Oder werde ich hier jetzt komplett ignoriert?

Ich habe deinen Beitrag gelesen; den Verlauf aber so verstanden, daß Corraggiouno nicht ganz verstand, was du meintest.

Blade
09.12.07, 20:32
Ich denke, Corraggiouno will einfach nur zu eng dem beschriebenen Pfad des Lehrbuchs "Markt + Technik" folgen. Das Buch passt aber eben auf apache2 und openSuSE 10.3 nicht.

BedriddenTech
10.12.07, 09:18
Doch, tut es; der Apache ändert sich ja nicht. Suggeriere bitte nicht, er könne das Buch jetzt wegwerfen. Es ist ja nichts dabei, sich mal die Dateistruktur der SuSE-Konfiguration anzusehen, da lernt man auch etwas dabei.

marce
10.12.07, 09:28
Diese Auftrennung der Apache-Konfig ist ein zweischneidiges Schwert - zum einen erhöht es evtl. die Übersichtlichkeit (wenn man weiss, was wo liegt), zum anderen erschwert es evtl. die Fehlersuche, da die Reihenfolge, in der die Konfigurationsanweisungen eingelesen werden und abgearbeitet werden nicht immer so 100% ersichtlich ist - vor allem, wenn sich Direktiven gegenseitig aufheben oder "widersprechen".

Ich bin in der Zwischenzeit z.B. dazu übergegangen, komplett alles in einem File zu haben und nur die VirtualHosts auszulagern...

Corraggiouno
10.12.07, 09:43
Kann mir dann jemand eine andere Buchempfehlung aussprechen, was opensuse 10.3 in Verbindung mit apache2 näher kommt?

marce
10.12.07, 09:49
Der Kofler ist recht nahe an Suse dran, ansonsten - die Suse-Doku ist da glaube ich auch nicht schlecht...

Wobei es wie gesagt keinen Unterschied macht - wenn Du willst kannst Du ja auch aus den einzelnen Konfigfiles ein komplettes machen und darin arbeiten...

gln
11.12.07, 15:56
Du könntest Dir natürlich die Sourcen von www.apache.org runterladen, sie kompilieren und unter z.B. /usr/local/apache oder /opt/apache installieren.

Das wäre dann zwar nur eine Minimalinstallation, aber sie hat alles, was ein apache braucht :)

Hier könntest Du dann dem Konzept des Buches folgen und auch nicht wirklich was kaputtmachen.

Gerhard

Flex6
11.12.07, 17:24
marce

geb ich dir Recht...ich finde diesen include .... das in jeder config mindestens 5mal ein Kraus , und diese blöde Angewohnheit hat nicht nur Suse,