如何在FreeBSD 12.0上安装Nginx,MySQL和PHP(FEMP)堆栈

FEMP堆栈类似于Linux上的LEMP堆栈,是通常安装在一起以使FreeBSD服务器托管动态网站和Web应用程序的开源软件的集合。FEMP是FreeBSD,Nginx,MySQL和PHP的首字母缩写。

在本指南中,我们将使用pkgFreeBSD软件包管理器在FreeBSD 12.0 Vultr实例上部署FEMP堆栈的元素。

要求

在开始本指南之前,您需要满足以下条件:

  • FreeBSD 12.0 VPS。
  • 具有root特权的sudo用户或进行配置更改的用户。
  • 建议对FreeBSD系统和命令行界面有基本的了解。

在你开始之前

检查FreeBSD版本。

uname -ro
# FreeBSD 12.0-RELEASE-p6

确保您的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): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# 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

安装主线Nginx

您可以使用FreeBSD的软件包管理器安装Nginx pkg。软件包管理器使您可以轻松地从FreeBSD维护的存储库中安装大多数软件。您可以在此处了解更多有关如何使用的pkg信息

要安装最新的主线Nginx,请发出以下命令:

sudo pkg install -y nginx-devel

检查版本:

nginx -v
# nginx version: nginx/1.17.1

此命令将安装最新的主线版本,该版本可以在生产服务器上可靠地使用。如果要安装最新的稳定版本,只需使用nginxpackage而不是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!”。页。

安装MySQL

同样,您可以利用它pkg来获取和安装软件。

使用pkg以下命令安装MySQL :

sudo pkg install -y mysql80-client mysql80-server

检查版本:

mysql --version
# mysql  Ver 8.0.16 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选择默认值。

安装PHP 7.3

要安装PHP 7.3使用pkg,运行以下命令:

sudo pkg install -y php73

检查版本。

php --version
# PHP 7.3.7 (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.ini-productionphp.ini

sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

现在,启用并启动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 ^php73-*

结果将主要是可以安装的PHP 7.3模块:

# Output
# php73-7.3.7                    PHP Scripting Language
# php73-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php73-aphpunit-1.8             Testing framework for unit tests
# php73-bcmath-7.3.7             The bcmath shared extension for php
# php73-brotli-0.7.0             Brotli extension for PHP
# php73-bsdconv-11.5.0           PHP wrapper for bsdconv
# php73-bz2-7.3.7                The bz2 shared extension for php
# php73-calendar-7.3.7           The calendar shared extension for php
# php73-composer-1.8.6           Dependency Manager for PHP
# php73-ctype-7.3.7              The ctype shared extension for php
# php73-curl-7.3.7               The curl shared extension for php
# . . .

经过研究后,如果您决定需要安装软件包,则可以使用以下pkg install命令进行安装。大多数PHP Web应用程序将需要其他模块,因此很高兴知道如何搜索它们。

配置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;
  }

}

保存文件并使用:+ W+ 退出Q

现在我们需要包含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

测试PHP处理

要测试您的系统是否正确配置了PHP,可以创建一个非常基本的PHP脚本。您将调��此脚本info.php。默认情况下,root设置为/usr/local/www/nginx-dist。您可以info.php在该位置下创建文件:

sudo vim /usr/local/www/nginx-dist/info.php

将此代码添加到该文件:

<?php phpinfo(); ?>

导航至http://your_server_IP/ìnfo.php,您将看到以下页面:

如何在FreeBSD 12.0上安装Nginx,MySQL和PHP(FEMP)堆栈

安装和设置后,您应该删除info.php文件,以避免向公众公开有关服务器的信息。

sudo rm /usr/local/www/nginx-dist/info.php

结论

恭喜,您已经在FreeBSD 12.0 VPS上成功安装了FEMP堆栈。现在,您可以选择下一步做什么。您已经安装了一个平台,该平台将允许您在其之上安装大多数类型的网站和网络软件。



Leave a Comment

使用OpenBSD在Vultr上配置BGP

使用OpenBSD在Vultr上配置BGP

Vultrs BGP功能使您可以拥有自己的IP空间并在我们的任何位置使用它,而OpenBSD实例则不需要其他软件!

如何在FreeBSD 12上使用Pkg软件包管理器

如何在FreeBSD 12上使用Pkg软件包管理器

简介FreeBSD是一种类似于Unix的开源操作系统,用于为现代服务器,台式机和嵌入式平台提供动力。Netflix,雅虎等巨人!

FreeBSD的Vultr块存储

FreeBSD的Vultr块存储

本文中的信息涉及修改磁盘,分区和文件系统,因此在执行任何示例之前,应先完全理解它们,因为它们会导致数据丢失或丢失。

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在FreeBSD 12上安装osTicket

如何在FreeBSD 12上安装osTicket

使用其他系统?osTicket是一个开放源代码的客户支持票务系统。osTicket源代码公开托管在Github上。在本教程中

如何在FreeBSD 12上安装Dolibarr

如何在FreeBSD 12上安装Dolibarr

使用其他系统?Dolibarr是面向企业的开源企业资源计划(ERP)和客户关系管理(CRM)。多利巴尔

在OpenBSD 6上设置Ghost Professional发布平台

在OpenBSD 6上设置Ghost Professional发布平台

Ghost是与WordPress竞争的最新,最大的暴发户。主题开发既快速又容易学习,因为Ghost开发人员决定同时使用

如何在FreeBSD 12上安装Monica

如何在FreeBSD 12上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

使用其他系统?Couch CMS是一个简单,灵活,免费和开源的内容管理系统(CMS),可让Web设计人员进行设计

如何在FreeBSD 12上安装LimeSurvey CE

如何在FreeBSD 12上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

如何在FreeBSD 12的Nginx中启用TLS 1.3

如何在FreeBSD 12的Nginx中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 12上安装MyBB

如何在FreeBSD 12上安装MyBB

使用其他系统?MyBB是一个免费,开放源代码,直观且可扩展的论坛程序。MyBB源代码托管在GitHub上。本指南将

使用Prosody和FreeBSD设置XMPP服务器

使用Prosody和FreeBSD设置XMPP服务器

尽管ejabberd非常普遍,但最近有一个竞争对手-Prosody。本教程将向您展示如何在FreeBS上设置Prosody

用Poudriere建立自己的Pkg存储库

用Poudriere建立自己的Pkg存储库

从9.2版开始,FreeBSD引入了一个新工具来替换旧的pkg _ *-命令-pkg,也称为pkgng。它非常类似于Debians apt o

如何在FreeBSD 11上安装Matomo Analytics

如何在FreeBSD 11上安装Matomo Analytics

使用其他系统?Matomo(以前称为Piwik)是一个开源分析平台,是Google Analytics(分析)的一种开放替代方案。Matomo源托管o

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

使用其他系统?ProcessWire CMS 3.0是一个简单,灵活,功能强大,免费和开源的内容管理系统(CMS)。ProcessWire CMS 3。

如何在FreeBSD 12的Apache中启用TLS 1.3

如何在FreeBSD 12的Apache中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

使用其他系统?Redaxscript 3.2 CMS是一款现代,超轻量级,免费和开源的内容管理系统(CMS),具有火箭fas

如何在FreeBSD 12上安装BookStack

如何在FreeBSD 12上安装BookStack

使用其他系统?简介BookStack是一个简单的,自托管的易于使用的平台,用于组织和存储信息。BookStack已满

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息