Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
howtos:network_services:setup_apache [2015/03/29 09:55 (UTC)] – That's enough for tonight... will finish later arfon | howtos:network_services:setup_apache [2018/12/23 21:51 (UTC)] – [VHOSTS WITH INDIVIDUAL CGI-BIN DIRECTORIES] Formatting ellendhel |
---|
This is a general how to to get a basic httpd service up and running. | This is a general how to to get a basic httpd service up and running. |
| |
Applies to: \\ | Applies to: |
Slackware 14.1 (and possibly previous versions) \\ | * Slackware 14.1 (and possibly previous versions) |
Apache 2 (and possibly previous versions) \\ | * Apache 2 (and possibly previous versions) |
| |
| ====== Basic Setup ====== |
| |
| Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: |
| |
====== BASIC SETUP ====== | |
1) Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: | |
<code>vi /etc/httpd/httpd.conf | <code>vi /etc/httpd/httpd.conf |
| |
ServerAdmin you@myawesomeserver.com <---OPTIONAL | # optional, require a proper DNS configuration |
| ServerAdmin you@myawesomeserver.com |
ServerName www.myawesomeserver.com:80 | ServerName www.myawesomeserver.com:80 |
| |
CustomLog "/var/log/httpd/access_log" common | CustomLog "/var/log/httpd/access_log" common |
| |
Include /etc/httpd/extra/httpd-autoindex.conf <---OPTIONAL but nice. this creates a directory listing if index.html is missing. | # Optional but nice. this creates a directory listing if index.html is missing. |
Include /etc/httpd/extra/httpd-default.conf <---OPTIONAL | Include /etc/httpd/extra/httpd-autoindex.conf |
| # Optional |
| Include /etc/httpd/extra/httpd-default.conf |
</code> | </code> |
| |
All other default settings should be good. | All other default settings should be good. |
| |
2) Make httpd start on boot. | Make httpd start on boot. |
<code>chmod 755 /etc/rc.d/rc.httpd | <code>chmod 755 /etc/rc.d/rc.httpd |
/etc/rc.d/rc.httpd start</code> | /etc/rc.d/rc.httpd start</code> |
| |
| |
====== USER DIRECTORIES ====== | ====== 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 | |
| |
| 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. |
| |
1) Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: | Example: <nowiki>http://www.slackware.com/~pat</nowiki> |
| |
| |
| Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: |
<code> vi /etc/httpd/httpd.conf | <code> vi /etc/httpd/httpd.conf |
| |
Include /etc/httpd/extra/httpd-userdir.conf</code> | Include /etc/httpd/extra/httpd-userdir.conf</code> |
| |
2) Edit /etc/httpd/extra/httpd-userdir.conf, change/uncomment the following: | Edit /etc/httpd/extra/httpd-userdir.conf, change/uncomment the following: |
<code>vi /etc/httpd/extra/httpd-userdir.conf | <code>vi /etc/httpd/extra/httpd-userdir.conf |
| |
</Directory></code> | </Directory></code> |
| |
3) Restart Apache | Restart Apache |
<code>/etc/rc.d/rc.httpd restart</code> | <code>/etc/rc.d/rc.httpd restart</code> |
| |
| |
====== ENABLE CGI-BIN ====== | ====== Enable CGI-BIN ====== |
This enables CGI script execution on your webserver. | |
| |
| This enables CGI script execution on your webserver. |
| |
1) Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: | Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: |
<code> vi /etc/httpd/httpd.conf | <code> vi /etc/httpd/httpd.conf |
| |
</IfModule></code> | </IfModule></code> |
| |
2) Restart Apache | Restart Apache |
<code>/etc/rc.d/rc.httpd restart</code> | <code>/etc/rc.d/rc.httpd restart</code> |
| |
**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. | **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: \\ | Example: <nowiki>http://www.slackware.com/cgi-bin/awesomescript.pl</nowiki> |
http://www.slackware.com/cgi-bin/awesomescript.pl | |
| |
**NOTE: This does not apply to php scripts, see the below for them.** | **NOTE**: This does not apply to PHP scripts, see the below for them. |
| |
| |
| |
====== USER CGI-BIN ====== | ====== User CGI-BIN ====== |
1) Setup CGI-BIN as described above. | |
| |
2) Edit /etc/httpd/extra/httpd-userdir.conf - Here is what you care about, change/uncomment the following lines as necessary: | 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: <nowiki>http://www.slackware.com/~pat/cgi-bin/webform.pl</nowiki> |
| |
| 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: |
<code>vi /etc/httpd/extra/httpd-userdir.conf | <code>vi /etc/httpd/extra/httpd-userdir.conf |
| |
</Directory></code> | </Directory></code> |
| |
3) Restart Apache | Restart Apache |
<code>/etc/rc.d/rc.httpd restart</code> | <code>/etc/rc.d/rc.httpd restart</code> |
| ====== Enable PHP ====== |
| |
**HINT:** 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. | [[howtos:network_services:setup_apache_php_mysql|http://docs.slackware.com/howtos:network_services:setup_apache_php_mysql]] |
| |
EXAMPLE: | ====== Virtual Hosts ====== |
http://www.slackware.com/~pat/cgi-bin/webform.pl | |
| |
| |
====== ENABLE PHP ====== | |
[[howtos:network_services:setup_apache_php_mysql|http://docs.slackware.com/howtos:network_services:setup_apache_php_mysql]] | |
| |
====== VIRTUAL HOSTS ====== | Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: |
1) Edit /etc/httpd/httpd.conf - Here is what you care about, change/uncomment the following lines as necessary: | |
| |
<code>vi /etc/httpd/httpd.conf | <code>vi /etc/httpd/httpd.conf |
Include /etc/httpd/extra/httpd-vhosts.conf</code> | Include /etc/httpd/extra/httpd-vhosts.conf</code> |
| |
2) Edit /etc/httpd/extra/httpd-vhosts.conf - Here is what you care about, add one of these entries for each virtual host: | Edit /etc/httpd/extra/httpd-vhosts.conf - Here is what you care about, add one of these entries for each virtual host: |
| |
<code>vi /etc/httpd/extra/httpd-vhosts.conf | <code>vi /etc/httpd/extra/httpd-vhosts.conf |
</VirtualHost></code> | </VirtualHost></code> |
| |
3) Restart Apache | Restart Apache |
<code>/etc/rc.d/rc.httpd restart</code> | <code>/etc/rc.d/rc.httpd restart</code> |
| |
**NOTE:** I run my vhosts as users so, the document roots are under /home/USER directories. Y**ou do not have to do this.** You can put the document roots anywhere you like. | **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 \\ |
| |
EXAMPLE: \\ | **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. |
/srv/www/htdocs/server1 \\ | |
/srv/www/htdocs/server2 \\ | |
etc... \\ | |
| |
**NOTE2:** 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 ====== |
| |
====== 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: |
If you have virtual hosts that need cgi (or need cgi in their own directory) you can do it like this: | |
| |
1) Edit /etc/httpd/extra/httpd-vhosts.conf - Add one of these entries for each vhost that needs unique cgi-bin directories: | Edit /etc/httpd/extra/httpd-vhosts.conf - Add one of these entries for each vhost that needs unique cgi-bin directories: |
| |
<code>vi /etc/httpd/extra/httpd-vhosts.conf | <code>vi /etc/httpd/extra/httpd-vhosts.conf |
</Directory></code> | </Directory></code> |
| |
2) Restart Apache | Restart Apache |
<code>/etc/rc.d/rc.httpd restart</code> | <code>/etc/rc.d/rc.httpd restart</code> |
| |