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

From Freeside
Jump to: navigation, search
m (Reverted edits by GkgPq4 (Talk); changed back to last version by Mrunkel)
m
Line 4: Line 4:
 
: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
 
 
::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. 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
 

Revision as of 11:41, 4 June 2007

Setting up a FreeBSD server for Freeside


1. Install FreeBSD. - Do the complete install from CD.
a. Insert Freebsd CD