Freeside:1.7:Documentation:InstallingOnFreeBSD
Setting up a FreeBSD server for Freeside
1. Install FreeBSD. - Do the complete install from CD.
<tab>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, will 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
</nowiki>