Difference between revisions of "Tung httpd conf"

From CDOT Wiki
Jump to: navigation, search
(Serving Personal Home Page)
(Serving Personal Home Page)
Line 36: Line 36:
 
#* By default, selinux has <code><font color=purple >context type httpd_user_content_t</font></code> for <code><font color=purple >/home/[^/]*/((www)|(web)|(public_html))(/.+)?</font></code>
 
#* By default, selinux has <code><font color=purple >context type httpd_user_content_t</font></code> for <code><font color=purple >/home/[^/]*/((www)|(web)|(public_html))(/.+)?</font></code>
 
#* Confirm the context type is correct: <b><code><font color=green >ls -Z public_html</font></code></b>
 
#* Confirm the context type is correct: <b><code><font color=green >ls -Z public_html</font></code></b>
# Open a browser, and enter <code> http://hostname/~your-user-id/</code>. Your personal page should display.
+
# Open a browser, and enter <code> http://hostname/~user/</code>. Your personal page should display.
  
 
===Create a web script in user's home===
 
===Create a web script in user's home===

Revision as of 21:31, 27 July 2011

Running and Configuring Apache Server

Introduction

In this page, you are going to set up a Apache server and allow a user create his own personal web page.


Creating a Public Web Page

  1. Login as root user
  2. Configure the Apache server to start when the Fedora is booted: chkconfig httpd on
  3. Start the Apache server: service httpd start
  4. Create index.html in /var/www/html/ directory, write some html code in the file
  5. Open a browser, and enter http://localhost . Your page should display.
  6. Make web page available to other hosts: iptables -I INPUT -p tcp --dport http -j ACCEPT

Serving Personal Home Page

  1. Login as root user
  2. Edit Apache Server configuration file /etc/httpd/conf/httpd.conf
    • Inside IfModule tag, comment “UserDir disable” and uncomment “UserDir public_html”
      <IfModule mod_userdir.c>
      #UserDir disable
      UserDir public_html
      </IfModule>
  3. Restart the Apache server: service httpd restart
  4. Logout root
  5. Create a public_html directory inside your home directory
  6. Change the permission of your home directory and the public_html to read and execute for other, so that the server can access files in public_html by name. Enter follow command:
    • chmod 705 /home/user/public_html
    • chmod 705 /home/user
  7. Create index.html in public_html directory, write some html code in the file.
  8. Change the permission of index.htm to read only for other: chmod 704 /home/user/public_html/index.html
  9. By default, selinux doesn't allow Apache Server to read file inside user's home. Change the default setting: setsebool -P httpd_enable_homedirs 1
  10. Check the context of public_html and index
    • By default, selinux has context type httpd_user_content_t for /home/[^/]*/((www)|(web)|(public_html))(/.+)?
    • Confirm the context type is correct: ls -Z public_html
  11. Open a browser, and enter http://hostname/~user/. Your personal page should display.

Create a web script in user's home

  1. Login as a root
  2. Edit configuration file /etc/httpd/conf/httpd.conf again. Add handler for .cgi and exec cgi option
    <Directory /home/*/public_html>
    Options +ExecCGI
    AddHandler cgi-script .cgi
    </Directory>
  3. Restart the Apache server: service httpd restart
  4. By default, selinux doesn't allow Apache Server to read file inside user's home. Change the default setting: setsebool -P httpd_enable_cgi 1
  5. Add context type to make script exexutable. To do that you need to add expressions for cgi file and public_html that more specific that the default expression.
    • For public_html: semanage fcontext -at httpd_sys_script_exec_t "/home/[^/]*/public_html"
    • For cgi files: semanage fcontext -at httpd_sys_script_exec_t "/home/[^/]*/public_html/.+\.cgi"
    • For non-cgi files: semanage fcontext -at httpd_user_content_t "/home/[^/]*/public_html/.+"
  6. Apply the context: restorecon -vRF public_html
  7. Confirm the context types are correct: ls -Z public_html
  8. Logout root
  9. Create diskfree.cgi and change its permission to executable: chmod 705 /home/user/public_html/*.cgi
  10. Write lines in diskfree.cgi
  11. Open a browser, and enter http://hostname/~your-user-id/diskfree.cgi . The disk usage of your computer should be displayed.