102 lines
4.8 KiB
Plaintext
102 lines
4.8 KiB
Plaintext
|
|
||
|
QUICKSTART -- How to get your server up and running as fast as possible
|
||
|
|
||
|
o General machine setup:
|
||
|
- configure your network
|
||
|
- make sure that all components are current, by running YaST Online Update
|
||
|
regularly
|
||
|
|
||
|
o synchronise time (parts of the HTTP protocol depend on correct time):
|
||
|
- configure machine as NTP client, either with the YaST configuration module or
|
||
|
by editing /etc/ntp.conf (just put a server name into it) and starting
|
||
|
"rcxntpd start", and running "chkconfig -a xntpd"
|
||
|
|
||
|
o if you run a firewall, make sure to allow access through port 80 if the server
|
||
|
should be reachable from other machines.
|
||
|
|
||
|
o start the server, and configure it to automatically start at boot time:
|
||
|
- rcapache2 start
|
||
|
- chkconfig -a apache2
|
||
|
|
||
|
o add web pages:
|
||
|
- the DocumentRoot is at /srv/www/htdocs
|
||
|
- if you add documents somewhere else and link to them with e.g.
|
||
|
Alias someplace "/path/to/someplace"
|
||
|
make sure to also use <Directory /path/to/someplace> ... </Directory>
|
||
|
to define access permissions and options for that directory, since
|
||
|
(starting with SuSE Linux 9.0) access to the entire filesystem is blocked
|
||
|
by default. See http://httpd.apache.org/docs-2.2/mod/core.html#directory
|
||
|
|
||
|
o go through /etc/sysconfig/apache2:
|
||
|
- check loaded modules (APACHE_MODULES="...").
|
||
|
- add "php4", "perl", or other needed modules to APACHE_MODULES al gusto.
|
||
|
- modules can be enabled/disabled in a simple (Debian-compatible ;) way from
|
||
|
the command line like this:
|
||
|
a2enmod php5
|
||
|
a2dismod php5
|
||
|
- there is also a command a2enflag, to change APACHE_SERVER_FLAGS
|
||
|
- restart the server ('rcapache2 restart')
|
||
|
|
||
|
o where to add your own configuration:
|
||
|
- add e.g. /etc/apache2/httpd.conf.local and change APACHE_CONF_INCLUDE_FILES
|
||
|
in /etc/sysconfig/apache2, e.g. APACHE_CONF_INCLUDE_FILES="httpd.conf.local"
|
||
|
- to understand the hierarchy and layout of all include files, read the
|
||
|
comments at the top of httpd.conf
|
||
|
- if you strongly prefer the old, single, 40K, monolithic configuration file,
|
||
|
it's there! Just use it:
|
||
|
mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf.dist
|
||
|
cp /usr/share/doc/packages/apache2/httpd-std.conf-prefork /etc/apache2/httpd.conf
|
||
|
rcapache2 restart
|
||
|
|
||
|
o add virtual hosts:
|
||
|
- edit /etc/apache2/listen.conf. It is a suitable place to add
|
||
|
NameVirtualHost directives.
|
||
|
- copy the commented template /etc/apache2/vhosts.d/vhost.template to
|
||
|
/etc/apache2/vhosts.d/yourhost.conf
|
||
|
(note, it must end in .conf to be automatically read)
|
||
|
- edit /etc/apache2/vhosts.d/yourhost.conf to suit your needs
|
||
|
- alternative approach: simply append the NameVirtualHost directive and the
|
||
|
<VirtualHost> container to your local configuration (httpd.conf.local --
|
||
|
see above)
|
||
|
- if in doubt about how apache interprets your vhost setup, always use
|
||
|
httpd2 -S. If SSL is involved you will need to run httpd2 -S -DSSL instead --
|
||
|
likewise for other needed defines.
|
||
|
- the "default" server, which responds to requests not handled by other
|
||
|
vhosts, is always the one which is defined first. If you want a dedicated
|
||
|
"default" server for such requests, you need to put it first in the configuration.
|
||
|
If the configuration is in multiple files, like /etc/apache2/vhosts.d/*.conf, then
|
||
|
simply name the file _default.conf, or e.g. _192.168.0.1.conf if you do it per IP
|
||
|
address.
|
||
|
|
||
|
o TROUBLESHOOTING -- if anything does not work:
|
||
|
- fire up "tail -F /var/log/apache2/*_log &" in a root shell
|
||
|
- reproduce what is not working (starting apache, doing client requests,
|
||
|
or whatever), and see how it is reflected in the logs
|
||
|
- read http://www.suse.com/~poeml/apache-faq.html
|
||
|
- make use of http://bugzilla.novell.com if you suspect a bug
|
||
|
|
||
|
o for all configuration questions, consult
|
||
|
http://localhost/manual (if the apache2-doc package is installed), or
|
||
|
http://httpd.apache.org/docs-2.2/ (the online version)
|
||
|
- read the documentation under /usr/share/doc/packages/apache2/ (where you
|
||
|
will also find example configuration files)
|
||
|
|
||
|
o building 3rd party modules:
|
||
|
- install apache2-devel (and of course gcc as well as other needed
|
||
|
development tools)
|
||
|
- use
|
||
|
apxs2 -- to build a module for all MPM types, or
|
||
|
apxs2-prefork -- to build a module for the Prefork MPM, or
|
||
|
apxs2-worker -- to build a module for the Worker MPM
|
||
|
(see man 8 apxs2). In most cases you can just use "apxs2", the most
|
||
|
notably exception being mod_php4. Using apxs2-prefork then will prevent
|
||
|
you from accidentally trying to use the module with the Worker MPM.
|
||
|
Typical example: apxs2 -c -i -a mod_foo.c
|
||
|
-c compiles
|
||
|
-i installs the module in the right place
|
||
|
-a activates the module by running 'a2enmod mod_foo'
|
||
|
- if the module's build system does not allow to use apxs, use at least
|
||
|
CFLAGS=$(apxs2 -q CFLAGS)
|
||
|
to determine the right compiler flags for your apache installation.
|
||
|
|