
FreeBSD是一款类UNIX操作系统,就像Linux一样,也是开源操作系统。与Linux不同的是,FreeBSD是完整的操作系统,包含独立内核和应用软件。FreeBSD以其超凡的稳定性以及卓越的安全性著称,在服务器领域占据一席之地。本教程将详细讲解如何使用FreeBSD 11搭建FAMP(FreeBSD Apache MariaDB PHP)环境。
1] 安装FreeBSD 11发行版
首先,安装FreeBSD 11,这个对于VPS来说相对容易,在服务商的主机操作系统选择页面选择就是了,当然也可以使用虚拟环境安装虚拟机。总之,具有可以使用的FreeBSD 11主机即可。安装完成后,可以使用如下命令查看一下发行版的具体信息:
root@freebsd:~ # uname -a FreeBSD freebsd 11.2-RELEASE FreeBSD 11.2-RELEASE #0 r335510: Fri Jun 22 04:32:14 UTC 2018 root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 root@freebsd:~ #
2] 安装Apache 2.4
FreeBSD同样提供了软件包安装工具”pkg”,使用这个工具安装软件,可以有效的避免很多软件包依赖性问题。Apache这款软件当然可以采用pkg方式安装。
root@freebsd:~ # pkg install apache24
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-1.10.5_5...
Extracting pkg-1.10.5_5: 100%
Updating FreeBSD repository catalogue...
pkg: Repository FreeBSD load error: access repo file(/var/db/pkg/repo-FreeBSD.sqlite) failed: No such file or directory
Fetching meta.txz: 100% 944 B 0.9kB/s 00:01
Fetching packagesite.txz: 100% 6 MiB 3.4MB/s 00:02
Processing entries: 100%
FreeBSD repository update completed. 32577 packages processed.
All repositories are up to date.
Updating database digests format: 100%
The following 12 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
apache24: 2.4.35
libnghttp2: 1.33.0
libxml2: 2.9.7
expat: 2.2.6_1
perl5: 5.26.2
pcre: 8.42
apr: 1.6.3.1.6.1_1
gdbm: 1.13_1
indexinfo: 0.3.1
readline: 7.0.3_1
gettext-runtime: 0.19.8.1_1
db5: 5.3.28_7
Number of packages to be installed: 12
The process will require 146 MiB more space.
34 MiB to be downloaded.
Proceed with this action? [y/N]:
输入”y”键确认安装。安装完成后,在”/etc/rc.conf”文件中添加如下内容,将Apache设置为开机自动运行:
apache24_enable="yes"
启动Apache24服务器:
root@freebsd:~ # service apache24 start Performing sanity check on apache24 configuration: AH00557: httpd: apr_sockaddr_info_get() failed for freebsd AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message Syntax OK Starting apache24. AH00557: httpd: apr_sockaddr_info_get() failed for freebsd AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message root@freebsd:~ #
在FreeBSD系统中,Apache的配置文件为”/usr/local/etc/apache24/httpd.conf”;默认文档根目录为”/usr/local/www/apache24/data”。现在,就可以通过浏览器访问主机的IP地址(http://IP),验证Apache是否安装成功。我的主机IP地址为”192.168.1.211″,浏览器访问后若显示如下内容,则表示Apache 24 安装成功。

图.1 验证FreeBSD系统Apache服务
3] 安装MariaDB
由于Oracle有心将MySQL闭源化,所以建议采用其替代软件MariaDB作为数据库服务器。首先,查看一下FreeBSD 11系统可以安装的MariaDB发行版信息:
root@freebsd:~ # pkg search mariadb mariadb-connector-c-3.0.6 MariaDB database connector for C mariadb-connector-odbc-3.0.3 MariaDB database connector for odbc mariadb100-client-10.0.36_2 Multithreaded SQL database (client) mariadb100-server-10.0.36_2 Multithreaded SQL database (server) mariadb101-client-10.1.35_1 Multithreaded SQL database (client) mariadb101-server-10.1.35_1 Multithreaded SQL database (server) mariadb102-client-10.2.17 Multithreaded SQL database (client) mariadb102-server-10.2.17 Multithreaded SQL database (server) mariadb103-client-10.3.10_1 Multithreaded SQL database (client) mariadb103-server-10.3.10_1 Multithreaded SQL database (server) mariadb55-client-5.5.62 Multithreaded SQL database (client) mariadb55-server-5.5.62 Multithreaded SQL database (server) root@freebsd:~ #
现在,安装MariaDB的最新版,注意服务器和客户端软件都要安装:
root@freebsd:~ # pkg install mariadb103-server mariadb103-client
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 8 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
mariadb103-server: 10.3.10_1
mariadb103-client: 10.3.10_1
libedit: 3.1.20170329_2,1
unixODBC: 2.3.7
galera: 25.3.24
boost-libs: 1.68.0_1
icu: 62.1_2,1
libiconv: 1.14_11
Number of packages to be installed: 8
The process will require 452 MiB more space.
54 MiB to be downloaded.
Proceed with this action? [y/N]:
同样,输入”y”进入安装,安装成功后将以下内容添加到”/etc/rc.conf”文件中,以便MariaDB可以开机启动:
mysql_enable="yes"
MariaDB的默认配置文件为”/usr/local/etc/my.cnf”,安装完成后,启动MariaDB数据库,使用之后两条命令中的任意一条修改root用户密码,提高数据库安全性:
root@freebsd:~ #service mysql-server start root@freebsd:~ #'/usr/local/bin/mysqladmin' -u root password 'new-password' OR root@freebsd:~ #' '/usr/local/bin/mysql_secure_installation''
密码设置好后,可以登录数据库并查看相应信息,以确认MariaDB安装成功:
root@freebsd:~ # mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 16 Server version: 10.3.10-MariaDB FreeBSD Ports Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.001 sec) MariaDB [(none)]>
4] 安装PHP 7
FreeBSD 11安装PHP同样可以采用pkg方式,目前最新的发行版为PHP 7.2.10,使用如下命令安装PHP 7.2和mysqli扩展:
root@freebsd:~ #pkg install mod_php72 php72-mysqli
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 4 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
mod_php72: 7.2.10
php72-mysqli: 7.2.10
libargon2: 20171227_1
php72: 7.2.10
Number of packages to be installed: 4
The process will require 29 MiB more space.
5 MiB to be downloaded.
Proceed with this action? [y/N]:
安装完成后,使用如下命令为PHP 7添加配置文件:
root@freebsd:~ # ls /usr/local/etc/php.* /usr/local/etc/php.conf /usr/local/etc/php.ini-production /usr/local/etc/php.ini-development root@freebsd:~ # cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini
采用pkg方式安装的PHP 7作为Apache的一个模块存在,要使用PHP,则需要对Apache的配置文件”/usr/local/etc/apache24/httpd.conf”进行配置。注意配置文件中确实具有如下内容,如果没有,则在相应位置手动添加即可:
LoadModule php7_module libexec/apache24/libphp7.so <IfModule> AddType application/x-httpd-php .php </IfModule>
同样,还需要为”.php”文件设置默认:
<IfModule dir_module> DirectoryIndex index.php index.html</IfModule>
最后,按照PHP模块的提示,在配置文件最后添加如下内容:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
配置文件修改完成后,使用以下命令进行检验,遇到问题的话就根据提示信息修改,如果提示”OK”,则说明没有错误,可以使用PHP:
root@freebsd:~ # httpd -t AH00557: httpd: apr_sockaddr_info_get() failed for freebsd AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message Syntax OK root@freebsd:~ #
Apache配置正确后,可以向其默认根目录添加”info.php”文件,以验证PHP 7是否安装成功:
root@freebsd:~ # echo '<?php phpinfo() ; ?>' > /usr/local/www/apache24/data/info.php
最后重新启动Apache服务器,用浏览器访问”info.php”文件,不出意外的话,会见到如下页面:

图.2 FreeBSD系统PHP 7.2.10信息页面
至此,FAMP运行环境就全部搭建完成,使用起来同LAMP类似,有兴趣的小伙伴们不妨尝试一下超级稳定的FAMP环境。