Quick and dirty guide to apache on solaris 10

The apache web server is included with solaris 10. Follow these steps to enable it.

Step 1: Create a working default apache config file

The apache server config files are in /etc/apache2. To quickly get up and running, you can just use the sample config file by doing the following:
cd /etc/apache2
cp httpd.conf-example httpd.conf

Step 2: Enable the apache/httpd service

Check to see if apache is already running:
svcs -a | grep -i http
You will probably see the following, indicating that apache is NOT running:
disabled       Apr_20   svc:/network/http:apache2

Use the svcadm command to start the webserver. This will also make it automatically start if your machine reboots.
svcadm -v enable /network/http:apache2
Use the following svcs command to make sure it worked:
svcs -p /network/http:apache2
STATE          STIME    FMRI
online         15:32:44 svc:/network/http:apache2
               15:32:44    28711 httpd
               15:32:45    28712 httpd
               15:32:45    28713 httpd
               15:32:45    28714 httpd
               15:32:45    28715 httpd
               15:32:45    28716 httpd
This is showing that the webserver is online and working.

Step 3: Add your web content

Put your html (IE: index.html) in the /var/apache2/htdocs directory. If everything went OK, you should have a functioning apache webserver.

Debugging / Troubleshooting

If the svcs -p command from the above step doesn't show a STATE of online, do the followig:
svcs -a | grep -i http
You'll probably see that it's in maintenance mode:
maintenance    15:16:12 svc:/network/http:apache2
For more detailed info run:
svcs -l http
svcs -x http
svc:/network/http:apache2 (Apache 2 HTTP server)
 State: maintenance since May  8, 2007  3:16:12 PM EDT
Reason: Start method failed repeatedly, last exited with status 1.
   See: http://sun.com/msg/SMF-8000-KS
   See: httpd(8)
   See: /var/svc/log/network-http:apache2.log
Impact: This service is not running.
Note that the second to last line tells you where the log file is, so take a look at that. Once you've fixed the problem, you can restart apache with:
svcadm restart /network/http:apache2
If for some reason you want to shut off apache, use this:
svcadm disable /network/http:apache2

svcs -p /network/http:apache2
STATE          STIME    FMRI
disabled       15:36:33 svc:/network/http:apache2

svcs -l http
fmri         svc:/network/http:apache2
name         Apache 2 HTTP server
enabled      false
state        disabled
next_state   none
state_time   May  8, 2007  3:36:33 PM EDT
logfile      /var/svc/log/network-http:apache2.log
restarter    svc:/system/svc/restarter:default
dependency   require_all/error svc:/milestone/network:default (online)
dependency   require_all/none svc:/system/filesystem/local:default
dependency   optional_all/error svc:/system/filesystem/autofs:default