¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Configurar el servidor httpd Apache
Esta es un HOWTO general para poner en marcha un servicio básico de httpd.
Se aplica a:
- Slackware 14.1 (y posiblemente versiones anteriores)
- Apache 2 (y posiblemente versiones anteriores)
Basic Setup
Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary:
vi /etc/httpd/httpd.conf # optional, require a proper DNS configuration ServerAdmin you@myawesomeserver.com ServerName www.myawesomeserver.com:80 <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "/srv/httpd/htdocs" <Directory "/srv/httpd/htdocs"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html index.htm index.pl index.php </IfModule> ErrorLog "/var/log/httpd/error_log" CustomLog "/var/log/httpd/access_log" common # Optional but nice. this creates a directory listing if index.html is missing. Include /etc/httpd/extra/httpd-autoindex.conf # Optional Include /etc/httpd/extra/httpd-default.conf
All other default settings should be good.
Make httpd start on boot.
chmod 755 /etc/rc.d/rc.httpd /etc/rc.d/rc.httpd start
HINT: With these settings, your default webpages should be put in /srv/httpd/htdocs. Your default logs should be under /var/log/httpd.
User Directories
This will allow users to have individual web space (/home/user/public_html). These can be accessed from the web by adding “~username” to the URL.
Example: http://www.slackware.com/~pat
Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary:
vi /etc/httpd/httpd.conf LoadModule authz_host_module lib64/httpd/modules/mod_authz_host.so LoadModule authz_user_module lib64/httpd/modules/mod_authz_user.so LoadModule authz_core_module lib64/httpd/modules/mod_authz_core.so LoadModule userdir_module lib64/httpd/modules/mod_userdir.so Include /etc/httpd/extra/httpd-userdir.conf
Edit /etc/httpd/extra/httpd-userdir.conf, change/uncomment the following:
vi /etc/httpd/extra/httpd-userdir.conf <Directory "/home/*/public_html"> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch Require method GET POST OPTIONS </Directory>
Restart Apache
/etc/rc.d/rc.httpd restart
Enable CGI-BIN
This enables CGI script execution on your webserver.
Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary:
vi /etc/httpd/httpd.conf LoadModule proxy_fcgi_module lib64/httpd/modules/mod_proxy_fcgi.so LoadModule proxy_scgi_module lib64/httpd/modules/mod_proxy_scgi.so LoadModule cgid_module lib64/httpd/modules/mod_cgid.so <IfModule alias_module> ScriptAlias /cgi-bin/ "/srv/httpd/cgi-bin/" </IfModule> <Directory "/srv/httpd/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> AddHandler cgi-script .cgi .pl </IfModule>
Restart Apache
/etc/rc.d/rc.httpd restart
HINT: Your cgi-bin directory will be /srv/httpd/cgi-bin/. The scripts can be accessed by adding /cgi-bin/SCRIPTNAME to the website URL.
Example: http://www.slackware.com/cgi-bin/awesomescript.pl
NOTE: This does not apply to PHP scripts, see the below for them.
User CGI-BIN
This will allow users to run CGI scripts out of their /home/user/public_html/cgi-bin directory. Their scripts can be accessed through their user directories.
Example: http://www.slackware.com/~pat/cgi-bin/webform.pl
Setup CGI-BIN as described above.
Edit /etc/httpd/extra/httpd-userdir.conf - Here is what you care about, change/uncomment the following lines as necessary:
vi /etc/httpd/extra/httpd-userdir.conf <Directory "/home/*/public_html/cgi-bin"> Options ExecCGI SetHandler cgi-script </Directory>
Restart Apache
/etc/rc.d/rc.httpd restart
Enable PHP
Virtual Hosts
Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary:
vi /etc/httpd/httpd.conf Include /etc/httpd/extra/httpd-vhosts.conf
Edit /etc/httpd/extra/httpd-vhosts.conf - Here is what you care about, add one of these entries for each virtual host:
vi /etc/httpd/extra/httpd-vhosts.conf <VirtualHost *:80> ServerAdmin webmaster@www.server1.com DocumentRoot "/home/server1/public_html/" ServerName server1.com ServerAlias www.server1.com ErrorLog "/var/log/httpd/server1.com-error.log" CustomLog "/var/log/httpd/server1.com-access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@www.server2.com DocumentRoot "/home/server2/public_html/" ServerName server2.com ServerAlias www.server2.com ErrorLog "/var/log/httpd/server2.com-error.log" CustomLog "/var/log/httpd/server2.com-access.log" common </VirtualHost>
Restart Apache
/etc/rc.d/rc.httpd restart
NOTE: I run my vhosts as users so, the document roots are under /home/user directories. You do not have to do this. You can put the document roots anywhere you like.
Example:
/srv/www/htdocs/server1
/srv/www/htdocs/server2
NOTE 2: These do not affect your default webserver setting in /etc/httpd/httpd.conf. That web server instance will still work and be the default if a plain IP in used as the URL.
Vhosts with individual CGI-BIN directories
If you have virtual hosts that need CGI (or need CGI in their own directory) you can do it like this:
Edit /etc/httpd/extra/httpd-vhosts.conf - Add one of these entries for each vhost that needs unique cgi-bin directories:
vi /etc/httpd/extra/httpd-vhosts.conf <Directory /home/server1/public_html/cgi-bin/> Options ExecCGI SetHandler cgi-script </Directory>
Restart Apache
/etc/rc.d/rc.httpd restart
HINT: I usually put these with their respective <VirtualHost *:80> entries.
NOTE: Change the “/home/server1/public_html/cgi-bin/” to the correct directory location.
HTTPS / SSL
to be added
SNI HTTPS / SSL (Name based https)
to be added
Sources
- Originally written by arfon