Date: Thu, 9 Nov 2006 10:56:32 -0500 From: Jerry McAllister <jerrymc@msu.edu> To: VeeJay <maanjee@gmail.com> Cc: freebsd-questions@freebsd.org Subject: Re: HELP! Installation Questions Message-ID: <20061109155632.GA82382@gizmo.acns.msu.edu> In-Reply-To: <2cd0a0da0611082139g7a529a61x76db1c52638fdec9@mail.gmail.com> References: <2cd0a0da0611082139g7a529a61x76db1c52638fdec9@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Nov 09, 2006 at 06:39:50AM +0100, VeeJay wrote: > Hello There, > > I wonder if someone from you could spare few minutes and share your > knowledge with me. > > I love FreeBSD and use it time to time but I think I am still novice. > > I have got an assignment to build a Multi-Task web server. > > GOALS: > A Multi Task Web Server for Virtual Hosting running Apache, MySQL, ProFTP, > Mail Program, etc. All on this server. Traffic expected 100,000 visits a > day. > > .Ideal Space required for MySQL DBs: 140GB. > (Contents: Many MySQL databases backing name based virtual websites) > > .Ideal Space required for Virtual Hosted Websites: 140GB > (Contents: HTML, PHP, Images, Mail, Logs, Sites Backups, etc) > > Maximum space required for SWAP to get high performance. > > > HARDWARE: > 1 dell rack server with: > 2 x Dual Core Intel(r) Xeon(r) 5160, 4MB Cache, 3.0GHz, 1333FSB > 4 GB FB 533MHz Memory (4x1GB dual rank DIMMs) > 4 x 146GB, SAS, 3.5-inch, 15.000 rpm Hard Drives (hot plug) > RAID 10 using PERC 5/i, x6 Backplane, Integrated RAID Controller Card > Intel(r) PRO 1000PT Dual Port Server Adapter, Gigabit NIC, Cu, PCIe x4 > etc. > > > Questions: > 1. Which Version of FreeBSD will be the best choice and would be 32bit or > 64bit? You want the latest RELEASE version - currently 6.1, soon to be 6.2 They use the ISO built for your CPU - looks like i386. > > 2. How can I get required Space when doing partition during installation? > You just divide up your disk the way you want it. If the disk is too small, you have to add more disk. databases tend to be put in /var/db by default, so if you must have 140 GB database size, then you need a /var of more than 140 GB. web pages tend to be homed in with /usr/local or /home, but can be configured to be anywhere. For the system main web page, I tend to make a 'www' account whose home is /home/www and then for all the virtual hosted sites, make a separate account for each and put them in /home/ such as /home/web1 /home/web2, etc (use more meaningful account names). Then in httpd.conf or an included httpd.conf.local make a virtual host block for each and set each-s DocumentRoot to be that accounts home directory + www (or web) as in /home/web1/www. So, then make the filesystem where you put that stuff big enough - greater than 140 GB according to your post. In reality, to get 140 GB, you need to go almost 15% over because of overhead used up in building the filesystem and the amount of reserve for the amount of reserve for the system. So, given your post, you would need 155 GB for both the /var and the /home file systems. NOTE, that is system GB and not manufacturer rated GB. It would take about a 167 GB drive according to manufacturer rating to net 140 GB of usable disk space after building the file systems. An easier, or at least more flexible way to deal with it is to get a very large second disk - about 340 GB - and make one big file system on it. I tend to either mount it as my /home filesystem or as /work. Then move your /var/db and /home or whatever to there and make symlinks to them. If you create that big file system and mount it as /home, then you just leave that as is and move the /var/db directory in to it and make the symlink. I tend to use names for the moved directories that reveal their origins. So, for /var/db, I would call the dir in /home var.db (eg full path would be /home/var.db) and then within the /var directory would make the link as follows: 'ln -s /home/var.db db' Of course, that has to be done after moving that 'db' directory to /home. All this is well documented. It is all very copiously covered in previous posts to questions and in FAQs and online magazing articles. So you need to do a lot more studying. > 3. What would be ideal SWAP space to get performance? Rule of thumb is 2-1/4 times the amount of memory on the machine. But you can get by with less, if you must. > 4. Which Mail Program is secure and easy to configure for Virtual Hosting? All of them are if you follow the documentation. People have their favorites and get in to religious wars over them, but generally they all can be made secure and made to do what you need. > 5. What is the flow of installation when preparing a machine for Virtual > Hosting? I mean which program should be installed first and how should they > setup (apache, ftp, mysql, mail) to talk with each other for a specific > virtual name-based host? Just install the system, including full src and ports tree. Then cvsup to the RELENG you are installing to get all the latest security fixes. For 6.1 that would be RELENG_6_1 Contents of you supfile should be: *default host=cvsup.FreeBSD.org *default base=/var/db *default prefix=/usr *default tag=RELENG_6_1 *default release=cvs *default delete use-rel-suffix *default compress src-all ports-all tag=. doc-all tag=. you can put that file anywheres. I tend to put it in /etc and name it with the version, so mine for 6.1 is: /etc/supfile61 The cvsup command would look like: cvsup -g -L 2 /etc/supfile61 Add 'SUPFILE=/etc/supfile61 to the /etc/make.conf file. Check your /etc/passwd and /etc/group files against those in /usr/src/etc to see if there any new or changed entries you need to accomodate. Run the builds under script to capture output script /root/buildworkd.out (you can put that file anywhere actually) cd /usr/src make buildworld make buildkernel KERNCONF=GENERIC (or your own custom conf if you made one) make installkernel KNERCONF=GENERIC reboot to single user fsck -p mount -u / mount -a swapon -a cd /usr/src make installworld mergemaster -cv then reboot to full system Make sure things are running OK and then install ports cd /usr/ports/www/apache22 make clean [make configure] make make install For all the ports you plan to put in. Set up configuration files for apache and virtual hosts and MySQL and whatever. Add accounts and web sites and whatever relax and enjoy. ////jerry > > > -- > Thanks! > > BR / vj > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061109155632.GA82382>