如何在FreeBSD 12上设置FEMP堆栈(FreeBSD,Nginx,MySQL 8和PHP 7.4)
如何在FreeBSD 12上设置FEMP堆栈(FreeBSD,Nginx,MySQL 8和PHP 7.4)
FEMP堆栈类似于Linux上的LEMP堆栈,是开源软件的集合,通常将它们安装在一起以使FreeBSD服务器可以托管动态网站和Web应用程序。 FEMP是首字母缩写,代表FreeBSD(操作系统),Nginx(HTTP服务器,发音为Engine-x),MySQL(数据库服务器)和PHP(用于处理动态PHP内容的编程语言)。
在本教程中,我们将使用以下方法在FreeBSD 12.1服务器上设置FEMP堆栈的组件 pkg
,FreeBSD软件包管理器。
要求
在开始本指南之前,您需要满足以下条件:
- FreeBSD 12.1。
- 具有root特权的用户或
sudo
用户进行配置更改。 - 建议对FreeBSD系统和命令行界面有基本的了解。
初始步骤
检查FreeBSD版本。
uname -ro
# FreeBSD 12.1-RELEASE
确保您的FreeBSD系统是最新的。
freebsd-update fetch install
pkg update && pkg upgrade -y
安装必要的软件包。
pkg install -y sudo vim bash curl
使用您的首选用户名创建一个新的用户帐户。我们用 johndoe
。
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default):
# Login group [johndoe]:
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]:
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]:
# Home directory permissions (Leave empty for default):
# Use password-based authentication? [yes]:
# Use an empty password? (yes/no) [no]:
# Use a random password? (yes/no) [no]:
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]:
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!
跑过 visudo
命令并取消注释 %wheel ALL=(ALL) ALL
行,以允许成员 wheel
组以执行任何命令。
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
现在,使用以下命令切换到新创建的用户 su
:
su - johndoe
注意:更换 johndoe
使用您的用户名。
设置时区:
sudo tzsetup
第1步-安装主线Nginx
Nginx Web服务器当前是世界上最受欢迎的Web服务器之一。这是托管网站的绝佳选择。
您可以使用FreeBSD的软件包管理器安装Nginx, pkg
。软件包管理器使您可以轻松地从FreeBSD维护的存储库中安装大多数软件。您可以了解更多有关如何使用的信息 pkg
这里。
要安装最新的主线Nginx,请发出以下命令:
sudo pkg install -y nginx-devel
检查版本:
nginx -v
# nginx version: nginx/1.17.7
此命令将安装最新的主线版本,该版本可以在生产服务器上可靠地使用。如果要安装最新的稳定版本,请使用 nginx
盘点代替 nginx-devel
。
现在,启用并启动Nginx:
sudo sysrc nginx_enable=yes
sudo service nginx start
要检查Nginx是否已启动,可以运行以下命令:
sudo service nginx status
结果,您将看到类似以下内容的内容:
# Output
nginx is running as pid 17607.
您可以通过在Web浏览器中访问服务器的公共IP地址来验证Nginx是否已安装并正常工作。导航 your_server_IP
。您将看到默认的“欢迎使用nginx”。页。
第2步-安装MySQL 8.0
现在,您的Web服务器已启动并正在运行,是时候安装关系数据库管理系统MySQL。 MySQL服务器将组织并提供对服务器可用来存储信息的数据库的访问。
同样,您可以利用 pkg
获取并安装您的软件。
安装MySQL 8.0
使用 pkg
,请使用以下命令:
sudo pkg install -y mysql80-client mysql80-server
此命令将安装最新版本的MySQL客户端和服务器,当前版本为 8.x.x
。
检查版本:
mysql --version
# mysql Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)
现在,启用并启动MySQL:
sudo sysrc mysql_enable=yes
sudo service mysql-server start
要检查MySQL是否已启动,可以运行以下命令:
sudo service mysql-server status
您将看到类似于以下内容:
# Output
mysql is running as pid 19066.
作为一种好的做法,您可以运行 mysql_secure_installation
安全脚本,该脚本将删除一些不安全的默认值,并稍微限制对数据库系统的访问。
sudo mysql_secure_installation
系统将要求您设置密码,然后出现其他一些问题。输入一个强密码,然后对其余问题按ENTER键选择默认值。
第3步-安装PHP 7.4
PHP是一种专为Web开发而设计的服务器端脚本语言。 PHP是FEMP堆栈中必不可少的组件。另外,通常使用Python或Perl代替PHP。但是,最常使用PHP作为最流行的选项。连同数据库一起,它将为您的网站或应用程序提供动态行为。
再次利用 pkg
系统安装PHP组件。
安装PHP 7.4
与 pkg
,运行以下命令:
sudo pkg install -y php74
检查PHP版本:
php --version
# PHP 7.4.0 (cli) (built: Jul 18 2019 01:14:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
此命令将安装最新版本的PHP, 7.4
。
现在,启用并启动PHP-FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start
要检查PHP-FPM是否已启动,可以运行以下命令:
sudo service php-fpm status
结果,您将看到类似以下内容的内容:
# Output
php_fpm is running as pid 23005.
安装PHP模块(可选)
为了增强PHP的功能,您可以选择安装一些其他模块。
要查看当前在PHP模块中编译的代码,可以运行以下命令:
php -m
# [PHP Modules]
# Core # date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard
# [Zend Modules]
要搜索可用的PHP模块,可以使用以下命令:
pkg search ^php74-*
结果将主要是可以安装的PHP 7.4模块:
# Output
# php74-7.4.7 PHP Scripting Language
# php74-Ice37-3.7.2 Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php74-aphpbreakdown-2.2.2 Code-Analyzer for PHP for Compatibility Check-UP
# php74-aphpunit-1.8 Testing framework for unit tests
# php74-bcmath-7.4.7 The bcmath shared extension for php
# php74-brotli-0.7.0 Brotli extension for PHP
# php74-bsdconv-11.5.0 PHP wrapper for bsdconv
# php74-bz2-7.4.7 The bz2 shared extension for php
# php74-calendar-7.4.7 The calendar shared extension for php
# php74-composer-1.8.6 Dependency Manager for PHP
# php74-ctype-7.4.7 The ctype shared extension for php
# php74-curl-7.4.7 The curl shared extension for php
# . . .
经过研究后,如果您决定需要安装软件包,可以使用 pkg install
命令。大多数PHP Web应用程序将需要其他模块,因此很高兴知道如何搜索它们。
第4步-配置Nginx使用PHP模块
在使用PHP之前,必须先配置它以与Nginx一起使用。
跑 sudo vim /usr/local/etc/nginx/test.conf
并使用以下内容填充文件:
server {
listen 80;
server_name SERVER_IP; # Replace with your IP or hostname
root /usr/local/www/nginx-dist;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ .php${
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存文件并退出vim。
现在我们需要包括 test.conf
在主要 nginx.conf
文件。 Nginx的主要配置文件位于 /usr/local/etc/nginx
如 nginx.conf
。
跑 sudo vim /usr/local/etc/nginx/nginx.conf
在Vim中打开主配置文件,并将以下行添加到 http {}
块。
include test.conf;
测试Nginx配置:
sudo nginx -t
由于您已经在Nginx中进行了配置更改,因此必须重新加载要应用的服务。否则,Nginx仍可以使用较早的配置:
sudo service nginx reload
第5步-测试PHP处理
要测试您的系统是否正确配置了PHP,可以创建一个非常基本的PHP脚本。您将调用此脚本 info.php
。默认情况下, root
设定为 /usr/local/www/nginx-dist
。您可以创建 info.php
通过键入以下位置在该位置下的文件:
sudo vim /usr/local/www/nginx-dist/info.php
并将此代码添加到该文件:
导航 http://your_server_IP/info.php
您将看到以下页面:
在安装和设置FEMP堆栈之后,您应该删除 info.php
文件,以避免向公众公开有关服务器的信息:
sudo rm /usr/local/www/nginx-dist/info.php
结论
恭喜,您已经在FreeBSD 12.1 VPS上成功安装了FEMP堆栈。现在,您可以选择下一步做什么。您已经安装了一个平台,该平台将允许您在其之上安装大多数类型的网站和网络软件。