Pas-a-pas pour héberger un site web ( présentation )

Bonjour à tous

Depuis quelques temps, je me suis mis en tête de créer un site que je désire héberger sur ma machine , et les ennuis ont commencé…Enfin, je dis les “ennuis”, mais, en vérité, j’ai pris la mesure de mon incompétence, et mon orgueil en a pris un sacré coup. Bien fait pour lui !

Mon premier pas a été d’acheter un nom de domaine ( chez Gandi ). Ca, c’est fait. Et me voila parti sur les forums, les docs, les notices diverses, et tout ce qui a pu s’offrir à mes yeux. J’ai essayé des tas de choses mais n’ai pu en venir à bout.

J’ai donc désinstallé toutes mes bêtises, et je désire maintenant repartir à zéro, enfin à 1 car zéro est l’achat du domaine.

En même temps, il est clair que je ne suis pas le seul à rencontrer ce genre de problèmes; c’est la raison pour laquelle je fais cette démarche. Afin que si un jour “[résolu]” vient enrichir le sujet de ce premier message, chacun pourra facilement faire de même sur son système.

bien à vous. phiphi

Bon, les présentation humaines étant faites, voici mon “uname -a”

Linux phiphi 2.6.18-6-686 #1 SMP Thu Oct 9 15:52:18 UTC 2008 i686 GNU/Linux
       [b]je suis chez orange avec une ip dynamique[/b]. 

Nul besoin que le futur serveur soit accessible la nuit, car je dors, et les futurs utilisateurs seront : la famille, le boulot, et les amis. Plus tard, j’envisage d’installer cette machine en permanent, mais je travaille dans la chambre et le ron-ron nous dérange.

Ma première question: par où commencer ? dhcp ? bind ? apache ? … ?
Y a-t’il des vérifications à faire: fichiers, etc…

voici mon /etc/hosts:
127.0.0.1 localhost

                   # The following lines are desirable for IPv6 capable hosts
                    ::1 ip6-localhost ip6-loopback
                    fe00::0 ip6-localnet
                    ff00::0 ip6-mcastprefix
                    ff02::1 ip6-allnodes
                    ff02::2 ip6-allrouters
                    ff02::3 ip6-allhosts
                    127.0.1.1 phiphi

Merci et au plaisir de vous lire.phiphi

Déjà, il faut définir ce dont tu auras besoin : ton site sera constitué de quoi ? pages statiques ou pages qui devront évoluer ? présence ou non d’un forum ? En bref, il faudrait que tu donnes plus de détails, il faut installer ce dont tu as besoin, pas la peine de surcharger ton serveur de services inutiles.

Pour commencer, tu peux regarder un peux ce lien, c’est un post expliquant comment mettre en place un serveur LAMP (Apache + MySql + PHP)

viewtopic.php?f=8&t=3949

le html te permet de faire des pages statiques, le php des pages dynamiques et MySQL est une base de données.

salut

je suis passé par ton stade il y a quelques mois
si cela peut t’aider voici ce que j’ai choisi :
nom de domaine chez gandi
entrées DNS chez gandi, pas de NS chez moi ça me gonfle et j’ai pas de machine à dédier à ça
accès ouebe par free en ip fixe, du coup mes zones DNS sont faciles à gérer
service http par thttpd, pages en chteumeuleu et peut-être un jour en dynamique mais pour l’instant je n’en ai pas besoin
service ftp par vsftpd
un petit service ssh pour la maintenance et surtout parce qu’il n’y a que ça de vrai quand tout déconne
pas de service de messagerie pour le moment car c’est encore un peu compliqué pour moi surtout en terme de sécurité

la machine est dans mon salon, ma femme crie un peu mais quand elle voie mes locaux pro elle relativise

à l’époque j’étais tellement content que j’ai fait des pages sur le sujet sur http://www.deb-indus.org

bonne chance à toi

edit : si Gladia Solaria lui a caché ce fait c’est que ce n’est pas facile à avouer qu’elle couche avec un robot, même si elle dit que sur Aurore cela se fait…ah ces spaciens !

Pour la configuration DNS:

IP dynamique c’est pas l’idéal, ouvre toi un compte chez dyndns.org, puis configure ta livebox pour ce service (de mémoire, j’ai pas de livebox… Configuration avancée --> DDNS ou DynDNS --> entrer les données demandées.)

Si tu peux te payer l’option IP statique d’orange (c’est pas donné je crois) ce sera plus simple.

Ensuite pour configurer ton DNS de gandi “proprement” là je ne peux pas t’aider mais au pire tu peux mettre une redirection web vers ton alias chez dyndns.org. Il y a sûrement mieux…

Pour le reste:

Je reprends ce qui a été dit… Quels sont tes besoins? Apache est le serveur web le plus usuel, tu trouveras facilement de la documentation sur sa configuration. Il y a d’autre serveurs web…

Merci vous tous , herberts, antalgeek ,ziouplaboum , fennec. et teych pour vos réponses, il va falloir que je mette tout ça au clair dans ma tête et sur un papier…je vous tiens au courant.

Bonjour,

un sujet ou je peut aider :mrgreen:
j’ai fait ce genre d’opération sur une openSuse

comme ziouplaboum te la dit avec une ip dynamique c’est pas l’ideal.
pourquoi ? tout simplement parsque c’est pas facil de trouvé quelqu’un qui change d’adresse toute les 48h
solution, celle de ziouplaboum ou no-ip.org

comme on dit un dessin vaut mieux qu’un long discourt …
j’ai pas de dessin, voilà le long discourt (pour no-ip)
http://doc.ubuntu-fr.org/tutoriel/comment_avoir_un_nom_de_domaine_sur_ip_dynamique_avec_no_ip

il faut attendre entre 24 et 48h pour que sa soit disponible

ensuite, rediriger ton port 80 de ton routeur vers ton serveur

installe apache2 et démare le. en fesant
http://127.0.0.1 dans iceweasel ou autre
tu doit voir => it works!

une fois ton ip disponible sous no-ip =>
ton_adresse_no_ip
te donera le même résultat

voilà a ce stade ton serveur est disponible sur le net

il ne te restera plus qu’a

  • sécurisé apache
  • installer un serveur de base de donnée (si ton site en a besoin)
  • sécuriser ta db
  • metre ton site php dans le bon dossier => /var/www

pour les sites en java tu dois installer tomcat ou jboss et rediriger le port 8080 ou 8180
vers ton serveur

dans ton navigateur web préférer
http://127.0.0.1:8080
te donera l’accès au site java (ou 8180)

tu verra c’est beaucoup plus facile que sa en a l’aire

Alors, juste une petite précision. je me suis moi même inscrit chez no-ip cet aprèm. J’ai juste défini un host pour mon ip (qui était fixe), l’host était actif quelques minutes après. Tu as aussi sur leur interface la possibilité d’associer un nom de domaine que tu as déjà à ton ip, mais là c’est peut être plus long. Enfin, le tuto que te donne fennec à l’air bien, je l’ai feuilleté rapidement.

Juste un autre point, pour que ça ne t’effraie pas, selon ton FAI, ou ta config, ou je ne sais quoi, tu ne peux pas forcément voir ton site sur le net depuis ton poste, en particulier chez orange me semble t’il. Tu peux le voir en local (127.0.0.1) mais avec l’adresse de no-ip.

lorsque je tape 127.0.0.0 j’ai 127.0.0.0/ sur la barre et 'unable to connect’
127.0.0.1 j’ai 127.0.0.1/apache2-default/ et … it works (sur fond blanc)
127.0.0.2 j’ai 127.0.0.2/apache2-default/ et …mon site
phiphi j’ai phiphi/apache2-default/ et … it works (sur fond blanc)

ca c’est pour les infos. par contre phiphi:~# file /etc/apache2/httpd.conf
/etc/apache2/httpd.conf: empty !!

mais j’ai un httpd.conf dans /etc/apache/apache-ssl que voila

si quelqu’un pouvait y jeter un coup d’oeil pour verifier si rien ne cloche de ce côté-là

httpd.conf – Apache HTTP server configuration file

Debian maintainers note:

all the SSL configuration directives are located at the end of this file.

Based upon the NCSA server configuration files originally by Rob McCool.

This is the main Apache server configuration file. It contains the

configuration directives that give the server its instructions.

See URL:http://www.apache.org/docs/ for detailed information about

the directives.

Do NOT simply read the instructions in here without understanding

what they do. They’re here only as hints or reminders. If you are unsure

consult the online docs. You have been warned.

After this file is processed, the server will look for and process

/etc/apache-ssl/srm.conf and then /etc/apache-ssl/access.conf

unless you have overridden these with ResourceConfig and/or

AccessConfig directives here.

The configuration directives are grouped into three basic sections:

1. Directives that control the operation of the Apache server process as a

whole (the ‘global environment’).

2. Directives that define the parameters of the ‘main’ or ‘default’ server,

which responds to requests that aren’t handled by a virtual host.

These directives also provide default values for the settings

of all virtual hosts.

3. Settings for virtual hosts, which allow Web requests to be sent to

different IP addresses or hostnames and have them handled by the

same Apache server process.

Configuration and logfile names: If the filenames you specify for many

of the server’s control files begin with “/” (or “drive:/” for Win32), the

server will use that explicit path. If the filenames do not begin

with “/”, the value of ServerRoot is prepended – so “logs/foo.log”

with ServerRoot set to “/usr/local/apache” will be interpreted by the

server as “/usr/local/apache/logs/foo.log”.

Section 1: Global Environment

The directives in this section affect the overall operation of Apache,

such as the number of concurrent requests it can handle or where it

can find its configuration files.

ServerType is either inetd, or standalone. Inetd mode is only supported on

Unix platforms.

SSL Servers MUST be standalone, currently.

ServerType standalone

ServerRoot: The top of the directory tree under which the server’s

configuration, error, and log files are kept, unless they are specified

with an absolute path.

NOTE! If you intend to place this on an NFS (or otherwise network)

mounted filesystem then please read the LockFile documentation

(available at URL:http://www.apache.org/docs/mod/core.html#lockfile);

you will save yourself a lot of trouble.

Do NOT add a slash at the end of the directory path.

ServerRoot /etc/apache-ssl

The LockFile directive sets the path to the lockfile used when Apache

is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or

USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at

its default value. The main reason for changing it is if the logs

directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL

DISK. The PID of the main server process is automatically appended to

the filename.

LockFile /var/lock/apache-ssl.lock

PidFile: The file in which the server should record its process

identification number when it starts.

PidFile /var/run/apache-ssl.pid

ScoreBoardFile: File used to store internal server process information.

Not all architectures require this. But if yours does (you’ll know because

this file will be created when you run Apache) then you must ensure that

no two invocations of Apache share the same scoreboard file.

ScoreBoardFile /var/run/apache-ssl.scoreboard

In the standard configuration, the server will process this file,

srm.conf, and access.conf in that order. The latter two files are

now distributed empty, as it is recommended that all directives

be kept in a single file for simplicity. The commented-out values

below are the built-in defaults. You can have the server ignore

these files altogether by using “/dev/null” (for Unix) or

“nul” (for Win32) for the arguments to the directives.

#ResourceConfig /etc/apache-ssl/srm.conf
#AccessConfig /etc/apache-ssl/access.conf

Timeout: The number of seconds before receives and sends time out.

Timeout 300

KeepAlive: Whether or not to allow persistent connections (more than

one request per connection). Set to “Off” to deactivate.

KeepAlive On

MaxKeepAliveRequests: The maximum number of requests to allow

during a persistent connection. Set to 0 to allow an unlimited amount.

We recommend you leave this number high, for maximum performance.

MaxKeepAliveRequests 100

KeepAliveTimeout: Number of seconds to wait for the next request from the

same client on the same connection.

KeepAliveTimeout 15

Server-pool size regulation. Rather than making you guess how many

server processes you need, Apache dynamically adapts to the load it

sees — that is, it tries to maintain enough server processes to

handle the current load, plus a few spare servers to handle transient

load spikes (e.g., multiple simultaneous requests from a single

Netscape browser).

It does this by periodically checking how many servers are waiting

for a request. If there are fewer than MinSpareServers, it creates

a new spare. If there are more than MaxSpareServers, some of the

spares die off. The default values are probably OK for most sites.

MinSpareServers 5
MaxSpareServers 10

Number of servers to start initially — should be a reasonable ballpark

figure.

StartServers 5

Limit on total number of servers running, i.e., limit on the number

of clients who can simultaneously connect — if this limit is ever

reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.

It is intended mainly as a brake to keep a runaway server from taking

the system with it as it spirals down…

MaxClients 150

MaxRequestsPerChild: the number of requests each child process is

allowed to process before the child dies. The child will exit so

as to avoid problems after prolonged use when Apache (and maybe the

libraries it uses) leak memory or other resources. On most systems, this

isn’t really needed, but a few (such as Solaris) do have notable leaks

in the libraries. For these platforms, set to something like 10000

or so; a setting of 0 means unlimited.

NOTE: This value does not include keepalive requests after the initial

request per connection. For example, if a child process handles

an initial request and 10 subsequent “keptalive” requests, it

would only count as 1 request towards this limit.

MaxRequestsPerChild 100

Listen: Allows you to bind Apache to specific IP addresses and/or

ports, in addition to the default. See also the

directive.

#Listen 3000
#Listen 12.34.56.78:80

The default port for SSL is 443…

Listen 443

BindAddress: You can support virtual hosts with this option. This directive

is used to tell the server which IP address to listen to. It can either

contain “*”, an IP address, or a fully qualified Internet domain name.

See also the and Listen directives.

#BindAddress *

Dynamic Shared Object (DSO) Support

To be able to use the functionality of a module which was built as a DSO you

have to place corresponding `LoadModule’ lines at this location so the

directives contained in it are actually available before they are used.

Please read the file README.DSO in the Apache 1.3 distribution for more

details about the DSO mechanism and run `apache -l’ for the list of already

built-in (statically linked and thus always available) modules in your apache

binary.

Please keep this LoadModule: line here, it is needed for installation.

Include /etc/apache-ssl/modules.conf

ExtendedStatus: controls whether Apache will generate “full” status

information (ExtendedStatus On) or just basic information (ExtendedStatus

Off) when the “server-status” handler is called. The default is Off.

ExtendedStatus On

Section 2: ‘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

definition. These values also provide defaults for

any containers you may define later in the file.

All of these directives may appear inside containers,

in which case these default settings will be overridden for the

virtual host being defined.

If your ServerType directive (set earlier in the ‘Global Environment’

section) is set to “inetd”, the next few directives don’t have any

effect since their settings are defined by the inetd configuration.

Skip ahead to the ServerAdmin directive.

Port: The port to which the standalone server listens. For

ports < 1023, you will need apache to be run as root initially.

The default port for SSL is 443…

Port 443

If you wish apache to run as a different user or group, you must run

apacheas root initially and it will switch.

User/Group: The name (or #number) of the user/group to run apache as.

. On SCO (ODT 3) use “User nouser” and “Group nogroup”.

. On HPUX you may not be able to use shared memory as nobody, and the

suggested workaround is to create a user www and use that user.

NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)

when the value of (unsigned)Group is above 60000;

don’t use Group nobody on these systems!

User www-data
Group www-data

ServerAdmin: Your address, where problems with the server should be

e-mailed. This address appears on some server-generated pages, such

as error documents.

ServerAdmin webmaster@phiphi

ServerName: allows you to set a host name which is sent back to clients for

your server if it’s different than the one the program would get (i.e., use

“www” instead of the host’s real name).

Note: You cannot just invent host names and hope they work. The name you

define here must be a valid DNS name for your host. If you don’t understand

this, ask your network administrator.

If your host doesn’t have a registered DNS name, enter its IP address here.

You will have to access it by its address (e.g., 123.45.67.89/)

anyway, and this will make redirections work in a sensible way.

ServerName phiphi-conques.org

#ServerName new.host.name

DocumentRoot: The directory out of which you will serve your

documents. By default, all requests are taken from this directory, but

symbolic links and aliases may be used to point to other locations.

DocumentRoot /var/www

Each directory to which Apache has access, can be configured with respect

to which services and features are allowed and/or disabled in that

directory (and its subdirectories).

First, we configure the “default” to be a very restrictive set of

permissions.

Options SymLinksIfOwnerMatch AllowOverride None

Note that from this point forward you must specifically allow

particular features to be enabled - so if something’s not working as

you might expect, make sure that you have specifically enabled it

below.

This should be changed to whatever you set DocumentRoot to.

<Directory /var/www/>

This may also be “None”, “All”, or any combination of “Indexes”,

“Includes”, “FollowSymLinks”, “ExecCGI”, or “MultiViews”.

Note that “MultiViews” must be named explicitly — “Options All”

doesn’t give it to you.

Options Indexes Includes FollowSymLinks MultiViews

This controls which options the .htaccess files in directories can

override. Can also be “All”, or any combination of “Options”, “FileInfo”,

“AuthConfig”, and “Limit”

AllowOverride None

Controls who can get stuff from this server.

Order allow,deny
Allow from all

UserDir: The name of the directory which is appended onto a user’s home

directory if a ~user request is received.

UserDir public_html # # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. # AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Order allow,deny Allow from all Order deny,allow Deny from all

DirectoryIndex: Name of the file or files to use as a pre-written HTML

directory index. Separate multiple entries with spaces.

DirectoryIndex index.html index.htm index.shtml index.cgi index.php

AccessFileName: The name of the file to look for in each directory

for access control information.

AccessFileName .htaccess

The following lines prevent .htaccess files from being viewed by

Web clients. Since .htaccess files often contain authorization

information, access is disallowed for security reasons. Comment

these lines out if you want Web visitors to see the contents of

.htaccess files. If you change the AccessFileName directive above,

be sure to make the corresponding changes here.

Also, folks tend to use names such as .htpasswd for password

files, so this will protect those as well.

<Files ~ “^.ht”>
Order allow,deny
Deny from all

CacheNegotiatedDocs: By default, Apache sends “Pragma: no-cache” with each

document that was negotiated on the basis of content. This asks proxy

servers not to cache the document. Uncommenting the following line disables

this behavior, and proxies will be allowed to cache the documents.

#CacheNegotiatedDocs

UseCanonicalName: (new for 1.3) With this setting turned on, whenever

Apache needs to construct a self-referencing URL (a URL that refers back

to the server the response is coming from) it will use ServerName and

Port to form a “canonical” name. With this setting off, Apache will

use the hostname:port that the client supplied, when possible. This

also affects SERVER_NAME and SERVER_PORT in CGI scripts.

UseCanonicalName Off

TypesConfig describes where the mime.types file (or equivalent) is

to be found.

TypesConfig /etc/mime.types

DefaultType is the default MIME type the server will use for a document

if it cannot otherwise determine one, such as from filename extensions.

If your server contains mostly text or HTML documents, “text/plain” is

a good value. If most of your content is binary, such as applications

or images, you may want to use “application/octet-stream” instead to

keep browsers from trying to display binary files as though they are

text.

DefaultType text/plain

The mod_mime_magic module allows the server to use various hints from the

contents of the file itself to determine its type. The MIMEMagicFile

directive tells the module where the hint definitions are located.

mod_mime_magic is not part of the default server (you have to add

it yourself with a LoadModule [see the DSO paragraph in the 'Global

Environment’ section], or recompile the server and include mod_mime_magic

as part of the configuration), so it’s enclosed in an container.

This means that the MIMEMagicFile directive will only be processed if the

module is part of the server.

MIMEMagicFile /usr/share/file/magic.mime

HostnameLookups: Log the names of clients or just their IP addresses

e.g., www.apache.org (on) or 204.62.129.132 (off).

The default is off because it’d be overall better for the net if people

had to knowingly turn this feature on, since enabling it means that

each client request will result in AT LEAST one lookup request to the

nameserver.

HostnameLookups Off

Note that Log files are now rotated by logrotate, not by apache itself.

This means that apache no longer attempts to magically determine

where your log files are kept; you have to fill out stanzas in

/etc/logrotate.d/apache-ssl yourself.

ErrorLog: The location of the error log file.

If you do not specify an ErrorLog directive within a

container, error messages relating to that virtual host will be

logged here. If you do define an error logfile for a

container, that host’s errors will be logged there and not here.

ErrorLog /var/log/apache-ssl/error.log

LogLevel: Control the number of messages logged to the error_log.

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn

The following directives define some format nicknames for use with

a CustomLog directive (see below).

LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i” “%{forensic-id}n” %T %v” full
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i” “%{forensic-id}n” %P %T” debug
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i” “%{forensic-id}n”” combined
LogFormat “%h %l %u %t “%r” %>s %b “%{forensic-id}n”” forensic
LogFormat “%h %l %u %t “%r” %>s %b” common
LogFormat “%{Referer}i -> %U” referer
LogFormat “%{User-agent}i” agent

The location and format of the access logfile (Common Logfile Format).

If you do not define any access logfiles within a

container, they will be logged here. Contrariwise, if you do

define per- access logfiles, transactions will be

logged therein and not in this file.

#CustomLog /var/log/apache-ssl/access.log common

If you would like to have agent and referer logfiles, uncomment the

following directives.

#CustomLog /var/log/apache-ssl/referer.log referer
#CustomLog /var/log/apache-ssl/agent.log agent

If you prefer a single logfile with access, agent, referer and forensic

information (Combined Logfile Format) you can use the following directive.

CustomLog /var/log/apache-ssl/access.log combined

ForensicLog /var/log/apache-ssl/forensic.log

Debugging information. With apache 1.3.31 two new debugging modules have been

introduced to facilitate this task: mod_backtrace and mod_whatkilledus.

They must NOT be used in production environment if not for debugging!

You must know what you are doing before enabling the modules and

uncommenting the following lines.

EnableExceptionHook On # # Backtrace logs are written to error.log but optionally they can be # redirected to a different file. # # BacktraceLog /var/log/apache-ssl/backtrace.log # EnableExceptionHook On # # Whatkilledus logs are written to error.log but optionally they can be # redirected to a different file. # # WhatKilledUsLog /var/log/apache-ssl/whatkilledus.log #

Optionally add a line containing the server version and virtual host

name to server-generated pages (error documents, FTP directory listings,

mod_status and mod_info output etc., but not CGI generated documents).

Set to “EMail” to also include a mailto: link to the ServerAdmin.

Set to one of: On | Off | EMail

ServerSignature On

This directive controls whether Server response header field which is

sent back to clients includes a description of the generic OS-type of

the server as well as information about compiled-in modules.

Set to one of: Prod[uctOnly] | Min[imal] | OS | Full

If the directive is not specified the default is set to Full.

#ServerTokens Full

Aliases: Add here as many aliases as you need (with no limit). The format is

Alias fakename realname

Note that if you include a trailing / on fakename then the server will

require it to be present in the URL. So “/icons” isn’t aliased in this

example, only “/icons/”…

Alias /icons/ /usr/share/apache/icons/
<Directory /usr/share/apache/icons>
     Options Indexes MultiViews
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>

Alias /images/ /usr/share/images/

<Directory /usr/share/images>
     Options MultiViews
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>

ScriptAlias: This controls which directories contain server scripts.

ScriptAliases are essentially the same as Aliases, except that

documents in the realname directory are treated as applications and

run by the server when requested rather than as documents sent to the client.

The same rules about trailing “/” apply to ScriptAlias directives as to

Alias.

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

“/usr/lib/cgi-bin” could be changed to whatever your ScriptAliased

CGI directory exists, if you have that configured.

<Directory /usr/lib/cgi-bin/>
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

Redirect allows you to tell clients about documents which used to exist in

your server’s namespace, but do not anymore. This allows you to tell the

clients where to look for the relocated document.

Format: Redirect old-URI new-URL

Directives controlling the display of server-generated directory listings.

#
# FancyIndexing: whether you want fancy directory indexing or standard
#
IndexOptions FancyIndexing NameWidth=*

#
# AddIcon* directives tell the server which icon to show for different
# files or filename extensions.  These are only displayed for
# FancyIndexed directories.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/deb.gif .deb

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

#
# DefaultIcon: which icon to show for files which do not have an icon
# explicitly set.
#
DefaultIcon /icons/unknown.gif

#
# AddDescription: allows you to place a short description after a file in
# server-generated indexes.  These are only displayed for FancyIndexed
# directories.
# Format: AddDescription "description" filename
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz

#
# ReadmeName: the name of the README file the server will look for by
# default, and append to directory listings.
#
# HeaderName: the name of a file which should be prepended to
# directory indexes. 
#
# The module recognize only 2 kind of mime-types, text/html and
# text/*, but the only method it has to identify them is via
# the filename extension. The default is to include and display
# html files.
#
ReadmeName README.html
HeaderName HEADER.html

# Otherwise you can comment the 2 lines above and uncomment
# the 2 below in order to display plain text files.
#
# ReadmeName README.txt
# HeaderName HEADER.txt

#
# IndexIgnore: a set of filenames which directory indexing should ignore
# and not include in the listing.  Shell-style wildcarding is permitted.
#
IndexIgnore .??* *~ *# HEADER.html HEADER.txt RCS CVS *,v *,t

# Uncomment the following IndexIgnore line to add README.* to the file
# list that will not be displayed by mod_autoindex.
# It is not enabled by default on Debian system to permit users to properly
# browse Debian documentation (/doc/)
#
#IndexIgnore README.*

Document types.

# AddEncoding allows you to have certain browsers (Mosaic/X 2.1+)
# uncompress information on the fly. Note: Not all browsers support
# this.  Despite the name similarity, the following Add* directives
# have nothing to do with the FancyIndexing customization
# directives above.

AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

#
# AddLanguage: allows you to specify the language of a document. You can
# then use content negotiation to give a browser a file in a language
# it can understand.
#
# Note 1: The suffix does not have to be the same as the language
# keyword --- those with documents in Polish (whose net-standard
# language code is pl) may wish to use "AddLanguage pl .po" to
# avoid the ambiguity with the common suffix for perl scripts.
#
# Note 2: The example entries below illustrate that in quite
# some cases the two character 'Language' abbriviation is not
# identical to the two character 'Country' code for its country,
# E.g. 'Danmark/dk' versus 'Danish/da'.
#
# Note 3: There is 'work in progress' to fix this and get
# the reference data for rfc3066 cleaned up.
#
# Danish (da) - Dutch (nl) - English (en) - Estonian (ee)
# French (fr) - German (de) - Greek-Modern (el)
# Italian (it) - Portugese (pt) - Luxembourgeois (lb)
# Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cs)
# Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage lb .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cs .cz

# LanguagePriority: allows you to give precedence to some languages
# in case of a tie during content negotiation.
#
# Just list the languages in decreasing order of preference. We have
# more or less alphabetized them here. You probably want to change
# this.
#
<IfModule mod_negotiation.c>
    LanguagePriority en da nl et fr de el it ja pl pt pt-br lb ca es sv
</IfModule>

#
# AddType allows you to tweak mime.types without actually editing
# it, or to make certain files to be certain types.
#
# For example, the PHP 3.x module (not part of the Apache
# distribution - see [php.net](http://www.php.net)) will typically use:
#
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
#
# And for PHP 4.x, use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz
AddType image/bmp .bmp

# hdml
AddType text/x-hdml .hdml

#
# AddHandler allows you to map certain file extensions to "handlers",
# actions unrelated to filetype. These can be either built into
# the server or added with the Action command (see below).
#
# If you want to use server side includes, or CGI outside
# ScriptAliased directories, uncomment the following lines.
#
# To use CGI scripts:
#
#AddHandler cgi-script .cgi .sh .pl

#
# To use server-parsed HTML files mod_include has to be enabled.
#
<IfModule mod_include.c>
 AddType text/html .shtml
 AddHandler server-parsed .shtml
</IfModule>

#
# Uncomment the following line to enable Apache's send-asis HTTP
# file feature.
#
#AddHandler send-as-is asis

#
# If you wish to use server-parsed imagemap files, use
#
#AddHandler imap-file map

#
# To enable type maps, you might want to use
#
#AddHandler type-map var
# End of document types.

Default charset to iso-8859-1 (apache.org/info/css-security/).

AddDefaultCharset on

Action: lets you define media types that will execute a script whenever

a matching file is called. This eliminates the need for repeated URL

pathnames for oft-used CGI file processors.

Format: Action media/type /cgi-script/location

Format: Action handler-name /cgi-script/location

MetaDir: specifies the name of the directory in which Apache can find

meta information files. These files contain additional HTTP headers

to include when sending the document

#MetaDir .web

MetaSuffix: specifies the file name suffix for the file containing the

meta information.

#MetaSuffix .meta

Customizable error response (Apache style)

these come in three flavors

1) plain text

#ErrorDocument 500 "The server made a boo boo.

n.b. the (") marks it as text, it does not get output

2) local redirects

#ErrorDocument 404 /missing.html

to redirect to local URL /missing.html

#ErrorDocument 404 /cgi-bin/missing_handler.pl

N.B.: You can redirect to a script or a document using server-side-includes.

3) external redirects

#ErrorDocument 402 some.other_server.com/subscription_info.html

N.B.: Many of the environment variables associated with the original

request will not be available to such a script.

# # The following directives modify normal HTTP response behavior. # The first directive disables keepalive for Netscape 2.x and browsers that # spoof it. There are known problems with these browser implementations. # The second directive is for Microsoft Internet Explorer 4.0b2 # which has a broken HTTP/1.1 implementation and does not properly # support keepalive when it is used on 301 or 302 (redirect) responses. # BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#
# The following directive disables HTTP/1.1 responses to browsers which
# are in violation of the HTTP/1.0 spec by not being able to grok a
# basic 1.1 response.
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

If the perl module is installed, this will be enabled.

Alias /perl/ /var/www/perl/ SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI

Allow http put (such as Netscape Gold’s publish feature)

Use htpasswd to generate /etc/apache-ssl/passwd.

You must unremark these two lines at the top of this file as well:

#LoadModule put_module modules/mod_put.so
#AddModule mod_put.c

#

Alias /upload /tmp

#
#<Location /upload>

EnablePut On

AuthType Basic

AuthName Temporary

AuthUserFile /etc/apache-ssl/passwd

EnableDelete Off

umask 007

require valid-user

#

Allow server status reports, with the URL of servername/server-status

Change the “.your_domain.com” to match your domain to enable.

#<Location /server-status>

SetHandler server-status

Order deny,allow

Deny from all

Allow from .your_domain.com

#

Allow remote server configuration reports, with the URL of

servername/server-info (requires that mod_info.c be loaded).

Change the “.your_domain.com” to match your domain to enable.

#<Location /server-info>

SetHandler server-info

Order deny,allow

Deny from all

Allow from .your_domain.com

#

Allow access to local system documentation from localhost.

(Debian Policy assumes /usr/share/doc is “/doc/”, at least from the localhost.)

Alias /doc/ /usr/share/doc/

<Location /doc>
order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0
Options Indexes FollowSymLinks MultiViews

There have been reports of people trying to abuse an old bug from pre-1.1

days. This bug involved a CGI script distributed as a part of Apache.

By uncommenting these lines you can redirect these attacks to a logging

script on phf.apache.org. Or, you can record them yourself, using the script

support/phf_abuse_log.cgi.

#<Location /cgi-bin/phf*>

Deny from all

ErrorDocument 403 phf.apache.org/phf_abuse_log.cgi

#

# # Proxy Server directives. Uncomment the following lines to # enable the proxy server: # #ProxyRequests On
#<Directory proxy:*>
#    Order deny,allow
#    Deny from all
#    Allow from .your_domain.com
#</Directory>


#
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
# Set to one of: Off | On | Full | Block
#
#ProxyVia On

#
# To enable the cache as well, edit and uncomment the following lines:
# (no cacheing without CacheRoot)
#
#CacheRoot "/var/cache/apache-ssl"
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com
# End of proxy directives.

Section 3: Virtual Hosts

VirtualHost: If you want to maintain multiple domains/hostnames on your

machine you can setup VirtualHost containers for them.

Please see the documentation at URL:http://www.apache.org/docs/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.

If you want to use name-based virtual hosts you need to define at

least one IP address (and port number) for them.

#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78

VirtualHost example:

Almost any Apache directive may go into a VirtualHost container.

#

ServerAdmin webmaster@host.some_domain.com

DocumentRoot /www/docs/host.some_domain.com

ServerName host.some_domain.com

ErrorLog logs/host.some_domain.com-error.log

CustomLog logs/host.some_domain.com-access.log common

#

#<VirtualHost default:*>
#

----------------------------SSL----------------------------------

This is an example configuration file for Apache-SSL.

Copyright © 1995,6,7,8,9,2000,2001 Ben Laurie

Adapted to the Debian configuration by the Debian Apache Maintainers Team.

Note that all SSL options can apply to virtual hosts.

Disable SSL version 2 (you should always do this)

Debian maintainers note: this options has been disabled since it seems

to give some problems in certain setups but

should be used whenever possible.

#SSLNoV2

Disable CA list sending for testing…

#SSLNoCAList

Load some randomness.

This is loaded at startup, reading at most 1024 bytes from /dev/urandom.

You may prefer to use /dev/random, but be aware that some OSes (e.g. Linux)

insist on returning all 1024 bytes, thus blocking the server until the

randomness is available.

The randomness will be shared between all server instances. You can have

as many of these as you want.

SSLRandomFile file /dev/urandom 1024

And this one will be loaded before SSL is negotiated for each connection.

Again, you can have as many of these as you want, and they will all be used

at each connection.

#SSLRandomFilePerConnection egd /path/to/egd/socket 1024
SSLRandomFilePerConnection file /dev/urandom 1024

Disable SSL. Useful in combination with virtual hosts. Note that SSLEnable is

now also supported.

#SSLDisable
SSLEnable

Set the path for the global cache server executable.

If this facility gives you trouble, you can disable it by setting

CACHE_SESSIONS to FALSE in apache_ssl.c

#SSLCacheServerPath …/src/modules/ssl/splashcache 3333@scuzzy ssl
SSLCacheServerPath /usr/lib/apache-ssl/gcache

Set the global cache server port number, or path. If it is a path, a Unix

domain socket is used. If a number, a TCP socket.

#SSLCacheServerPort 1234
SSLCacheServerPort /var/run/gcache_port

Directory for the cache server to run in (in case of crashes). Optional.

#SSLCacheServerRunDir /tmp

Set the session cache timeout, in seconds (set to 15 for testing, use a

higher value in real life)

SSLSessionCacheTimeout 15

Set the CA certificate verification path (must be PEM encoded).

(in addition to getenv(“SSL_CERT_DIR”), I think).

#SSLCACertificatePath /home/ben/work/apache-ssl/apache_1.3.4-ssl/SSLconf/conf
#SSLCACertificatePath /etc/apache-ssl

Set the CA certificate verification file (must be PEM encoded).

(in addition to getenv(“SSL_CERT_FILE”), I think).

#SSLCACertificateFile /some/where/somefile
#SSLCACertificateFile /home/ben/work/apache-ssl/apache_1.3.4-ssl/SSLconf/conf/httpsd.pem

Point SSLCertificateFile at a PEM encoded certificate.

If the certificate is encrypted, then you will be prompted for a pass phrase.

A test certificate can be generated with “make certificate”.

#SSLCertificateFile /home/ben/work/apache-ssl/apache_1.3.4-ssl/SSLconf/conf/httpsd.pem
SSLCertificateFile /etc/apache-ssl/apache.pem

If the key is not combined with the certificate, use this directive to

point at the key file. If this starts with a ‘/’ it specifies an absolute

path, otherwise it is relative to the default certificate area. That is, it

means “/private/”.

#SSLCertificateKeyFile /some/place/with/your.key

Set SSLVerifyClient to:

0 if no certicate is required

1 if the client may present a valid certificate

2 if the client must present a valid certificate

3 if the client may present a valid certificate but it is not required to

have a valid CA

SSLVerifyClient 0

How deeply to verify before deciding they don’t have a valid certificate

SSLVerifyDepth 10

CRL Handling

N.B. Cached sessions are not rechecked against the CRL, so make sure

SSLSessionCacheTimeout is set low enough.

Add this directive to check the client cert against its CRL

OpenSSL will look for the CRL in the CA path (i.e. the path set with

SSLCACertificatePath), and will expect to find a symlink from .r

to the CRL in PEM format. It is up to you to ensure an in-date CRL is

available at that location. This hash can be generated like so:

hash=openssl crl -hash -in $file -noout

ln -sf $file $hash.r0

SSLUseCRL

Check all certificates in the client certificate chain instead of just

the final one.

SSLCRLCheckAll

Allow revoked certificates through, but set an environment variable (to YES)

SSLOnRevocationSetEnv SSL_REVOKED

Allow a certificate with an expired CRL through, but set an environment

variable (to YES). Note that with this unset, the error returned is

certificate expired (TLS doesn’t have an error for CRL expired! Doh!)

SSLOnCRLExpirySetEnv SSL_CRL_EXPIRED

Allow a certificate with no CRL through, but set an environment variable

(to YES)

SSLOnNoCRLSetEnv SSL_NO_CRL

If you have enabled client cert exports (in buff.h) you need to use

SSLExportClientCertificates to enable them. Note that the server still has to

mess about with certs even if this is disabled (and exports are enabled)

because the cert chain is received before we can know whether it is needed or

not.

Export client certificates and the certificate chain behind them to CGIs.

The certificates are base 64 encoded in the environment variables

SSL_CLIENT_CERT and SSL_CLIENT_CERT_CHAIN_n, where n runs from 1 upwards.

#<Location /cgi-bin/>

SSLExportClientCertificates

#

Translate the client X509 into a Basic authorisation. This means that the

standard Auth/DBMAuth methods can be used for access control. The user name

is the “one line” version of the client’s X509 certificate. Note that no

password is obtained from the user. Every entry in the user file needs this

password: xxj31ZMTZzkVA. See the code for further explanation.

SSLFakeBasicAuth

List the ciphers that the client is permitted to negotiate. See the source

for a definitive list. For example:

#SSLRequiredCiphers RC4-MD5:RC4-SHA:IDEA-CBC-MD5:DES-CBC3-SHA

These two can be used per-directory to require or ban ciphers. Note that (at

least in the current version) Apache-SSL will not attempt to renegotiate if a

cipher is banned (or not required).

You should probably at least ban the null encryption ciphers.

#SSLRequireCipher
#SSLBanCipher NULL-MD5:NULL-SHA

A home for miscellaneous rubbish generated by SSL. Much of it is duplicated

in the error log file. Put this somewhere where it cannot be used for symlink

attacks on a real server (i.e. somewhere where only root can write).

Don’t use this anymore! Now everything is logged in the error log.

#SSLLogFile /var/log/apache-ssl/ssl.log

Custom logging

CustomLog /var/log/apache-ssl/ssl.log “%t %{version}c %{cipher}c %{clientcert}c”

Watch what’s going on

#TransferLog /var/log/apache-ssl/transfer.log

Debian maintainers note:

these are just examples on how some SSL directives might be used.

(adapted from the original httpd.conf file provided by Ben Laurie)

#<Directory /<path_to_some_dirs>>

This directive forbids access except when SSL is in use. Very handy for

defending against configuration errors that expose stuff that should be

protected

SSLRequireSSL

Conversely, you can forbid SSL with…

SSLDenySSL

#

#

This directive disable SSL for a specific virtualhost

#SSLDisable

Conversely, you can enable it with…

#SSLEnable
#

If you want, you can disable SSL globally, and enable it in a virtual host…

#SSLDisable
#

SSLEnable

#

Automatically added by the post-installation script

as part of the transition to a config directory layout

similar to apache2, and that will help users to migrate

from apache to apache2 or revert back easily

Include /etc/apache-ssl/conf.d

ah la la !

pour avoir installé apache+php d’un coté et des serveurs plus légers comme thttp ou lighthttp je te conseillerais d’aller voir du côté des légers avant de t’attaquer au lourd
à moins que tu n’ai déjà bien spécifié ton besoin et que ton besoin d’apache soit impératif

après si c’est juste pour le fun d’apprendre apache et ses méandres : vas-y fonce :wink:

Pour apache2, le fichier de configuration principal est /etc/apache2/apache2.conf

Ensuite, pour chaque site hébergé sur l’apache2, on crée en général un fichier de configuration dans /etc/apache2/sites-avalaible/ puis pour activer/désactiver un site on peut utiliser a2ensite/a2dissite ou bien créer/enlever des liens symboliques dans /etc/apache2/sites-enabled/

quelqu’un pourrait’il me montrer ses fichiers ‘sites-availables’ et ‘sites-enabled’ afin que je prenne exemple ?
merci d’avance

sites-available et sites-enabled sont des dossiers, tu crée un fichier de conf par site internet. Je n’en ai qu’un donc un seul fichier dans sites-available. Dans sites-enabled, c’est juste un lien symbolique vers le fichier de sites-available (/etc/apache2/sites-enabled/000-default)

/etc/apache2/sites-available/default

[code]<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/galerie
<Directory />
	Order Deny,Allow
	Deny from all
	Options Indexes
	AllowOverride AuthConfig
	Options -Includes
	Options -ExecCGI
</Directory>

<Directory /var/www/galerie>
	Options MultiViews
	AllowOverride AuthConfig
	Order allow,deny
	Allow from all
	Options Indexes
	Options -Includes
	Options -ExecCGI
</Directory>

<Directory /var/www/galerie/reserved>
	Options FollowSymLinks MultiViews
	AllowOverride AuthConfig
	Order allow,deny
	Allow from all
	Options -Indexes
	Options -Includes
	Options -ExecCGI
</Directory>

<Directory /var/www/galerie/cebtp>
	Options FollowSymLinks MultiViews
	AllowOverride AuthConfig
	Order allow,deny
	Allow from all
	Options -Indexes
	Options -Includes
	Options -ExecCGI
</Directory>

AccessFileName .htaccess
<Files ~ "^\.ht">
	Order allow,deny
	Deny from all
	Satisfy All
</Files>



#ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#<Directory "/usr/lib/cgi-bin">
#	AllowOverride None
#	Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
#	Order allow,deny
#	Allow from all
#</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature Off
[/code]

Une autre solution: à la fin du /etc/apache2/sites-available/default généré à l’install d’apache, j’ai ajouté les alias des sites que je veux faire tourner en local. Tu remarqueras que je ne les ai pas installés dans le répertoire par défaut, mais dans un dossier de mon répertoire “user”, par commodité.

[quote]<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/
<Directory />
	Options FollowSymLinks
	AllowOverride None
</Directory>
<Directory /var/www/>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride None
	Order allow,deny
	allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
	AllowOverride None
	Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
	Order allow,deny
	Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

[b]Alias /blog/ “/home/eric/www/dotclear/”
<Directory “/home/eric/www/dotclear/”>
Options Indexes MultiViews FollowSymLinks

Alias /site/ “/home/eric/www/joomla/”
<Directory “/home/eric/www/joomla/”>
Options Indexes MultiViews FollowSymLinks
[/b]

[/quote]

Il me suffit alors d’appeler dans un navigateur localhost/site/

ah oui, au passage, petit détail, j’ai monté un répertoire de données persos sur /var/www/galerie, comme ça je peux manipuler mes fichiers facilement, sans avoir besoin d’être en root, et en cas de réinstall mon site ne bouge pas, j’ai juste à remonter le dossier (et refaire les configs quand même :wink:) et c’est bon.

J’utilise cette ligne dans le fstab :/mnt/data/galerie /var/www/galerie none bind