Difference between revisions of "Freeside:1.7:Documentation:InstallingOnFreeBSD"

From Freeside
Jump to: navigation, search
(reverting spam)
 
(30 intermediate revisions by 16 users not shown)
Line 1: Line 1:
Setting up a FreeBSD server for Freeside
+
'''Setting up a FreeBSD server for Freeside'''
  
  
1. Install FreeBSD.  -  Do the complete install from CD.
+
:1. Install FreeBSD.  -  Do the complete install from CD.
  
<tab>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”
 
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
+
:::iv. inetd_enable=”YES”
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
+
:::v. sshd_enable=”YES”
h. portsnap fetch
+
 
i. portsnap extract
+
:::vi. keyrate=”fast”
3. Perl is already installed with Freebsd, use existing install (Satisfies Freeside install step 1.)
+
 
4. Install Apache
+
:::vii. update_motd=”NO”
a. “cd /usr/ports/www/apache22”
+
 
b. “make && make install” (use defaults for any gui)
+
:::viii. kern_securelevel_enable=”NO”
c. “vi  usr/local/etc/apache22/httpd.conf”
+
 
i. Listen IP:Port  
+
:::ix. usbd_enable=”YES”
ii. ServerAdmin youremail@yourdomain.com
+
 
iii. ServerName your.servername:80
+
:::x. syslogd_flags=”-s”
iv. Reboot
+
 
5. Step two of Freeside install instructions almost completed, will set up ssl later
+
:::xi. sendmail_enable=”NONE”
6. Install the cpan bundle & Apache bundle
+
 
a. “perl –MCPAN –e shell; “
+
:::xii. apache22_enable=”YES”
b. type “no“
+
 
c. “install Bundle::CPAN“ (watch error messages at end has taken as many as 7 times to get full load)
+
:::xiii. postgresql_enable=”YES”
d. “reload cpan“
+
 
e. “install Bundle::Apache2”
+
 
f. “quit”
+
::d. Enable root ssh logon
7. Install mod_perl – first download the latest mod_perl to one of your ftp servers
+
 
a. “mkdir /home/youruserfromstep2a/programs”
+
::i. Edit /etc/ssh/sshd_config to allow root login by changing to yes and unremarking line
b. “cd  /home/ youruserfromstep2a /programs”
+
 
c. “ftp yourftpserver“
+
::e. “cd /etc”
d. “cd filelocation “
+
 
e. “bin“
+
::f. “vi resolv.conf”
f. “get mod_perl-2.0-current.tar.gz”
+
 
g. “quit“
+
:::i. domain your.domain
h. “tar –xvzf mod<tab>“
+
 
i. “cd mod_perl-2.0.3“
+
:::ii. nameserver your.dns.ip.here
j. “perl Makefile.PL APACHE_SRC=/usr/ports/www/apache22\
+
 
 +
 
 +
::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)
 
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
+
::k. “make && make install“
a. “cd /usr/ports/print/teTeX”
+
 
b. “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)
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;”
+
::m. add to httpd.conf – LoadModule perl_module results of above/mod_perl.so (at bottom of LoadModule section)
b. type “no”
+
 
c. install MIME::Base64
+
::n. “apachectl restart“
d. install Digest::MD5
+
 
e. install URI
+
:8. Install OpenSSH (use defaults on GUI)
f. install HTML::Tagset
+
 
g. install HTML::Parser
+
::a. “cd /usr/ports/security/openssh“
h. i /libnet/
+
 
i. install (full name of latest version of libnet)
+
::b. “make && make install && reboot“
j. install Locale::Country
+
 
k. install Net::Whois::Raw
+
:9. Install rsync: (use defaults on GUI)
l. install libwww  
+
 
m. install Bundle::LWP
+
::a. “cd /usr/ports/net/rsync“
n. install Business::CreditCard
+
 
o. i /MailTools/
+
::b. “make && make install && reboot“
p. install (full name of latest version of mailtools)
+
 
q. i /TimeDate/
+
:10. Install Postgresql (use defaults on GUI)
r. Install (full name of latest version of TimeDate)
+
 
s. install DateManip
+
::a. “cd /usr/ports/databases/postgresql81-server“
t. install File::CounterFile
+
 
u. install FreezeThaw
+
::b. “make && make install“
v. install String::Approx
+
 
w. install Text::Template
+
::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)
x. install DBI
+
 
y. install DBD::Pg
+
::d. Configure for OID
z. install DBIx::DBSchema
+
 
aa. install Net::SSH
+
:::i. “vi /usr/local/pgsql/data/postgresql.conf“
bb. install String::ShellQuote
+
 
cc. i /IVAN/Net/
+
:::ii. enable oid by changing to yes and unremarking line
dd. install (full name of latest version of NET-SCP)
+
 
ee. install HTML::Mason (apache src is /usr/ports/www/apache22)
+
::e. reboot
ff. install Tie::IxHash
+
 
gg. install Time::Duration
+
 
hh. install HTML::Widgets::SelectLayers
+
:11. Install teTex
ii. install Storable
+
 
jj. install Cache::Cache
+
::a. “cd /usr/ports/print/teTeX”
kk. install NetAddr::IP
+
 
ll. install Chart::Base
+
::b. “make && make install”
mm. install Crypt::PasswdMD5
+
 
nn. install Locale::SubCountry
+
: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”)
oo. install JavaScript::RPC
+
 
pp. install Frontier::RPC2
+
::a. “perl –MCPAN –e shell;”
qq. i /JWIED/Text/
+
 
rr. install (full name of latest version of Text-CSV_X)
+
::b. type “no”
ss. install Spreadsheet::WriteExcel
+
 
tt. install IO::Stringy
+
::c. install MIME::Base64
uu. install MIME::Tools
+
 
vv. install Apache::Session  
+
::d. install Digest::MD5
ww. install  HTML::TreeBuilder
+
 
xx. install HTML::FormatText
+
::e. install URI
yy. install Test::Inline
+
 
zz. install Class::ReturnValue
+
::f. install HTML::Tagset
aaa. install DBIx::SearchBuilder
+
 
bbb. install Log::Dispatch
+
::g. install HTML::Parser
ccc. install Locale::Maketext::Lexicon
+
 
ddd. install Locale::Maketext::Fuzzy
+
::h. i /libnet/
eee. install Text::Wrapper
+
 
fff. install Time::ParseDate
+
::i. install (full name of latest version of libnet)
ggg. install Term::ReadKey
+
 
hhh. install Text::Autoformat
+
::j. install Locale::Country
iii. install Text::Quoted
+
 
jjj. install Regexp::Common
+
::k. install Net::Whois::Raw
kkk. install HTML::Scrubber
+
 
lll. install Tree::Simple
+
::l. install libwww  
mmm. install JSON
+
 
nnn. install GD
+
::m. install Bundle::LWP
ooo. install DateTime::Format::Strptime
+
 
ppp. install IPC::Run3
+
::n. install Business::CreditCard
qqq. install Color::Scheme
+
 
rrr. install Data::Table
+
::o. i /MailTools/
sss. install Lingua::EN::NameParse
+
 
ttt. install Lingua::EN::Inflect
+
::p. install (full name of latest version of mailtools)
uuu. install Apache::DBI
+
 
vvv. install HTTP::BrowserDetect
+
::q. i /TimeDate/
www. “quit”
+
 
 +
::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
  
Setting up a FreeSide server.
+
:22. Install & setup RT
  
1. Get Freeside ready to install  -  Download the latest freeside tarball to your ftp server
+
::a. Make configure-rt
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
+
::b. Make create-rt
a. su freeside
 
b. freeside-setup –d your.domain
 
  
 +
::c. Make install-rt
  
15. Create the Freeside system users
+
:23. Set freeside to run on startup
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
+
::a. su root
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>
+
::b. make install-init
<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>
+
:24. Reboot
<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">
+
:25. Log into Freeside
SetHandler None
 
</DirectoryMatch>
 
  
<Directory /usr/local/www/apache22/data/freeside/rt/Ticket/Attachment>
+
:26. Go to Ticketing main
SetHandler perl-script
 
PerlHandler HTML::Mason
 
</Directory>
 
  
<Directory /usr/local/www/apache22/data/freeside/rt/Search>
+
:27. Go back to billing main
SetHandler perl-script
 
PerlHandler HTML::Mason
 
</Directory>
 
  
 +
:28. Add employee root
  
c. Immediately after  the LoadModules, add
+
:29. reboot
  
PerlModule HTML::Mason
+
:30. log back into freeside as root
  
 +
:31. Go to ticketing main, Configuration, Global, User Rights, Give your uid superuser rights
  
20. adduser rt (password yourpasswordforrt)
+
:32. Go back to billing main and disable the root user
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>
 

Latest revision as of 17:06, 25 July 2009

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