teejuht
1. | Sissejuhatus |
2.
|
Serveri installeerimine |
3. | Serveri konfigureerimine |
access.conf | |
httpd.conf | |
srm.conf | |
4.
|
Ülestunnistus |
Eeldame, et teil ei ole probleemi elementaarsete kodulehekülgede koostamisega ja olete oma arvuti nii sättinud, et saate anda käsu
telnet laura.oolberg.co
tulemuslikult. Loomulikult ei pea teie arvuti nimi olema tingimata laura.oolberg.co :)
Kõigepealt ütleme, et apache on üks programm, mis arvutis koguaeg töötab ja ootab, et keegi tema poole pöörduks (nt. Netscape). Selliseid koguaeg töötavaid programme nimetatakse ka daemon'iteks (apache'ile vastab daemon httpd). Niisiis, olgu teil laual PC mis ei pruugi olla Internet'ti ühendatud ja te soovite luua olukorda, kus Netscape Location reale kirjutades
http://laura.oolberg.co/~imre
tuleks ette Imre kodulehekülge. (Ma ei kasvata just palju nartsisse aga mõned õied on :)
(NB! file://home/html/imre/index.html on lihte asi ja see peaks omama teie jaoks tähendust)
1. Kernelit ümber kompilleerima nähtavasti ei pea.
2. Installeerimise käigus valige N - seeriast apache web server
ja ilmselt muudki.
3. vaadake, et on olemas lynx mittegraafiliseks puhuks ja Netscape
X-i jaoks
Peale apahce'i installeerimist luuakse tema jaoks vajalikud read vajalikesse failidesse (enamasti kataloogi /etc/rc.d all). Nendeks on:
/etc/rc.d/rc.M:
#Start Web server
if [-x /etc/rc.d/rc.httpd ]; then
. /etc/rc.d/rc.httpd
fi
ja fail /etc/rc.d/rc.httpd:
/usr/sbin/httpd &
ning, veendumaks, et daemon töötab, võib proovida
bash# ps aux | grep httpd
nobody 93 0.0
1.0 1108 644 ? S 09:32
0:00 /usr/sbin/httpd
nobody 94 0.0
1.0 1116 660 ? S 09:32
0:00 /usr/sbin/httpd
nobody 95 0.0
1.0 1108 644 ? S 09:32
0:00 /usr/sbin/httpd
nobody 96 0.0
0.9 1084 580 ? S 09:32
0:00 /usr/sbin/httpd
nobody 97 0.0
0.9 1084 580 ? S 09:32
0:00 /usr/sbin/httpd
nobody 136 0.0
0.9 1084 584 ? S 09:34
0:00 /usr/sbin/httpd
root 92
0.0 0.9 1084 584 ? S 09:32
0:00 /usr/sbin/httpd
root 157
0.0 0.4 888 280 p0 D 10:07
0:00 grep httpd
bash#
näeme, et neid on isegi mitu (seda arvu saab ka muuta)
või teine asi kontrollimiseks on teha telneti nö. httpd daemoni porti (numbri saab teada failist /etc/services - www 80)
bash# telnet suvi.oolberg.co 80
Trying 192.168.1.3...
Connected to suvi.oolberg.co.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
bash#
Kui siit ^] klaviatuurilt kätte ei saa, siis tuleb minna teisest virtuaalsest terminalist (Alt - F1, F2, ..) või xterm'ist sisse ja protsess ära tappa:
bash# ps aux | grep telnet
root 167
0.1 0.8 1148 516 p0 S 10:14
0:00 telnet suvi 80
bash# kill 167
bash#
No nii, niipalju siis sellest, et veenduda kas server töötab.
Apahe'i häälestamine toimub kolme faili sisu redigeerimisega. Need on tavaliselt
bash# cd /var/lib/httpd/conf
total 45
-rw-r--r-- 1 root root
1707 Jun 22 18:38 access.conf
-rw-r--r-- 1 root root
2141 Mar 31 1997 access.conf-dist
-rw-r--r-- 1 root root
6608 Apr 24 17:57 httpd.conf
-rw-r--r-- 1 root root
6616 Jul 1 1997 httpd.conf-dist
-rw-r--r-- 1 root root
2394 Jan 1 1997 mime.types
-rw-r--r-- 1 root root
6770 Aug 24 07:46 srm.conf
-rw-r--r-- 1 root root
6786 May 7 1997 srm.conf-dist
bash#
(kui neid seal ei ole siis võib neid otsida, nt.
bash# find / -name httpd.conf
või
bash# updatedb
(töötab tükk aega :)
bash# locate httpd
Ning oluline on nende .conf failidega ära määrata järgmised asjad:
1. kus asub kodulehekülgede nö. root (/home/html)
2. millised on vaikimisi browserisse antava faili laiendid (index.html
index.cgi index.pl)
3. kus on /cgi-bin kataloog kus sees olevad failid vaatamate aliendile
käivitatakse
4. milline käivitatavate failide laiend (.cgi .pl .bin)
5. kus asub apache'i server'i root
Toome siin ära kolm faili täis mahus:
(NB, need failid tekivad installeerimise käigus ja on head küll,
sinna tuleb teha ainult paar muutust)
Muide, peale .conf failide muutmist peab serveri restartima:
bash# killall -HUP httpd
peaks seda tegema.
# access.conf: Global access
configuration
# Online docs at http://www.apache.org/
# This file defines server settings
which affect which types of services
# are allowed, and in what
circumstances.
# 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).
# Originally by Rob McCool
# This should be changed to
whatever you set DocumentRoot to.
#<Directory /var/lib/httpd/htdocs>
<Directory /home/html>
# 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 (or
at least, not yet).
Options Indexes FollowSymLinks ExecCGI
# 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
#ise panin alla
#Limit GET POST
# Controls who can get stuff
from this server.
order allow,deny
allow from all
</Directory>
# /usr/local/etc/httpd/cgi-bin
should be changed to whatever your ScriptAliased
# CGI directory exists, if
you have that configured.
<Directory /cgi-bin>
AllowOverride None
Options None
</Directory>
# Allow server status reports,
with the URL of http://servername/status
# Change the ".nowhere.com"
to match your domain to enable.
#<Location /status>
#SetHandler server-status
#order deny,allow
#deny from all
#allow from .nowhere.com
#</Location>
# You may place any other directories
or locations you wish to have
# access information for after
this one.
# This is the main server configuration
file. See URL http://www.apache.org/
# for instructions.
# Do NOT simply read the instructions
in here without understanding
# what they do, if you are
unsure consult the online docs. You have been
# warned.
# Originally by Rob McCool
# ServerType is either inetd, or standalone.
ServerType standalone
# If you are running from inetd, go to "ServerAdmin".
# Port: The port the standalone
listens to. For ports < 1023, you will
# need httpd to be run as root
initially.
Port 80
# HostnameLookups: Log the names
of clients or just their IP numbers
# e.g.
www.apache.org (on) or 204.62.129.132 (off)
# You should probably turn
this off unless you are going to actually
# use the information in your
logs, or with a CGI. Leaving this on
# can slow down access to your
site.
HostnameLookups on
# If you wish httpd to run as
a different user or group, you must run
# httpd as root initially and
it will switch.
# User/Group: The name (or #number)
of the user/group to run httpd 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.
User nobody
Group nogroup
# The following directive disables
keepalives and HTTP header flushes for
# Netscape 2.x and browsers
which spoof it. There are known problems with
# these
BrowserMatch Mozilla/2 nokeepalive
# ServerAdmin: Your address,
where problems with the server should be
# e-mailed.
ServerAdmin [email protected]
# ServerRoot: The directory
the server's config, error, and log files
# are kept in
ServerRoot /var/lib/httpd
# BindAddress: You can support
virtual hosts with this option. This option
# 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 VirtualHost
directive.
#BindAddress *
# ErrorLog: The location of
the error log file. If this does not start
# with /, ServerRoot is prepended
to it.
ErrorLog logs/error_log
# TransferLog: The location
of the transfer log file. If this does not
# start with /, ServerRoot
is prepended to it.
TransferLog logs/access_log
# PidFile: The file the server
should log its pid to
PidFile logs/httpd.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 is created when
you run Apache) then you *must* ensure that
# no two invocations of Apache
share the same scoreboard file.
ScoreBoardFile logs/apache_status
# 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.
#ServerName new.host.name
# 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
# 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 reccomend you leave this
number high, for maximum performance.
MaxKeepAliveRequests 100
# KeepAliveTimeout: Number of seconds to wait for the next request
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. These
values are probably OK for most sites ---
MinSpareServers 5
MaxSpareServers 10
# Number of servers to start --- 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
# Unix 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. On most systems, this
# isn't really needed,
but a few (such as Solaris) do have notable leaks
# in the libraries.
MaxRequestsPerChild 30
# Proxy Server directives. Uncomment
the following line to
# enable the proxy server:
#ProxyRequests On
# To enable the cache as well, edit and uncomment the following lines:
#CacheRoot /var/lib/httpd/proxy
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu
joes.garage_sale.com
# Listen: Allows you to bind
Apache to specific IP addresses and/or
# ports, in addition to the
default. See also the VirtualHost command
#Listen 3000
#Listen 12.34.56.78:80
# VirtualHost: Allows the daemon
to respond to requests for more than one
# server address, if your server
machine is configured to accept IP packets
# for multiple addresses. This
can be accomplished with the ifconfig
# alias flag, or through kernel
patches like VIF.
# Any httpd.conf or srm.conf
directive may go into a VirtualHost command.
# See alto the BindAddress
entry.
#<VirtualHost host.some_domain.com>
#ServerAdmin [email protected]_domain.com
#DocumentRoot /www/docs/host.some_domain.com
#ServerName host.some_domain.com
#ErrorLog logs/host.some_domain.com-error_log
#TransferLog logs/host.some_domain.com-access_log
#</VirtualHost>
# With this document, you define
the name space that users see of your http
# server. This file also
defines server settings which affect how requests are
# serviced, and how results
should be formatted.
# See the tutorials at http://www.apache.org/
for
# more information.
# Originally by Rob McCool;
Adapted for Apache
# 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 /home/html
# UserDir: The name of the directory
which is appended onto a user's home
# directory if a ~user request
is recieved.
UserDir public_html
# 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.cgi index.pl
# FancyIndexing is whether you want fancy directory indexing or standard
FancyIndexing on
# AddIcon tells the server which
icon to show for different files or filename
# extensions
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/back.gif ..
AddIcon /icons/hand.right.gif
README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# DefaultIcon is 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.
# Format: AddDescription "description"
filename
# ReadmeName is the name of
the README file the server will look for by
# default. Format: ReadmeName
name
#
# The server will first look
for name.html, include it if found, and it will
# then look for name and include
it as plaintext if found.
#
# HeaderName is the name of
a file which should be prepended to
# directory indexes.
ReadmeName README
HeaderName HEADER
# IndexIgnore is a set of filenames
which directory indexing should ignore
# Format: IndexIgnore name1
name2...
IndexIgnore */.??* *~ *# */HEADER* */README* */RCS
# AccessFileName: The name of
the file to look for in each directory
# for access control information.
#AccessFileName .htaccess
# DefaultType is the default
MIME type for documents which the server
# cannot find the type of from
filename extensions.
DefaultType text/plain
# AddEncoding allows you to
have certain browsers (Mosaic/X 2.1+) uncompress
# information on the fly. Note:
Not all browsers support this.
AddEncoding x-compress Z
AddEncoding x-gzip gz
# 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 that 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.
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it
# 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.
LanguagePriority en fr de
# 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 fakename
url
# 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.
#Alias /icons/ /var/lib/httpd/icons/
# ScriptAlias: This controls
which directories contain server scripts.
# Format: ScriptAlias fakename
realname
ScriptAlias /cgi-bin/ /home/cgi-bin/
# If you want to use server
side includes, or CGI outside
# ScriptAliased directories,
uncomment the following lines.
# AddType allows you to tweak
mime.types without actually editing it, or to
# make certain files to be
certain types.
# Format: AddType type/subtype
ext1
# 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)
# Format: AddHandler action-name
ext1
# To use CGI scripts:
AddHandler cgi-script .cgi
.pl
# To use server-parsed HTML
files
#AddType text/html .shtml
#AddHandler server-parsed .shtml
# 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
# 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. can redirect to
a script or a document using server-side-includes.
#
# 3) external
redirects
#ErrorDocument 402 http://some.other_server.com/subscription_info.html
Siin on muidugi väga palju konfida, aga toodud kolm faili kui nad muud ei tee, siis:
1. kasutajate kataloogid on /home/html/imre/public_html
2. nö. cgi-sid saavad kõik kasutajad teda ning nende laiendiks
peab olema .cgi või .pl
3. vaatamata laiendile käivitatakse /home/cgi-bin/ kataloogi failid
4. kasutaja public_html kataloogist laetakse browserisse index.html,
index.cgi või index.pl või kui neid pole siis kataloogi sisu
ILmselt pean ma ennast apache'i konfimise alal veel arendama. Aga nagu
EUPS või arvutid.vestlus listid keegi mulle vastas:
"Mis seal ikka nii hilrmsalt konfida, võib päris ära
väsida!".