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

From Freeside
Jump to: navigation, search
Line 4: Line 4:
 
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”
Line 67: Line 67:
  
 
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, will 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”
 +
 +
  
  
 
Setting up a FreeSide server.
 
Setting up a FreeSide server.
 +
  
 
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
</nowiki>
 

Revision as of 17:47, 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