Install NGINX and PHP on FreeBSD 12

前言

对于经常需要搭建网站,对网站进行操作的人来说, 使用 FreeBSD 平台可能会方便使用一些。这里就以 FreeBSD 12 系统来讲解下环境的搭建。

Nginx Install

首先,则是安装 nginx

sudo pkg update && pkg install nginx

安装完成之后运行如下命令查看效果:

sudo service nginx onestart

之后在浏览器访问服务器 IP 地址可以看到如下信息:

nginx info

至此,成功安装 nginx

PHP Install

对于 FreeBSD 的话,有很多的版本可以选择,这也是一个成熟的系统所提供的便捷的地方之处。通过运行如下命令查看系统镜像源都提供哪些版本:

pkg search php | grep -e "^php[0-9].-[0-9]"

如图所示: php version

这里为了方便就使用了 php73 版本。

sudo pkg install php73

配置文件

安装完成之后,就是我们的两个软件联动了。这里就需要配置 nginx 以接入 php

首先,创建 php 的配置文件: php.ini

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

之后启动 php-fpm

sudo service php-fpm onestart

启动完成后,运行如下命令查看运行结果:

sudo sockstat -l

可以看到 php-fpm 在运行,并且运行绑定地址在本地地址的 9000 端口。 sockstat

这个时候呢,就知道我们下一步应该把 nginx 得到的 php 请求发送到本地的 9000 端口了。 之后配置 nginx 。修改文件: /usr/local/etc/nginx/nginx.conf 首先,修改根目录字段,使得 nginx 首页支持 php 文件。在 index 字段,加入 index.phpnginx conf

之后修改文件使其转发 php 请求。在该文件中,找到注释掉的 php 段,取消注释。之后运行命令重新载入配置。

sudo nginx -s reload

nginx 的网页目录下,创建我们的 php 测试文件。这里我创建文件 info.php ,内容如下:

<?php
    phpinfo();
?>

这个时候浏览器访问该文件: 127.0.0.1/info.php 会发现浏览器提示: File not found. 通过查看 nginx 的日志会发现有这么一行提示:

2021/01/12 18:45:58 [error] 33739#100097: *1 FastCGI sent in stderr:   "Primary script unknown" while reading response header from upstream,  client: 192.168.56.1, server: localhost, request: "GET /info.php HTTP/1.1",  upstream: "fastcgi://127.0.0.1:9000", host: "192.168.56.101

我们回过头来再看看我们的 nginx 配置文件,需要修改两个配置。首先是 fastcgi_param ,把后面的 /scripts 修改为 $document_root 。 之后便把 root 修改为和根目录一样的值,这里我的是: /usr/local/www/nginx;

重新载入 nginx 配置文件。访问 info.php 可得如下结果: php info

到这里,基本的就已经是完全安装配置成功了。至于 nginx 配置文件中为什么要修改那两行。原因很简单, fastcgi_param 则是配置 nginx 转发请求给 php 的时候的参数, 而变量 $document_root 则是当前块中 root 变量的值。至于网上一些把这个值写到这里的说法,可行是可行,但是不觉得看着很难受吗?

CMS 系统安装配置

目前网上存在着大量的 CMS 系统,这里就不对其进行评判了。为了演示,就选择我之前使用过的 PbootCMS 作为演示。

PHP 依赖软件包

执行命令,安装以下软件:

sudo pkg install php73-gd php73-mbstring \ 
    php73-curl php73-extensions php73-filter php73-sqlite3 \ 
    php73-json php73-iconv

安装完成后,即可。在 BSD 系统中,只需要安装即可,并不需要额外的配置。

在使用过程中可能会遇到上传文件失败的情况。这里经过排查提示一下,需要安装 php73-iconv 这个扩展。

安装使用 CMS

安装完成 PHP 环境之后,只需要去 PbootCMS 官网找到源码下载,并放到 PHP 的代码目录即可。 前台访问即正常显示: pbootcms

提醒

上述操作只是把平台架设成功,并没有设置开机自启。如果想设置开机自启的话,运行如下命令:

sudo sysrc nginx_enable="YES"
sudo sysrc php_fpm_enable="YES"