Part 1 - Installing MySQL Server 5 with FreeBSD Ports Collection
1、Login to the FreeBSD system as root, or su - root to get to super user environment.
2、Enter the following commands at FreeBSD command line interface (CLI) (Wait till each command to finish processing before running the next command):
cd /usr/ports/databases/mysql50-server #进入ports
make install clean #安装,安装过程中自动建立mysql组和用户
mysql_install_db #初始化
chown -R mysql /var/db/mysql/ #分配权限
chgrp -R mysql /var/db/mysql/ #分配权限
/usr/local/bin/mysqld_safe -user=mysql & #启动mysql
Note: If you encounter Command not found error, use command rehash to update OS path environment variables
3、The port installation will put a script file mysql-server.sh in /usr/local/etc/rc.d which will has capability to start MySQL server. To enable MySQL server to start automatically after every FreeBSD server reboot, enter the following command in CLI:
echo ‘mysql_enable=”YES”‘ >> /etc/ rc.conf
4、By default, MySQL default super user account - root - has no password (blank password). So it’s important to assign the administrator account password. To change the password to root user, enter the following command:
mysqladmin -u root password newpassword
Replace newpassword with your own desired password.
5、Optionally, copy either my-huge.cnf, my-large.cnf, my-medim.cnf, my-small.cnf or my-innodb-heavy-4G.cnf (depending on the usage and utilization of MySQL server) as my.cnf to /var/db/mysql which will enable you to tweak and change the configuration of server-specific MySQL server options by editing the file.
Part 2 - Installing Apache HTTPD Web Server 2.2
1、Install Apache HTTP Server 2.20 by using FreeBSD Ports Collection:
cd /usr/ports/www/apache22
make install clean
2、A Apache HTTP Server script apache22.sh is located at /usr/local/etc/rc.d to provide Apache HTTP Server start and shutdown service. To enable Apache web server to automatically starts whenever after server reboots, issue the following command at CLI:
echo ‘apache22_enable =”YES”‘ >> /etc/ rc.conf
3、To start Apache HTTP web server immediately, use:
rehash
apachectl start
or
/usr/local/etc/rc.d/apache22.sh start
4、When Apache web server is starting up in FreeBSD system, Apache loads succcessfully and web server functioning properly, but the following warning error occurs:
[warn] (2)No such file or directory:
Failed to enable the ‘httpready’ Accept Filter
The resolution to the above problem is to a accf_http module, which function is to buffer incoming connections until a certain complete HTTP requests arrive, into FreeBSD kernel by using kernel linker:
kldload accf_http
To permanently load enable HTTP Accept Filter FreeBSD kernel module (accf_http), add the following line into /boot/loader.conf:
accf_http_load=”YES”
Note: The default settings is located in /boot/defaults/loader.cnf. To see the related settings about accf, use:
grep accf /boot/defaults/loader.conf
which will returns:
accf_data_load=”NO” # Wait for data accept filter
accf_http_load=”NO” # Wait for full HTTP request accept filter
Part 3 - Installing PHP Hypertext Preprocessor Scripting Language 5 and PHP 5 Extensions
1、Install by enter the following commands on FreeBSD OS command line, wait for previous command to finish before running the next command:
cd /usr/ports/lang/php5
make install clean
2、If you’re prompted, select “use Apache 2.x instead”.
3、Continue with the following commands to install PHP5 extensions and modules to enable the support of the modules in Apache:
cd /usr/ports/lang/php5-extensions
make config
4、At Options for php5-extension 1.0 menu, select all PHP extensions and modules that you may use with Apache webserver. This is a part of the configuration for PHP, where you need to enable features of PHP that come in modules, such as ability to manage user sessions, interface with databases and many others. Default extensions such as ctype functions support, HASH Message Digest Framework support, session support and etc have been selected. Other popular extensions that you most likely to be in used are MySQL database support and GD library support. Use space bar to select or unselect the extensions and press Enter when done.
5、Continue the installation of php5-extensions with the following commands:
make install clean
6、If there are any message the pops up and prompts you to select some options or configurations, you can just accept the default settings by pressing Enter. Some modules that may prompt you for action include php5-gd, php5-mbstring and php5-sqlite.
7、Edit the Apache configuration file in order to enable Apache web server to load the PHP modules when initialization:
1、Go to Apache configuration file location by cd /usr/local/etc/apache2/
2、Edit Apache configuration file by vi httpd.conf
3、Search for LoadModule lines, after the last LoadModule line, but within the same section, add the following 2 lines:
AddType application/x- httpd-php .php
AddType application/x- httpd-php-source .phps
8、Optionally, copy /usr/local/etc/php.ini-recommended or /usr/local/etc/php.ini-dist to /usr/local/etc/php.ini (in same directory), which will enable you to tune and change the default settings of behaviours of PHP.
9、Start the Apache HTTP web server by using apachectl start (or restart Apache HTTP web server by using apachectl restart). apachectl is located in /usr/local/sbin, if you encounter Command not found problem, try to change directory to its location.
A web server has been setup with the FreeBSD with Apache, MySQL and PHP. The document root of the web server (where you should put your HTML and PHP files is at /usr/local/www/apache22/data/ and you will need a SecureFTP (SFTP) client such as WinSCP to upload your files to web server