Difference between revisions of "Freeside:1.7:Documentation:InstallingOnFreeBSD"
From Freeside
Thumper113 (talk | contribs) |
Thumper113 (talk | contribs) |
||
Line 2: | Line 2: | ||
− | 1. Install FreeBSD. - Do the complete install from CD. | + | *1. Install FreeBSD. - Do the complete install from CD. |
− | a. Insert Freebsd CD & boot to CD | + | **a. Insert Freebsd CD & boot to CD |
− | b. Select “Custom” | + | **b. Select “Custom” |
− | c. Select “Partition” | + | **c. Select “Partition” |
− | d. Use “D” to Delete any existing partitions | + | **d. Use “D” to Delete any existing partitions |
− | e. Use “C” to Create slices (this is just the drive, use one slice) | + | **e. Use “C” to Create slices (this is just the drive, use one slice) |
− | f. Use “Q” to save & exit | + | **f. Use “Q” to save & exit |
− | g. Select “BootMgr” | + | **g. Select “BootMgr” |
− | h. Select “Label” | + | **h. Select “Label” |
− | i. Use “C” to create partitions | + | **i. Use “C” to create partitions |
− | j. Setup swap partition first (2 x RAM) – use “m” at end of number to denote mb | + | **j. Setup swap partition first (2 x RAM) – use “m” at end of number to denote mb |
− | k. Select “swap” as partition type | + | **k. Select “swap” as partition type |
− | l. Setup other partitions – mount point for OS is “/” | + | **l. Setup other partitions – mount point for OS is “/” |
− | m. Use “Q” to save & finish | + | **m. Use “Q” to save & finish |
− | n. Select “Distributions” | + | **n. Select “Distributions” |
− | o. Select “All” | + | **o. Select “All” |
− | p. Select “Yes” | + | **p. Select “Yes” |
− | q. Select “Exit” | + | **q. Select “Exit” |
− | r. Select “Media” | + | **r. Select “Media” |
− | s. Select “CD/DVD” | + | **s. Select “CD/DVD” |
− | t. Select “Commit” | + | **t. Select “Commit” |
− | u. Select “Yes” | + | **u. Select “Yes” |
− | v. Select “No” | + | **v. Select “No” |
− | w. Select “Exit” | + | **w. Select “Exit” |
− | x. Select “X” | + | **x. Select “X” |
− | y. Select “Yes” & remove CD | + | **y. Select “Yes” & remove CD |
− | 2. Configure the server | + | *2. Configure the server |
− | a. adduser “adduser” (set up a user for use later so you don’t have to log into root everytime) | + | **a. adduser “adduser” (set up a user for use later so you don’t have to log into root everytime) |
− | b. set root password “passwd” | + | **b. set root password “passwd” |
− | c. Edit the rc.conf in etc | + | **c. Edit the rc.conf in etc |
− | i. hostname=”boxname.your.domain” | + | ***i. hostname=”boxname.your.domain” |
− | ii. ifconfig_fxp0=”your.ip.here netmask your.subnet.here” | + | ***ii. ifconfig_fxp0=”your.ip.here netmask your.subnet.here” |
− | iii. defaultrouter=”your.gateway.ip.here” | + | ***iii. defaultrouter=”your.gateway.ip.here” |
− | iv. inetd_enable=”YES” | + | ***iv. inetd_enable=”YES” |
− | v. sshd_enable=”YES” | + | ***v. sshd_enable=”YES” |
− | vi. keyrate=”fast” | + | ***vi. keyrate=”fast” |
− | vii. update_motd=”NO” | + | ***vii. update_motd=”NO” |
− | viii. kern_securelevel_enable=”NO” | + | ***viii. kern_securelevel_enable=”NO” |
− | ix. usbd_enable=”YES” | + | ***ix. usbd_enable=”YES” |
− | x. syslogd_flags=”-s” | + | ***x. syslogd_flags=”-s” |
− | xi. sendmail_enable=”NONE” | + | ***xi. sendmail_enable=”NONE” |
− | xii. apache22_enable=”YES” | + | ***xii. apache22_enable=”YES” |
− | xiii. postgresql_enable=”YES” | + | ***xiii. postgresql_enable=”YES” |
− | d. Enable root ssh logon | + | **d. Enable root ssh logon |
− | i. Edit /etc/ssh/sshd_config to allow root login by changing to yes and unremarking line | + | **i. Edit /etc/ssh/sshd_config to allow root login by changing to yes and unremarking line |
− | e. “cd /etc” | + | **e. “cd /etc” |
− | f. “vi resolv.conf” | + | **f. “vi resolv.conf” |
− | i. domain your.domain | + | ***i. domain your.domain |
− | ii. nameserver your.dns.ip.here | + | ***ii. nameserver your.dns.ip.here |
− | g. reboot | + | **g. reboot |
− | h. portsnap fetch | + | **h. portsnap fetch |
− | i. portsnap extract | + | **i. portsnap extract |
− | 3. Perl is already installed with Freebsd, use existing install (Satisfies Freeside install step 1.) | + | *3. Perl is already installed with Freebsd, use existing install (Satisfies Freeside install step 1.) |
− | 4. Install Apache | + | *4. Install Apache |
− | a. “cd /usr/ports/www/apache22” | + | **a. “cd /usr/ports/www/apache22” |
− | b. “make && make install” (use defaults for any gui) | + | **b. “make && make install” (use defaults for any gui) |
− | c. “vi usr/local/etc/apache22/httpd.conf” | + | ***c. “vi usr/local/etc/apache22/httpd.conf” |
− | i. Listen IP:Port | + | ***i. Listen IP:Port |
− | ii. ServerAdmin youremail@yourdomain.com | + | ***ii. ServerAdmin youremail@yourdomain.com |
− | iii. ServerName your.servername:80 | + | ***iii. ServerName your.servername:80 |
− | iv. Reboot | + | ***iv. Reboot |
− | 5. Step two of Freeside install instructions almost completed, set up ssl later. | + | *5. Step two of Freeside install instructions almost completed, set up ssl later. |
− | 6. Install the cpan bundle & Apache bundle | + | *6. Install the cpan bundle & Apache bundle |
− | a. “perl –MCPAN –e shell; “ | + | **a. “perl –MCPAN –e shell; “ |
− | b. type “no“ | + | **b. type “no“ |
− | c. “install Bundle::CPAN“ (watch error messages at end has taken as many as 7 times to get full load) | + | **c. “install Bundle::CPAN“ (watch error messages at end has taken as many as 7 times to get full load) |
− | d. “reload cpan“ | + | **d. “reload cpan“ |
− | e. “install Bundle::Apache2” | + | **e. “install Bundle::Apache2” |
− | f. “quit” | + | **f. “quit” |
− | 7. Install mod_perl – first download the latest mod_perl to one of your ftp servers | + | *7. Install mod_perl – first download the latest mod_perl to one of your ftp servers |
− | a. “mkdir /home/youruserfromstep2a/programs” | + | **a. “mkdir /home/youruserfromstep2a/programs” |
− | b. “cd /home/ youruserfromstep2a /programs” | + | **b. “cd /home/ youruserfromstep2a /programs” |
− | c. “ftp yourftpserver“ | + | **c. “ftp yourftpserver“ |
− | d. “cd filelocation “ | + | **d. “cd filelocation “ |
− | e. “bin“ | + | **e. “bin“ |
− | f. “get mod_perl-2.0-current.tar.gz” | + | **f. “get mod_perl-2.0-current.tar.gz” |
− | g. “quit“ | + | **g. “quit“ |
− | h. “tar –xvzf mod<tab>“ | + | **h. “tar –xvzf mod<tab>“ |
− | i. “cd mod_perl-2.0.3“ | + | **i. “cd mod_perl-2.0.3“ |
− | j. “perl Makefile.PL APACHE_SRC=/usr/ports/www/apache22\ | + | **j. “perl Makefile.PL APACHE_SRC=/usr/ports/www/apache22\ |
EVERYTHING=1“ (apxs source is /usr/local/sbin/apxs) | EVERYTHING=1“ (apxs source is /usr/local/sbin/apxs) | ||
− | k. “make && make install“ | + | **k. “make && make install“ |
− | l. “/usr/local/sbin/apxs –q LIBEXECDIR“ (should be /usr/local/libexec/apache22, so line would be libexec/apache22/mod_perl.so) | + | **l. “/usr/local/sbin/apxs –q LIBEXECDIR“ (should be /usr/local/libexec/apache22, so line would be libexec/apache22/mod_perl.so) |
− | m. add to httpd.conf – LoadModule perl_module results of above/mod_perl.so (at bottom of LoadModule section) | + | **m. add to httpd.conf – LoadModule perl_module results of above/mod_perl.so (at bottom of LoadModule section) |
− | n. “apachectl restart“ | + | **n. “apachectl restart“ |
− | 8. Install OpenSSH (use defaults on GUI) | + | *8. Install OpenSSH (use defaults on GUI) |
− | a. “cd /usr/ports/security/openssh“ | + | **a. “cd /usr/ports/security/openssh“ |
− | b. “make && make install && reboot“ | + | **b. “make && make install && reboot“ |
− | 9. Install rsync: (use defaults on GUI) | + | *9. Install rsync: (use defaults on GUI) |
− | a. “cd /usr/ports/net/rsync“ | + | **a. “cd /usr/ports/net/rsync“ |
− | b. “make && make install && reboot“ | + | **b. “make && make install && reboot“ |
− | 10. Install Postgresql (use defaults on GUI) | + | *10. Install Postgresql (use defaults on GUI) |
− | a. “cd /usr/ports/databases/postgresql81-server“ | + | **a. “cd /usr/ports/databases/postgresql81-server“ |
− | b. “make && make install“ | + | **b. “make && make install“ |
− | c. Initialize postgresql -- “/usr/local/etc/rc.d/postgresql initdb” (you should see it build the database files needed here, if it doesn’t, then the postgresql install was bad and you need to restart the build process) | + | **c. Initialize postgresql -- “/usr/local/etc/rc.d/postgresql initdb” (you should see it build the database files needed here, if it doesn’t, then the postgresql install was bad and you need to restart the build process) |
− | d. Configure for OID | + | **d. Configure for OID |
− | i. “vi /usr/local/pgsql/data/postgresql.conf“ | + | ***i. “vi /usr/local/pgsql/data/postgresql.conf“ |
− | ii. enable oid by changing to yes and unremarking line | + | ***ii. enable oid by changing to yes and unremarking line |
− | e. reboot | + | **e. reboot |
− | 11. Install teTex | + | *11. Install teTex |
− | a. “cd /usr/ports/print/teTeX” | + | **a. “cd /usr/ports/print/teTeX” |
− | b. “make && make install” | + | **b. “make && make install” |
− | 12. Install the required perl modules (At this point I recommend two interfaces into the box. I usually use the terminal and an SSH session. If a module errors out, go to a different screen and force the install before proceeding to the next item. I’ve found the order these modules load seems to matter. You must cd to /root/.cpan/build and find the package directory and cd into it to run the manual make. First run “perl Makefile.PL”, then “make” and finally “make install”) | + | *12. Install the required perl modules (At this point I recommend two interfaces into the box. I usually use the terminal and an SSH session. If a module errors out, go to a different screen and force the install before proceeding to the next item. I’ve found the order these modules load seems to matter. You must cd to /root/.cpan/build and find the package directory and cd into it to run the manual make. First run “perl Makefile.PL”, then “make” and finally “make install”) |
− | a. “perl –MCPAN –e shell;” | + | **a. “perl –MCPAN –e shell;” |
− | b. type “no” | + | **b. type “no” |
− | c. install MIME::Base64 | + | **c. install MIME::Base64 |
− | d. install Digest::MD5 | + | **d. install Digest::MD5 |
− | e. install URI | + | **e. install URI |
− | f. install HTML::Tagset | + | **f. install HTML::Tagset |
− | g. install HTML::Parser | + | **g. install HTML::Parser |
− | h. i /libnet/ | + | **h. i /libnet/ |
− | i. install (full name of latest version of libnet) | + | **i. install (full name of latest version of libnet) |
− | j. install Locale::Country | + | **j. install Locale::Country |
− | k. install Net::Whois::Raw | + | **k. install Net::Whois::Raw |
− | l. install libwww | + | **l. install libwww |
− | m. install Bundle::LWP | + | **m. install Bundle::LWP |
− | n. install Business::CreditCard | + | **n. install Business::CreditCard |
− | o. i /MailTools/ | + | **o. i /MailTools/ |
− | p. install (full name of latest version of mailtools) | + | **p. install (full name of latest version of mailtools) |
− | q. i /TimeDate/ | + | **q. i /TimeDate/ |
− | r. Install (full name of latest version of TimeDate) | + | **r. Install (full name of latest version of TimeDate) |
− | s. install DateManip | + | **s. install DateManip |
− | t. install File::CounterFile | + | **t. install File::CounterFile |
− | u. install FreezeThaw | + | **u. install FreezeThaw |
− | v. install String::Approx | + | **v. install String::Approx |
− | w. install Text::Template | + | **w. install Text::Template |
− | x. install DBI | + | **x. install DBI |
− | y. install DBD::Pg | + | **y. install DBD::Pg |
− | z. install DBIx::DBSchema | + | **z. install DBIx::DBSchema |
− | aa. install Net::SSH | + | **aa. install Net::SSH |
− | bb. install String::ShellQuote | + | **bb. install String::ShellQuote |
− | cc. i /IVAN/Net/ | + | **cc. i /IVAN/Net/ |
− | dd. install (full name of latest version of NET-SCP) | + | **dd. install (full name of latest version of NET-SCP) |
− | ee. install HTML::Mason (apache src is /usr/ports/www/apache22) | + | **ee. install HTML::Mason (apache src is /usr/ports/www/apache22) |
− | ff. install Tie::IxHash | + | **ff. install Tie::IxHash |
− | gg. install Time::Duration | + | **gg. install Time::Duration |
− | hh. install HTML::Widgets::SelectLayers | + | **hh. install HTML::Widgets::SelectLayers |
− | ii. install Storable | + | **ii. install Storable |
− | jj. install Cache::Cache | + | **jj. install Cache::Cache |
− | kk. install NetAddr::IP | + | **kk. install NetAddr::IP |
− | ll. install Chart::Base | + | **ll. install Chart::Base |
− | mm. install Crypt::PasswdMD5 | + | **mm. install Crypt::PasswdMD5 |
− | nn. install Locale::SubCountry | + | **nn. install Locale::SubCountry |
− | oo. install JavaScript::RPC | + | **oo. install JavaScript::RPC |
− | pp. install Frontier::RPC2 | + | **pp. install Frontier::RPC2 |
− | qq. i /JWIED/Text/ | + | **qq. i /JWIED/Text/ |
− | rr. install (full name of latest version of Text-CSV_X) | + | **rr. install (full name of latest version of Text-CSV_X) |
− | ss. install Spreadsheet::WriteExcel | + | **ss. install Spreadsheet::WriteExcel |
− | tt. install IO::Stringy | + | **tt. install IO::Stringy |
− | uu. install MIME::Tools | + | **uu. install MIME::Tools |
− | vv. install Apache::Session | + | **vv. install Apache::Session |
− | ww. install HTML::TreeBuilder | + | **ww. install HTML::TreeBuilder |
− | xx. install HTML::FormatText | + | **xx. install HTML::FormatText |
− | yy. install Test::Inline | + | **yy. install Test::Inline |
− | zz. install Class::ReturnValue | + | **zz. install Class::ReturnValue |
− | aaa. install DBIx::SearchBuilder | + | **aaa. install DBIx::SearchBuilder |
− | bbb. install Log::Dispatch | + | **bbb. install Log::Dispatch |
− | ccc. install Locale::Maketext::Lexicon | + | **ccc. install Locale::Maketext::Lexicon |
− | ddd. install Locale::Maketext::Fuzzy | + | **ddd. install Locale::Maketext::Fuzzy |
− | eee. install Text::Wrapper | + | **eee. install Text::Wrapper |
− | fff. install Time::ParseDate | + | **fff. install Time::ParseDate |
− | ggg. install Term::ReadKey | + | **ggg. install Term::ReadKey |
− | hhh. install Text::Autoformat | + | **hhh. install Text::Autoformat |
− | iii. install Text::Quoted | + | **iii. install Text::Quoted |
− | jjj. install Regexp::Common | + | **jjj. install Regexp::Common |
− | kkk. install HTML::Scrubber | + | **kkk. install HTML::Scrubber |
− | lll. install Tree::Simple | + | **lll. install Tree::Simple |
− | mmm. install JSON | + | **mmm. install JSON |
− | nnn. install GD | + | **nnn. install GD |
− | ooo. install DateTime::Format::Strptime | + | **ooo. install DateTime::Format::Strptime |
− | ppp. install IPC::Run3 | + | **ppp. install IPC::Run3 |
− | qqq. install Color::Scheme | + | **qqq. install Color::Scheme |
− | rrr. install Data::Table | + | **rrr. install Data::Table |
− | sss. install Lingua::EN::NameParse | + | **sss. install Lingua::EN::NameParse |
− | ttt. install Lingua::EN::Inflect | + | **ttt. install Lingua::EN::Inflect |
− | uuu. install Apache::DBI | + | **uuu. install Apache::DBI |
− | vvv. install HTTP::BrowserDetect | + | **vvv. install HTTP::BrowserDetect |
− | www. “quit” | + | **www. “quit” |
Line 366: | Line 366: | ||
− | 1. Get Freeside ready to install - Download the latest freeside tarball to your ftp server | + | *1. Get Freeside ready to install - Download the latest freeside tarball to your ftp server |
− | a. “cd /home/ youruserfromstep2a /programs“ | + | **a. “cd /home/ youruserfromstep2a /programs“ |
− | b. “ftp yourftpserver“ (log in) | + | **b. “ftp yourftpserver“ (log in) |
− | c. “cd filelocation “ | + | **c. “cd filelocation “ |
− | d. “bin” | + | **d. “bin” |
− | e. “get free<tab>” | + | **e. “get free<tab>” |
− | f. “get Makefile” | + | **f. “get Makefile” |
− | g. “quit” | + | **g. “quit” |
− | h. “tar –xvzf free<tab>“ | + | **h. “tar –xvzf free<tab>“ |
− | i. “cp Makefile ./freeside/Makefile” | + | **i. “cp Makefile ./freeside/Makefile” |
− | j. “cd free<tab>“ | + | **j. “cd free<tab>“ |
− | 2. adduser freeside (start with “adduser” and answer questions, pwd yourpasswdhere) | + | *2. adduser freeside (start with “adduser” and answer questions, pwd yourpasswdhere) |
− | 3. “mkdir /usr/local/www/apache22/data/freeside” | + | *3. “mkdir /usr/local/www/apache22/data/freeside” |
− | 4. “chown freeside:www /usr/local/www/apache22/data/freeside” | + | *4. “chown freeside:www /usr/local/www/apache22/data/freeside” |
− | 5. Allow the freeside user full access to the freeside database | + | *5. Allow the freeside user full access to the freeside database |
− | a. su pgsql | + | **a. su pgsql |
− | b. createuser –P freeside | + | **b. createuser –P freeside |
− | c. set password (yourpasswdhere) | + | **c. set password (yourpasswdhere) |
− | d. not a superuser | + | **d. not a superuser |
− | e. yes to create database | + | **e. yes to create database |
− | f. no to create role | + | **f. no to create role |
− | 6. Add the freeside database | + | *6. Add the freeside database |
− | a. su freeside | + | **a. su freeside |
− | b. createdb –E sql_ascii freeside | + | **b. createdb –E sql_ascii freeside |
− | 7. Build and install the Perl modules | + | *7. Build and install the Perl modules |
− | a. Exit all the way to root | + | **a. Exit all the way to root |
− | b. make perl-modules | + | **b. make perl-modules |
− | c. make install-perl-modules | + | **c. make install-perl-modules |
− | 8. Create config files: “make create-config” | + | *8. Create config files: “make create-config” |
− | 9. Edit /usr/local/etc/apache22/httpd.conf | + | *9. Edit /usr/local/etc/apache22/httpd.conf |
− | a. Change user & group to freeside | + | **a. Change user & group to freeside |
− | 10. apachectl restart | + | *10. apachectl restart |
− | 11. ps –aux (make sure apache now running as freeside) | + | *11. ps –aux (make sure apache now running as freeside) |
− | 12. “make install-docs” | + | *12. “make install-docs” |
− | 13. Edit the httpd.conf for freeside | + | *13. Edit the httpd.conf for freeside |
− | a. Edit /usr/local/etc/apache22/httpd.conf | + | **a. Edit /usr/local/etc/apache22/httpd.conf |
− | b. At bottom add “Include etc/apache22/Includes/” | + | **b. At bottom add “Include etc/apache22/Includes/” |
− | 14. Create the database tables and initial data | + | *14. Create the database tables and initial data |
− | a. su freeside | + | **a. su freeside |
− | b. freeside-setup –d your.domain | + | **b. freeside-setup –d your.domain |
− | 15. Create the Freeside system users | + | *15. Create the Freeside system users |
− | a. su freeside | + | **a. su freeside |
− | b. freeside-adduser –g 1 fs_queue | + | **b. freeside-adduser –g 1 fs_queue |
− | c. freeside-adduser –g 1 fs_daily | + | **c. freeside-adduser –g 1 fs_daily |
− | d. freeside-adduser –g 1 fs_selfservice | + | **d. freeside-adduser –g 1 fs_selfservice |
− | 16. Correct access_user.pm | + | *16. Correct access_user.pm |
− | a. edit /usr/local/lib/perl5/site_perl/5.8.8/FS/access_user.pm | + | **a. edit /usr/local/lib/perl5/site_perl/5.8.8/FS/access_user.pm |
− | b. change the call to $htpasswd_file to ‘/usr/local/etc/freeside/htpasswd’ instead of just ‘htpasswd’ (about line 18) | + | **b. change the call to $htpasswd_file to ‘/usr/local/etc/freeside/htpasswd’ instead of just ‘htpasswd’ (about line 18) |
− | c. change the system('htpasswd', '-b', @_, to system('/usr/local/sbin/htpasswd', '-b', @_, (about line 130) | + | **c. change the system('htpasswd', '-b', @_, to system('/usr/local/sbin/htpasswd', '-b', @_, (about line 130) |
− | 17. Create one or more Freeside users | + | *17. Create one or more Freeside users |
− | a. su freeside | + | **a. su freeside |
− | b. freeside-adduser –g 1 yournewuser | + | **b. freeside-adduser –g 1 yournewuser |
− | c. htpasswd /usr/local/etc/freeside/htpasswd yournewuser | + | **c. htpasswd /usr/local/etc/freeside/htpasswd yournewuser |
− | 18. Reboot | + | *18. Reboot |
− | 19. Get the correct httpd.conf with all the RT info | + | *19. Get the correct httpd.conf with all the RT info |
− | a. Edit the /usr/local/etc/apache22/httpd.conf file | + | **a. Edit the /usr/local/etc/apache22/httpd.conf file |
− | b. Add the following near the end | + | **b. Add the following near the end |
− | <Directory /usr/local/www/apache22/data/freeside> | + | ***<Directory /usr/local/www/apache22/data/freeside> |
− | <Files ~ "\.(cgi|html)"> | + | ***<Files ~ "\.(cgi|html)"> |
− | AddHandler perl-script .cgi .html | + | ***AddHandler perl-script .cgi .html |
− | PerlHandler HTML::Mason | + | ***PerlHandler HTML::Mason |
− | </Files> | + | ***</Files> |
− | AuthName freeside | + | ***AuthName freeside |
− | AuthType Basic | + | ***AuthType Basic |
− | AuthUserFile /usr/local/etc/freeside/htpasswd | + | ***AuthUserFile /usr/local/etc/freeside/htpasswd |
− | Require valid-user | + | ***Require valid-user |
− | </Directory> | + | ***</Directory> |
− | <Perl> | + | ***<Perl> |
− | require "/usr/local/etc/freeside/handler.pl"; | + | ***require "/usr/local/etc/freeside/handler.pl"; |
− | </Perl> | + | ***</Perl> |
− | <Directory /usr/local/www/apache22/data/freeside/rt/NoAuth> | + | ***<Directory /usr/local/www/apache22/data/freeside/rt/NoAuth> |
− | <Limit GET POST> | + | ***<Limit GET POST> |
− | allow from all | + | ***allow from all |
− | Satisfy Any | + | ***Satisfy Any |
− | SetHandler perl-script | + | ***SetHandler perl-script |
− | PerlHandler HTML::Mason | + | ***PerlHandler HTML::Mason |
− | </Limit> | + | ***</Limit> |
− | </Directory> | + | ***</Directory> |
− | <Directory /usr/local/www/apache22/data/freeside/rt/REST/1.0/NoAuth> | + | ***<Directory /usr/local/www/apache22/data/freeside/rt/REST/1.0/NoAuth> |
− | <Limit GET POST> | + | ***<Limit GET POST> |
− | allow from all | + | ***allow from all |
− | Satisfy any | + | ***Satisfy any |
− | SetHandler perl-script | + | ***SetHandler perl-script |
− | PerlHandler HTML::Mason | + | ***PerlHandler HTML::Mason |
− | </Limit> | + | ***</Limit> |
− | </Directory> | + | ***</Directory> |
− | <DirectoryMatch "^%/usr/local/www/apache22/data/freeside/rt/.*NoAuth/images"> | + | ***<DirectoryMatch "^%/usr/local/www/apache22/data/freeside/rt/.*NoAuth/images"> |
− | SetHandler None | + | ***SetHandler None |
− | </DirectoryMatch> | + | ***</DirectoryMatch> |
− | <Directory /usr/local/www/apache22/data/freeside/rt/Ticket/Attachment> | + | ***<Directory /usr/local/www/apache22/data/freeside/rt/Ticket/Attachment> |
− | SetHandler perl-script | + | ***SetHandler perl-script |
− | PerlHandler HTML::Mason | + | ***PerlHandler HTML::Mason |
− | </Directory> | + | ***</Directory> |
− | <Directory /usr/local/www/apache22/data/freeside/rt/Search> | + | ***<Directory /usr/local/www/apache22/data/freeside/rt/Search> |
− | SetHandler perl-script | + | ***SetHandler perl-script |
− | PerlHandler HTML::Mason | + | ***PerlHandler HTML::Mason |
− | </Directory> | + | ***</Directory> |
− | c. Immediately after the LoadModules, add | + | **c. Immediately after the LoadModules, add |
− | PerlModule HTML::Mason | + | ***PerlModule HTML::Mason |
− | 20. adduser rt (password yourpasswordforrt) | + | *20. adduser rt (password yourpasswordforrt) |
− | 21. cd /home/ youruserfromstep2a /programs/freeside | + | *21. cd /home/ youruserfromstep2a /programs/freeside |
− | 22. Install & setup RT | + | *22. Install & setup RT |
− | a. Make configure-rt | + | **a. Make configure-rt |
− | b. Make create-rt | + | **b. Make create-rt |
− | c. Make install-rt | + | **c. Make install-rt |
− | 23. Set freeside to run on startup | + | *23. Set freeside to run on startup |
− | a. su root | + | **a. su root |
− | b. make install-init | + | **b. make install-init |
− | 24. Reboot | + | *24. Reboot |
− | 25. Log into Freeside | + | *25. Log into Freeside |
− | 26. Go to Ticketing main | + | *26. Go to Ticketing main |
− | 27. Go back to billing main | + | *27. Go back to billing main |
− | 28. Add employee root | + | *28. Add employee root |
− | 29. reboot | + | *29. reboot |
− | 30. log back into freeside as root | + | *30. log back into freeside as root |
− | 31. Go to ticketing main, Configuration, Global, User Rights, Give your uid superuser rights | + | *31. Go to ticketing main, Configuration, Global, User Rights, Give your uid superuser rights |
− | 32. Go back to billing main and disable the root user | + | *32. Go back to billing main and disable the root user |
Revision as of 17:32, 5 March 2007
Setting up a FreeBSD server for Freeside
- 1. Install FreeBSD. - Do the complete install from CD.
- a. Insert Freebsd CD & boot to CD
- b. Select “Custom”
- c. Select “Partition”
- d. Use “D” to Delete any existing partitions
- e. Use “C” to Create slices (this is just the drive, use one slice)
- f. Use “Q” to save & exit
- g. Select “BootMgr”
- h. Select “Label”
- i. Use “C” to create partitions
- j. Setup swap partition first (2 x RAM) – use “m” at end of number to denote mb
- k. Select “swap” as partition type
- l. Setup other partitions – mount point for OS is “/”
- m. Use “Q” to save & finish
- n. Select “Distributions”
- o. Select “All”
- p. Select “Yes”
- q. Select “Exit”
- r. Select “Media”
- s. Select “CD/DVD”
- t. Select “Commit”
- u. Select “Yes”
- v. Select “No”
- w. Select “Exit”
- x. Select “X”
- y. Select “Yes” & remove CD
- 2. Configure the server
- a. adduser “adduser” (set up a user for use later so you don’t have to log into root everytime)
- b. set root password “passwd”
- c. Edit the rc.conf in etc
- i. hostname=”boxname.your.domain”
- ii. ifconfig_fxp0=”your.ip.here netmask your.subnet.here”
- iii. defaultrouter=”your.gateway.ip.here”
- iv. inetd_enable=”YES”
- v. sshd_enable=”YES”
- vi. keyrate=”fast”
- vii. update_motd=”NO”
- viii. kern_securelevel_enable=”NO”
- ix. usbd_enable=”YES”
- x. syslogd_flags=”-s”
- xi. sendmail_enable=”NONE”
- xii. apache22_enable=”YES”
- xiii. postgresql_enable=”YES”
- d. Enable root ssh logon
- i. Edit /etc/ssh/sshd_config to allow root login by changing to yes and unremarking line
- e. “cd /etc”
- f. “vi resolv.conf”
- i. domain your.domain
- ii. nameserver your.dns.ip.here
- g. reboot
- h. portsnap fetch
- i. portsnap extract
- 3. Perl is already installed with Freebsd, use existing install (Satisfies Freeside install step 1.)
- 4. Install Apache
- a. “cd /usr/ports/www/apache22”
- b. “make && make install” (use defaults for any gui)
- c. “vi usr/local/etc/apache22/httpd.conf”
- i. Listen IP:Port
- ii. ServerAdmin youremail@yourdomain.com
- iii. ServerName your.servername:80
- iv. Reboot
- 5. Step two of Freeside install instructions almost completed, set up ssl later.
- 6. Install the cpan bundle & Apache bundle
- a. “perl –MCPAN –e shell; “
- b. type “no“
- c. “install Bundle::CPAN“ (watch error messages at end has taken as many as 7 times to get full load)
- d. “reload cpan“
- e. “install Bundle::Apache2”
- f. “quit”
- 7. Install mod_perl – first download the latest mod_perl to one of your ftp servers
- a. “mkdir /home/youruserfromstep2a/programs”
- b. “cd /home/ youruserfromstep2a /programs”
- c. “ftp yourftpserver“
- d. “cd filelocation “
- e. “bin“
- f. “get mod_perl-2.0-current.tar.gz”
- g. “quit“
- h. “tar –xvzf mod<tab>“
- i. “cd mod_perl-2.0.3“
- j. “perl Makefile.PL APACHE_SRC=/usr/ports/www/apache22\
EVERYTHING=1“ (apxs source is /usr/local/sbin/apxs)
- k. “make && make install“
- l. “/usr/local/sbin/apxs –q LIBEXECDIR“ (should be /usr/local/libexec/apache22, so line would be libexec/apache22/mod_perl.so)
- m. add to httpd.conf – LoadModule perl_module results of above/mod_perl.so (at bottom of LoadModule section)
- n. “apachectl restart“
- 8. Install OpenSSH (use defaults on GUI)
- a. “cd /usr/ports/security/openssh“
- b. “make && make install && reboot“
- 9. Install rsync: (use defaults on GUI)
- a. “cd /usr/ports/net/rsync“
- b. “make && make install && reboot“
- 10. Install Postgresql (use defaults on GUI)
- a. “cd /usr/ports/databases/postgresql81-server“
- b. “make && make install“
- c. Initialize postgresql -- “/usr/local/etc/rc.d/postgresql initdb” (you should see it build the database files needed here, if it doesn’t, then the postgresql install was bad and you need to restart the build process)
- d. Configure for OID
- i. “vi /usr/local/pgsql/data/postgresql.conf“
- ii. enable oid by changing to yes and unremarking line
- e. reboot
- 11. Install teTex
- a. “cd /usr/ports/print/teTeX”
- b. “make && make install”
- 12. Install the required perl modules (At this point I recommend two interfaces into the box. I usually use the terminal and an SSH session. If a module errors out, go to a different screen and force the install before proceeding to the next item. I’ve found the order these modules load seems to matter. You must cd to /root/.cpan/build and find the package directory and cd into it to run the manual make. First run “perl Makefile.PL”, then “make” and finally “make install”)
- a. “perl –MCPAN –e shell;”
- b. type “no”
- c. install MIME::Base64
- d. install Digest::MD5
- e. install URI
- f. install HTML::Tagset
- g. install HTML::Parser
- h. i /libnet/
- i. install (full name of latest version of libnet)
- j. install Locale::Country
- k. install Net::Whois::Raw
- l. install libwww
- m. install Bundle::LWP
- n. install Business::CreditCard
- o. i /MailTools/
- p. install (full name of latest version of mailtools)
- q. i /TimeDate/
- r. Install (full name of latest version of TimeDate)
- s. install DateManip
- t. install File::CounterFile
- u. install FreezeThaw
- v. install String::Approx
- w. install Text::Template
- x. install DBI
- y. install DBD::Pg
- z. install DBIx::DBSchema
- aa. install Net::SSH
- bb. install String::ShellQuote
- cc. i /IVAN/Net/
- dd. install (full name of latest version of NET-SCP)
- ee. install HTML::Mason (apache src is /usr/ports/www/apache22)
- ff. install Tie::IxHash
- gg. install Time::Duration
- hh. install HTML::Widgets::SelectLayers
- ii. install Storable
- jj. install Cache::Cache
- kk. install NetAddr::IP
- ll. install Chart::Base
- mm. install Crypt::PasswdMD5
- nn. install Locale::SubCountry
- oo. install JavaScript::RPC
- pp. install Frontier::RPC2
- qq. i /JWIED/Text/
- rr. install (full name of latest version of Text-CSV_X)
- ss. install Spreadsheet::WriteExcel
- tt. install IO::Stringy
- uu. install MIME::Tools
- vv. install Apache::Session
- ww. install HTML::TreeBuilder
- xx. install HTML::FormatText
- yy. install Test::Inline
- zz. install Class::ReturnValue
- aaa. install DBIx::SearchBuilder
- bbb. install Log::Dispatch
- ccc. install Locale::Maketext::Lexicon
- ddd. install Locale::Maketext::Fuzzy
- eee. install Text::Wrapper
- fff. install Time::ParseDate
- ggg. install Term::ReadKey
- hhh. install Text::Autoformat
- iii. install Text::Quoted
- jjj. install Regexp::Common
- kkk. install HTML::Scrubber
- lll. install Tree::Simple
- mmm. install JSON
- nnn. install GD
- ooo. install DateTime::Format::Strptime
- ppp. install IPC::Run3
- qqq. install Color::Scheme
- rrr. install Data::Table
- sss. install Lingua::EN::NameParse
- ttt. install Lingua::EN::Inflect
- uuu. install Apache::DBI
- vvv. install HTTP::BrowserDetect
- www. “quit”
Setting up a FreeSide server.
- 1. Get Freeside ready to install - Download the latest freeside tarball to your ftp server
- a. “cd /home/ youruserfromstep2a /programs“
- b. “ftp yourftpserver“ (log in)
- c. “cd filelocation “
- d. “bin”
- e. “get free<tab>”
- f. “get Makefile”
- g. “quit”
- h. “tar –xvzf free<tab>“
- i. “cp Makefile ./freeside/Makefile”
- j. “cd free<tab>“
- 2. adduser freeside (start with “adduser” and answer questions, pwd yourpasswdhere)
- 3. “mkdir /usr/local/www/apache22/data/freeside”
- 4. “chown freeside:www /usr/local/www/apache22/data/freeside”
- 5. Allow the freeside user full access to the freeside database
- a. su pgsql
- b. createuser –P freeside
- c. set password (yourpasswdhere)
- d. not a superuser
- e. yes to create database
- f. no to create role
- 6. Add the freeside database
- a. su freeside
- b. createdb –E sql_ascii freeside
- 7. Build and install the Perl modules
- a. Exit all the way to root
- b. make perl-modules
- c. make install-perl-modules
- 8. Create config files: “make create-config”
- 9. Edit /usr/local/etc/apache22/httpd.conf
- a. Change user & group to freeside
- 10. apachectl restart
- 11. ps –aux (make sure apache now running as freeside)
- 12. “make install-docs”
- 13. Edit the httpd.conf for freeside
- a. Edit /usr/local/etc/apache22/httpd.conf
- b. At bottom add “Include etc/apache22/Includes/”
- 14. Create the database tables and initial data
- a. su freeside
- b. freeside-setup –d your.domain
- 15. Create the Freeside system users
- a. su freeside
- b. freeside-adduser –g 1 fs_queue
- c. freeside-adduser –g 1 fs_daily
- d. freeside-adduser –g 1 fs_selfservice
- 16. Correct access_user.pm
- a. edit /usr/local/lib/perl5/site_perl/5.8.8/FS/access_user.pm
- b. change the call to $htpasswd_file to ‘/usr/local/etc/freeside/htpasswd’ instead of just ‘htpasswd’ (about line 18)
- c. change the system('htpasswd', '-b', @_, to system('/usr/local/sbin/htpasswd', '-b', @_, (about line 130)
- 17. Create one or more Freeside users
- a. su freeside
- b. freeside-adduser –g 1 yournewuser
- c. htpasswd /usr/local/etc/freeside/htpasswd yournewuser
- 18. Reboot
- 19. Get the correct httpd.conf with all the RT info
- a. Edit the /usr/local/etc/apache22/httpd.conf file
- b. Add the following near the end
- <Directory /usr/local/www/apache22/data/freeside>
- <Files ~ "\.(cgi|html)">
- AddHandler perl-script .cgi .html
- PerlHandler HTML::Mason
- </Files>
- AuthName freeside
- AuthType Basic
- AuthUserFile /usr/local/etc/freeside/htpasswd
- Require valid-user
- </Directory>
- <Perl>
- require "/usr/local/etc/freeside/handler.pl";
- </Perl>
- <Directory /usr/local/www/apache22/data/freeside/rt/NoAuth>
- <Limit GET POST>
- allow from all
- Satisfy Any
- SetHandler perl-script
- PerlHandler HTML::Mason
- </Limit>
- </Directory>
- <Directory /usr/local/www/apache22/data/freeside/rt/REST/1.0/NoAuth>
- <Limit GET POST>
- allow from all
- Satisfy any
- SetHandler perl-script
- PerlHandler HTML::Mason
- </Limit>
- </Directory>
- <DirectoryMatch "^%/usr/local/www/apache22/data/freeside/rt/.*NoAuth/images">
- SetHandler None
- </DirectoryMatch>
- <Directory /usr/local/www/apache22/data/freeside/rt/Ticket/Attachment>
- SetHandler perl-script
- PerlHandler HTML::Mason
- </Directory>
- <Directory /usr/local/www/apache22/data/freeside/rt/Search>
- SetHandler perl-script
- PerlHandler HTML::Mason
- </Directory>
- c. Immediately after the LoadModules, add
- PerlModule HTML::Mason
- 20. adduser rt (password yourpasswordforrt)
- 21. cd /home/ youruserfromstep2a /programs/freeside
- 22. Install & setup RT
- a. Make configure-rt
- b. Make create-rt
- c. Make install-rt
- 23. Set freeside to run on startup
- a. su root
- b. make install-init
- 24. Reboot
- 25. Log into Freeside
- 26. Go to Ticketing main
- 27. Go back to billing main
- 28. Add employee root
- 29. reboot
- 30. log back into freeside as root
- 31. Go to ticketing main, Configuration, Global, User Rights, Give your uid superuser rights
- 32. Go back to billing main and disable the root user