IP Address: 54.147.142.16



FreeBSD是一款开源的类Unix操作系统,由于其优异的网络性能被广大企业用户所采用。同Linux系统不同的是,FreeBSD是一款完全意义上的操作系统,拥有独立的内核和相应的应用软件。经过权威测试发现,Linux系统在桌面应用表现出色,而FreeBSD更加适合用于服务器应用。

本教程将详细演示如何在FreeBSD系统安装Nginx、MariaDB和PHP软件搭建FEMP环境,其中FreeBSD采用最新的发行版 11.x 版。

步骤1 FreeBSD安装Nginx

FEMP环境最先安装的就是web服务器,这里采用性能卓越的Nginx。在FreeBSD 11.x的PORTS软件库中有众多Nginx的预编译软件包,我们可以从PORTS软件库中方便得到Nginx的二进制版本。使用如下命令查看PORTS软件库的Nginx信息:

# ls /usr/ports/www/ | grep nginx
# pkg search -o nginx

可以看到,PORTS软件库中包含有Nginx的预编译版本,于是可以使用以下命令进行安装:

# pkg install nginx

命令执行后,系统会询问是否安装Nginx,输入”y”后进行安装:

Nginx安装成功后,使用如下命令将Nginx守护进程设置为开机启动,并将Nginx服务器启动。

# sysrc nginx_enable="yes"
# service nginx start

web服务器启动之后,就可以使用以下命令查看Nginx侦听的端口:

# sockstat -4 | grep nginx

可以看到,Nginx进程已经侦听了80端口。现在就可以通过浏览器访问VPS的地址或者访问相应的域名,来验证Nginx是否正确启动,当看到如下页面时,就表示Nginx已经在FreeBSD系统安装成功,这里我已经给VPS预先设置好域名”my.daehub.com”:

FreeBSD预编译Nginx默认的webroot目录为”/usr/local/www/nginx/”,而默认的配置文件路径为”/usr/local/etc/nginx/nginx.conf”,配置Nginx的方式同其它系统类似。

由于之前使用的都是CentOS系统,所以比较习惯将Ningx的http配置同虚拟服务器分离的方式,并且习惯将用户设置为nginx,以提升安全性。修改”nginx.conf”配置文件为如下内容:

user  nginx;
worker_processes  1;

# This default error log path is compiled-in to make sure configuration parsing
# errors are logged somewhere, especially during unattended boot when stderr
# isn't normally logged anywhere. This path will be touched on every nginx
# start regardless of error log location configured here. See
# https://trac.nginx.org/nginx/ticket/147 for more info. 
#
error_log  /var/log/nginx/error.log;
#

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    client_max_body_size 20m;

    include /usr/local/etc/nginx/conf.d/*.conf;
}

为了保证Nginx可以按以上的配置正常运行,需要做如下准备工作:

# pw groupadd nginx
# pw useradd -n nginx -g nginx -m -s /bin/nologin
# touch /var/log/nginx/error.log
# touch /var/run/nginx.pid
# touch /var/log/nginx/access.log

然后就创建相应目录和”server”配置块:

# mkdir /usr/local/etc/nginx/conf.d
# touch /usr/local/etc/nginx/conf.d/default.conf

之后就可以编辑”default.conf”为如下内容来创建一个虚拟服务器:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/local/www/nginx;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }
}

之后,如果需要添加虚拟服务器,则在此目录中添加配置文件即可。

步骤2 FreeBSD安装MariaDB

MariaDB/MySQL是最为常用的开源关系型数据库管理系统,通常部署于动态网站同Nginx配合使用。这么出名的数据库FreeBSD怎么可以没有呢,查看PORTS软件库,可以找到很多 MariaDB/MySQL 的发行版。

# ls -al /usr/ports/databases/ | grep mariadb
# pkg search mariadb

之后就可以使用如下命令安装MariaDB的最新发行版:

# pkg install mariadb102-server

安装完成后,使用如下命令将MariaDB设置成为开机自启动,并进行相关安全配置:

# sysrc mysql_enable="YES" 
# service mysql-server start
# /usr/local/bin/mysql_secure_installation

运行完第三条命令后,可以根据提示设置”root”用户密码、删除匿名用户、删除”test数据库”以及关闭”root”用户远程访问权限,最后重新载入权限表令设置生效。

验证MaraiaDB启动成功也很容易,直接使用如下命令登录一下数据库就可以了,登录成功的话就查看一下当前的数据库:

# mysql -u root -p
MariaDB [(none)]>SHOW DATABASES;

示意图如下:

步骤3 FreeBSD安装PHP及扩展

FressBSD系统安装PHP可以采用PORTS软件库方式,也可以采用源代码方式安装。源代码方式安装PHP同Linux平台下安装类似,可以安装最新的PHP版本,并且可以个性化配置,这里演示如何采用源代码方式安装PHP 7。

PHP目前主流分为5系和7系两个系列,虽然7系列号称性能是5系列的数倍,但是5系还占有很大的份额。选择FreeBSD平台就是为了网络服务性能,所以当然选择PHP 7系列作为网站平台。

首先下载PHP 7.2.7的压缩包,然后进行源代码安装:

# wget http://am1.php.net/distributions/php-7.2.7.tar.gz
# tar -zxvf php-7.2.7.tar.gz
# cd php-7.2.7
# ./configure --enable-fpm --with-zlib --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
# make && make install
# cp php.ini-development /usr/local/php/php.ini
# cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
# cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
# cp sapi/fpm/php-fpm /usr/local/bin

注意将php-fpm.conf中”include=NONE/etc/php-fpm.d/*.conf”修改为”include=/usr/local/etc/php-fpm.d/*.conf”,并将www.conf中的内容进行如下修改:

user = nginx
group = nginx

如果”php-fpm”可以正常启动的话,就表示PHP安装成功了。现在要做的当然就是配置Nginx,令其支持PHP,这些内容同Linux系统区别不大,可以参照之前的文章《腾讯VPS搭建LNMP系统部署WordPress网站》进行相关配置。

一切配置完成后,就可以在虚拟服务器的根目录创建一个phpinfo.php文件,通过浏览器来访问看PHP是否同Nginx协同工作。一切正常的话会显示如下页面:

至此,FEMP环境就搭建完成了。当然,搭建完成后还需要做很多优化,比如安装PHP扩展、管理数据库账户以及向Nginx添加更多网站等。这些操作这里就不再过多讲解,因为主要操作同Linux系统没有区别。

发表评论

电子邮件地址不会被公开。 必填项已用*标注