Freeside:1.7:Documentation:InstallingOnFreeBSD
From Freeside
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.) However, make sure you're running Perl v5.8.8 'perl -v' otherwise you'll have some syntax errors later on.
- 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. install Text::CSV_XS
- rr. install Spreadsheet::WriteExcel
- ss. install IO::Stringy
- tt. install MIME::Tools
- uu. install Apache::Session
- vv. install HTML::TreeBuilder
- ww. install HTML::FormatText
- xx. install Test::Inline
- yy. install Class::ReturnValue
- zz. install DBIx::SearchBuilder
- aaa. install Log::Dispatch
- bbb. install Locale::Maketext::Lexicon
- ccc. install Locale::Maketext::Fuzzy
- ddd. install Text::Wrapper
- eee. install Time::ParseDate
- fff. install Term::ReadKey
- ggg. install Text::Autoformat
- hhh. install Text::Quoted
- iii. install Regexp::Common
- jjj. install HTML::Scrubber
- kkk. install Tree::Simple
- lll. install JSON
- mmm. install GD
- nnn. install DateTime::Format::Strptime
- ooo. install IPC::Run3
- ppp. install Color::Scheme
- qqq. install Data::Table
- rrr. install Lingua::EN::NameParse
- sss. install Lingua::EN::Inflect
- ttt. install Apache::DBI
- uuu. install HTTP::BrowserDetect
- vvv. “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