Annotation of doc/build/manual_install.frag, revision 1.8

1.1       bowersj2    1: <p>
                      2: You will need to check all the following things to ensure proper
1.2       bowersj2    3: installation of your LON-CAPA system. Be sure to use the <a
1.6       matthew     4: href="rh73.html">RedHat 7.3</a> or <a href="fedora_install.html">Fedora</a> specific instructions if they apply,
1.2       bowersj2    5: as that will be much easier for you.
1.1       bowersj2    6: </p>
                      7: <ul>
1.2       bowersj2    8: <li><a href="#download">Downloading LON-CAPA</a></li>
1.1       bowersj2    9: <li><a href="#wwwuser">
                     10: Creating a user 'www'</a></li>
                     11: <li><a href="#shadow">
                     12: Make a LON-CAPA system work with shadow passwords</a></li>
                     13: <li><a href="#install">
                     14: Installing LON-CAPA files</a></li>
1.5       albertel   15: <li><a href="#perl">
                     16: Installing CPAN modules</a></li>
1.1       bowersj2   17: <li><a href="#checkrpms">
                     18: Checking your Linux RPMs</a> (On RedHat)</li>
                     19: <li><a href="#fixhosts">
                     20: Fixing <tt>/etc/hosts</tt></a></li>
                     21: <li><a href="#mysql">
                     22: Configuring the MySQL database</a></li>
                     23: <li><a href="#testing">
                     24: Testing to see if the LON-CAPA server is operational</a></li>
                     25: </ul>
                     26: 
1.2       bowersj2   27: <a name="download" />
                     28: <h3>Downloading LON-CAPA</h3>
                     29: 
                     30: <p>
                     31: <b>Current Release is Version LATESTVERSION.
                     32: This version was released on LATESTDATE.</b>
                     33: </p>
                     34: <p>
1.4       bowersj2   35: You can download the <b>most current version of LON-CAPA</b> at
1.2       bowersj2   36: <a href="http://install.lon-capa.org/versions/loncapa-current.tar.gz">
1.4       bowersj2   37: http://install.lon-capa.org/versions/loncapa-current.tar.gz</a>
1.2       bowersj2   38: (version LATESTVERSION).
                     39: </p>
                     40: <p>
1.4       bowersj2   41: The <b>development release of LON-CAPA</b> is at:
1.2       bowersj2   42: <a href="http://install.lon-capa.org/versions/loncapa-unstable.tar.gz">
1.4       bowersj2   43: http://install.lon-capa.org/versions/loncapa-unstable.tar.gz</a>.
1.2       bowersj2   44: </p>
                     45: <p>
                     46: To view the code development history of LON-CAPA, you will need to use the
                     47: <a href="http://www.cvshome.org/">CVS</a> tool, the open standard for
1.8     ! raeburn    48: version control.  Please contact the MSU LON-CAPA group 
        !            49: (<a href="mailto:helpdesk@lon-capa.org">helpdesk@lon-capa.org</a>) to request a 
1.7       albertel   50: CVS USERNAME.
1.2       bowersj2   51: </p>
                     52: <p>
                     53: The initial CVS commands would be:
                     54: </p>
                     55: <blockquote>
                     56: <table bgcolor="#aaaaaa" border="1">
                     57: <tr><td>
                     58: <pre>
1.8     ! raeburn    59: export CVSROOT=:ext:USERNAME@source.lon-capa.org:/home/cvs 
1.2       bowersj2   60: cvs login 
                     61: cvs co loncapa
                     62: </pre>
                     63: </td></tr></table>
                     64: </blockquote>
                     65: <p>
                     66: For more information on using CVS, please visit
                     67: <a href="http://www.cvshome.org/">http://www.cvshome.org/</a>
                     68: or read <tt>loncom/build/readme.html</tt> after downloading
                     69: the current version of LON-CAPA as described above.
                     70: </p>
                     71: 
1.1       bowersj2   72: <a name="wwwuser" />
                     73: <h3>Creating a user 'www'</h3>
                     74: <p>
                     75: Execute the following command to create a user named 'www' on your
                     76: LON-CAPA server:
                     77: </p>
                     78: <table bgcolor="#aaaaaa" border="1"><tr><td>
                     79: <tt>/usr/sbin/useradd www</tt>
                     80: </td></tr></table>
                     81: <a name="shadow" />
                     82: <h3>Make a LON-CAPA system work with shadow passwords</h3>
                     83: <table border="1">
                     84: <tr><th>Step #</th><th>Description</th></tr>
                     85: <tr><td>
                     86: <font size="+1">1</font>
                     87: </td><td>
                     88: <p>Is your system using shadow passwords? (Note: LON-CAPA will work
                     89: with either MD5/non-MD5 configured systems).  It is strongly
                     90: recommended to use shadow passwords. If your system is currently not
                     91: using shadow passwords, run the "pwconv" command (as root) in order to
                     92: convert to shadow passwords.  If you choose not to use shadow
                     93: passwords, then do not perform any of the additional steps.  If your
                     94: system is using shadow passwords, then you will need to perform the
                     95: additional steps below. 
                     96: </p>
                     97: <p>
                     98: <strong>How to detect:</strong>
                     99: <br />command: <tt>cat /etc/passwd | grep ':x:'</tt>
                    100: </p>
                    101: <p>If there is output such as "<tt>root:x:0:0:root:/root:/bin/bash</tt>",
                    102: then your system is using shadow passwords and you will need to continue with
                    103: the steps below.
                    104: </p>
                    105: </td></tr>
                    106: <tr><td>
                    107: <font size='+1'>2</font>
                    108: </td><td>
                    109: <p><strong>Retrieve the mod_auth_external source</strong> by
                    110: running the following command
                    111: </p>
                    112: <p><tt>
                    113: wget http://www.unixpapa.com/software/mod_auth_external-2.1.15.tar.gz
                    114: </tt>
                    115: </p>
                    116: </td></tr>
                    117: <tr><td>
                    118: <font size='+1'>3</font>
                    119: </td><td>
                    120: <p><strong>Unpack the mod_auth_external source</strong> by
                    121: running the following command
                    122: </p>
                    123: <p>
                    124: <tt>tar xzvf mod_auth_external-2.1.15.tar.gz</tt>
                    125: </p>
                    126: </td></tr>
                    127: <tr><td>
                    128: <font size='+1'>4</font>
                    129: </td><td>
                    130: <p><strong>Go to the <tt>pwauth</tt> directory</strong> by
                    131: running the following command
                    132: </p>
                    133: <p>
                    134: <tt>cd mod_auth_external-2.1.15/pwauth/</tt>
                    135: </p>
                    136: </td></tr>
                    137: <tr><td>
                    138: <font size='+1'>5</font>
                    139: </td><td>
                    140: <p><strong>Edit <tt>config.h</tt> and change SERVER_UIDS definition</strong>
                    141: </p>
                    142: <p>
                    143: Determine the user id of 'www':
                    144: <br /><tt>id -u www</tt>
                    145: <br />
                    146: Change the line
                    147: <br /><tt>#define SERVER_UIDS 99       /* user "nobody" */</tt>
                    148: <br />to be
                    149: <br /><tt>#define SERVER_UIDS 513      /* user "www" */</tt>
                    150: <br />where in this example 513 corresponds to the user id of 'www'.
                    151: </p>
                    152: </td></tr>
                    153: <tr><td>
                    154: <font size='+1'>6</font>
                    155: </td><td>
                    156: <p><strong>Compile the <tt>pwauth</tt> executable</strong> by
                    157: running the following command
                    158: </p>
                    159: <p>
                    160: <tt>make</tt>
                    161: </p>
                    162: </td></tr>
                    163: <tr><td>
                    164: <font size='+1'>7</font>
                    165: </td><td>
                    166: <p><strong>Install <tt>pwauth</tt></strong> by doing the following
                    167: </p>
                    168: <p>
                    169: <tt>cp pwauth /usr/local/sbin/</tt>
                    170: <br /><tt>chmod 6755 /usr/local/sbin/pwauth</tt>
                    171: </p>
                    172: <p>
                    173: Edit (creating the file) /etc/pam.d/pwauth to have the contents:
                    174: </p>
                    175: <pre>
                    176:         auth       required     /lib/security/pam_pwdb.so shadow nullok
                    177:         auth       required     /lib/security/pam_nologin.so
                    178:         account    required     /lib/security/pam_pwdb.so
                    179: </pre>
                    180: </td></tr>
                    181: </table>
                    182: <a name="install" />
                    183: <h3>Installing LON-CAPA files</h3>
                    184: <p>
                    185: Download the most current
                    186: <a href="http://install.lon-capa.org/versions/loncapa-current.tar.gz">
                    187: loncapa-current.tar.gz</a>.
                    188: </p>
                    189: <table bgcolor="#aaaaaa" border="1">
                    190: <tr><td><tt>wget http://install.lon-capa.org/versions/loncapa-current.tar.gz
                    191: </tt>
                    192: <br />
                    193: <tt>tar xzvf loncapa-current.tar.gz</tt>
                    194: <br />
                    195: <tt>cd loncapa-N.N</tt> (N.N is the version number)</td></tr>
                    196: </table>
                    197: <p>
                    198: The <strong>UPDATE</strong> command will refresh your filesystem with all
                    199: the latest LON-CAPA software.
                    200: </p>
                    201: <table bgcolor="#aaaaaa" border="1">
                    202: <tr><td><tt>./UPDATE</tt></td></tr>
                    203: </table>
1.5       albertel  204: <a name="perl" />
                    205: <h3>Installing CPAN modules</h3>
                    206: 
                    207: <p> Lon-CAPA uses a large numbe of perl modules that need to be
                    208: installed. Some of these may be available on your machine already,
                    209: some can be gotten from packages in your Linux Distribution. Some will probably need to come from CPAN </p>
                    210: 
                    211: <p> You can check which modules you have and which ones you need by
                    212: running the TEST script. It will generate a CPAN_STATUS_REPORT.
                    213: You can install an missing perl modules by doing:
                    214: <table bgcolor="#aaaaaa" border="1">
                    215: <tr><td><tt>perl -MCPAN -e 'install MODULENAME'</tt></td></tr>
                    216: </table>
                    217: Where MODULENAME is the perl module you need to install.
                    218: </p>
                    219: <p>
                    220: More documentation on how CPAN works is available <a href="http://www.perl.com/CPAN/misc/cpan-faq.html#How_install_Perl_modules">here</a>
                    221:  </p>
                    222: 
1.1       bowersj2  223: <a name="checkrpms" />
                    224: <h3>Checking your Linux RPMs on RedHat</h3>
                    225: <p>
                    226: The <strong>CHECKRPMS</strong> command will check the RPMs on your machine
                    227: against an FTP repository, if you're using a RedHat server.
                    228: </p>
                    229: 
                    230: <table bgcolor="#aaaaaa" border="1">
                    231: <tr><td><tt>./CHECKRPMS</tt></td></tr>
                    232: </table>
                    233: 
                    234: <p>If you are not installing on RedHat, you may need to manually
                    235: install some software. The following pointers may be useful:</p>
                    236: 
1.2       bowersj2  237: <ul><li>LON-CAPA uses a lot of Perl modules. If you are using RedHat,
                    238: go to <a href="http://install.lon-capa.org/resources">this
                    239: directory</a> and download the latest
                    240: <b>LON-CAPA-systemperl-?.?-rh7.i386.rpm</b>, which will contain all
                    241: the Perl modules you need on RedHat. Use <tt>rpm-Uvh --force</tt> to
                    242: install the RPM; this will overwrite some currently existing files and
                    243: that's OK.
                    244: 
                    245: <br /><br />For other Linux distributions, the easiest way to figure
1.1       bowersj2  246: out what Perl modules are being used by LON-CAPA that you do not have
                    247: installed is to try to start up LON-CAPA and see what Perl complains
                    248: about missing. Start by trying to run <tt>/home/httpd/perl/lonc</tt>
                    249: and <tt>/home/httpd/perl/lond</tt> manually as the <tt>www</tt> user,
                    250: and install the modules it complains about not finding. How you
                    251: install those modules will be distribution-specific, but failing all
                    252: else, you can use CPAN; see <tt>man CPAN</tt> on your distribution.<br
                    253: /><br />Once you've gotten <tt>lonc</tt> and <tt>lond</tt> to run, try
                    254: starting up the webserver. How long this will take depends entirely on
                    255: how close your distribution came to having all the modules LON-CAPA
                    256: uses when you started.</li>
                    257: <li>LON-CAPA assumes that the apache web server will be named "httpd"
                    258: and have configuration directories in <tt>/etc/httpd</tt>. Some distributions 
                    259: have that directory at <tt>/etc/apache</tt>. Symlinking <tt>httpd</tt> to the correct 
                    260: directory should work.</li>
                    261: </ul>
                    262: <a name="fixhosts" />
                    263: <h3>Fixing <tt>/etc/hosts</tt></h3>
                    264: <p>
                    265: A common RedHat glitch of new installations (RedHat's fault, not LON-CAPA)
                    266: is the generation of /etc/hosts.
                    267: </p>
                    268: <p>
                    269: It should look something like this (except the <tt>myschool</tt> line
                    270: should be replaced with settings specific to your machine):
                    271: </p>
                    272: <table bgcolor="#aaaaaa" border="1">
                    273: <tr><td>
                    274: <pre>
                    275: 127.0.0.1		localhost.localdomain localhost
                    276: 12.34.56.78		www.myschool.edu myschool
                    277: </pre></td></tr>
                    278: </table>
                    279: <a name="mysql" />
                    280: <h3>Configuring the MySQL database</h3>
                    281: <p>
                    282: The following commands describe how to configure the MySQL database
                    283: on your LON-CAPA server.
                    284: <br />Note:
                    285: </p>
                    286: <ul>
                    287: <li>you should substitute 'ROOTPASSWORD' with something very hard to guess
                    288: (it does not have to be the Linux OS root password)
                    289: </li>
                    290: <li>The MySQL www@localhost user must always have a password of 'localhostkey'
                    291: in order for there to be correct operation of a standard LON-CAPA system.
                    292: </li>
                    293: </ul>
                    294: <p>
                    295: The following instructions assume you are logged in as 'root'.
                    296: </p>
                    297: <p>Entering the mysql shell</p>
                    298: <table bgcolor="#aaaaaa" border="1"><tr><td>
                    299: <pre>
                    300: mysql -u root -p mysql
                    301: OR
                    302: mysql -u root mysql (depending on whether you have set a root password)
                    303: </pre>
                    304: </td></tr></table>
                    305: <p>Creating the mysql 'www' user (after entering mysql shell)</p>
                    306: <table bgcolor="#aaaaaa" border="1"><tr><td>
                    307: <pre>
                    308: mysql> CREATE DATABASE loncapa;
                    309: 
                    310: mysql> INSERT INTO user (Host, User, Password)
                    311: mysql> VALUES ('localhost','www',password('localhostkey'));
                    312: 
                    313: mysql> INSERT INTO db VALUES ('localhost','loncapa','www',
                    314: mysql> 'Y','Y','Y','Y','Y','Y','N','Y','Y','Y');
                    315: 
                    316: mysql> FLUSH PRIVILEGES;
                    317: </pre>
                    318: </td></tr></table>
                    319: <p>SECURITY: set a password for the mysql 'root' user</p>
                    320: <table bgcolor="#aaaaaa" border="1"><tr><td>
                    321: <pre>
                    322: shell> mysql -u root mysql
                    323: mysql> SET PASSWORD FOR root@localhost=PASSWORD('ROOTPASSWORD');
                    324: </pre>
                    325: </td></tr></table>
                    326: <p>SECURITY: only allow access from localhost</p>
                    327: <table bgcolor="#aaaaaa" border="1"><tr><td>
                    328: <pre>
                    329: shell> mysql -u root -p mysql
                    330: mysql> DELETE FROM user WHERE host&lt;&gt;'localhost';
                    331: </pre>
                    332: </td></tr></table>
                    333: <a name="testing" />
                    334: <h3>Testing to see if the LON-CAPA server is operational</h3>
                    335: <p>
                    336: The <strong>TEST</strong> command will check the installation software,
                    337: the perl libraries on your system, the MySQL database, and
                    338: will also automatically test the real-time operation of the 
                    339: LON-CAPA Apache web server.
                    340: </p>
                    341: <table bgcolor="#aaaaaa" border="1">
                    342: <tr><td><tt>./TEST</tt></td></tr>
                    343: </table>
                    344: <p>
                    345: Using the <strong>TEST</strong> command will likely
                    346: be an iterative process.
                    347: It is normal to expect that the <strong>TEST</strong> command
                    348: will recommend you perform various steps to ensure optimal
                    349: performance of your LON-CAPA server.
                    350: </p>
                    351: <!-- maintext end -->
                    352: <!-- validated -->
                    353: </body>
                    354: </html>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.