Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 239 lines (168 sloc) 7.41 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
Last updated: Jan 28, 2009

Index
-------

  * Installing mod_mono
    o Prerrequisites
    o Assumptions
    o Step by step (everything in /usr!)
      -Tip: If mono was not installed in /usr

  * APPENDIX A: Typical configuration without virtual hosts
  * APPENDIX B: Webapp file format
  * APPENDIX C: More information
  * CREDITS
  

Installing mod_mono
--------------------

  The following are instructions on getting mod_mono working with
  Apache 2. Once you set it up, Apache will be able to serve ASP.NET
  pages.

  * Prerrequisites
  -----------------
  You will need:

    * mono (http://www.go-mono.com)
    * apache 2.0 or later and its development packages. Usually called
      apache2-dev, apache2-devel...
    * Latest xsp and mod_mono tarballs (http://go-mono.com/download.html)

  * Assumptions
  -------------
  The next steps assume you have installed mono, XSP and Apache in
  /usr. Notice that you will need to be root in order to run 'make
  install'.

  * Step by step (everything in /usr!)
  -------------------------------------
    1. Install mod_mono.

             tar xvfz mod_mono-X.Y.Z.tar.gz
             cd mod_mono-X.Y.Z
   (*) ./configure --prefix=/usr
             make
             make install

       (*) If it complains about not finding apxs because you installed
       apache in a non-common directory or the configuration summary
       reports an apache version different from what you expected, use
       the --with-apxs argument. Example:

         ./configure --prefix=/usr --with-apxs=/usr/sbin/apxs

       If you get errors while compiling due to apr.h header not found,
       you'll need to use the --with-apr-config option and provide the
       full path to 'apr-config':

         ./configure --prefix=/usr --with-apr-config=/usr/bin/apr-config

       After running 'make install', the module is installed in the
       proper location and the apache configuration file has been
       updated to load the module. apxs automatically adds this line (or
       similar) to httpd.conf if not already present:

         LoadModule mono_module modules/mod_mono.so

    2. Configure Apache.

       We're going to configure Apache so that we can browse the samples
       installed by XSP under /usr/lib/xsp/test.

       Edit your httpd.conf file, which should be in /etc/httpd, /etc/apache2...

       Add the following lines:

            Alias /demo "/usr/lib/xsp/test"
MonoApplications "/demo:/usr/lib/xsp/test"

       so that apache redirects requests from /demo to /demo/ and looks
       for everything requested as /demo/xxx under
       /usr/lib/xsp/test/xxx.Don't forget the quotes.

       Add these lines:

            <Directory /usr/lib/xsp/test>
SetHandler mono
                   <IfModule mod_dir.c>
                         DirectoryIndex index.aspx
                   </IfModule>
            </Directory>

       Alternatively, you can use get the same results with this:

            <Location /demo>
SetHandler mono
            </Location>

Take a look at Appendix A below for typical configuration
samples and Appendix B for detailed descriptions on available
configuration directives.

    3. Restart apache.
    4. Point your browser to http://127.0.0.1/demo/index.aspx

  Nice, huh?

      -TIP: If mono was not installed in /usr

      In this case, when running ./configure for mod_mono, you can do:

          ./configure --prefix=/usr --with-mono-prefix=/usr/local

      so that the default paths for locating mono and mod-mono-server
      are set to /usr/local/bin/mono and so on.

The mod_mono Control Panel
--------------------------

  mod_mono provides a simple web-based control panel for restarting the
  mod-mono-server, which is useful when assemblies need to be reloaded
  from disk after they have been changed. To activate the control panel,
  place the following in your httpd.conf:

            <Location /mono>
              SetHandler mono-ctrl
              Order deny,allow
              Deny from all
              Allow from 127.0.0.1
            </Location>

  The control panel is then accessible at http://yourdomain.com/mono.
  Clicking the link to restart mod-mono-server will immediately restart
  it.

  The Order/Deny/Allow access controls above restrict access to the
  control panel to the computer with IP address 127.0.0.1. Replace this
  (or add more Allow lines) with the IP address of your own computer so
  that you can access the control panel. You can also use Apache's
  htaccess features to password protect it, too.
 


APPENDIX A: Typical configuration without virtual hosts
--------------------------------------------------------

  This samples assume that you have mono and mod-mono-server installed
  in /usr prefix. If you installed them in other place, take a look at
  Appendix C.

  Your configuration should be something like:

      Alias /demo "/usr/lib/xsp/test"
      AddMonoApplications default "/demo:/usr/lib/xsp/test"
      <Directory /usr/lib/xsp/test>
              SetHandler mono
      # The following lines required for apache 1.3
              <IfModule mod_dir.c>
                    DirectoryIndex index.aspx
              </IfModule>
      </Directory>

  or like this:

      LoadModule mono_module modules/mod_mono.so
      Alias /demo "/usr/lib/xsp/test"
      AddMonoApplications default "/demo:/usr/lib/xsp/test"
      <Location /demo>
              SetHandler mono
      </Location>

  If you prefer to .webapp configuration file(s) (see manual page
  of XSP), you can change MonoApplications in the above samples by:

      MonoApplicationsConfigFile default "/var/www/applications.webapp"

  replacing the path to the file with yours.

  If you want to use several .webapp files, use this instead:

      MonoApplicationsConfigDir default "/var/www/webapp"

  and all the .webapp files found in the directory /var/www/webapp
  will be loaded.

  If you don't want mod-mono-server to handle all the files, but only
  ASP.NET ones, you can replace the 'SetHandler mono' by:

       AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx

  but this will make PathInfo unusable.


APPENDIX B: Webapp file format
---------------------------------

  The format of the .webapp files is:

      <apps>
         <web-application>
            <name>{appname}</name>
            <vhost>{virtual host for application}</vhost>
            <vport>{port for the application}</vport>
            <vpath>{virtual directory in apache}</vpath>
            <path>{physical path to aspx files}</path>
<!-- Default value for <enabled> is true -->
            <enabled>{true|false}</enabled>
         </web-application>
      </apps>

  You can include any number of <web-application> nodes, one per
  ASP.NET application to run.

  There's a sample.webapp file in the XSP samples directory.
  

APPENDIX D: More information
-----------------------------

  You can find more information in the manual pages of mono, xsp,
  mod-mono-server and mod_mono.

  There are more commented examples in monodoc.


CREDITS
--------

  Daniel Lopez Ridruejo <daniel @ rawbyte.com>
  http://www.apacheworld.org
  Daniel started the development of mod_mono using the embedding mono approach.

  Gonzalo Paniagua Javier <gonzalo @ ximian.com>
  Maintainer

  Marek Habersack <mhabersack @ novell.com>
  Maintainer
Something went wrong with that request. Please try again.