如何在 FreeBSD 12.0 上安装 Apache、MySQL 和 PHP (FAMP) 协议栈

作者选择了 自由和开源基金作为 写给捐款计划的一部分接受捐款。

介绍

FAMP 堆栈,类似于 Linux 上的 LAMP 堆栈,是一组开源软件,通常被安装在一起,以允许 FreeBSD 服务器托管动态网站和 Web 应用程序。

在本指南中,我们将安装一个FAMP堆栈在FreeBSD 12.0云服务器上,使用pkg,即FreeBSD包管理器。

<$>[注] 注: 截至 2022 年 7 月 1 日,DigitalOcean 不再支持通过控制面板或 API 创建新的 FreeBSD Droplets. 但是,您仍然可以使用自定义图像创建 FreeBSD Droplets。

前提条件

在您开始本指南之前,您将需要以下内容:

  • FreeBSD 12.0 服务器
  • 访问具有 root 权限的用户(或使用 sudo 允许)以进行配置更改。
  • 使用本教程配置的防火墙在 推荐新 FreeBSD 12.0 服务器的步骤上。 确保您打开端口 80443作为设置的一部分。
  • 建议熟悉 CLI (命令行接口)。

步骤 1 - 安装 Apache

Apache Web 服务器目前是世界上最受欢迎的 Web 服务器,这使得它成为托管网站的绝佳选择。

您可以使用 FreeBSD 的包管理器 pkg 安装 Apache. 一个包管理器允许您从 FreeBSD 维护的存储库中无痛无痛地安装大多数软件。

要使用「pkg」安装Apache 2.4,请使用以下命令:

1sudo pkg install apache24

在确认提示中输入y来安装Apache及其依赖。

要启用 Apache 作为服务,请将 apache24_enable="YES" 添加到 /etc/rc.conf' 文件中,您将使用 `sysrc' 命令来执行以下操作:

1sudo sysrc apache24_enable="YES"

现在启动 Apache:

1sudo service apache24 start

要检查 Apache 是否已启动,您可以执行以下命令:

1sudo service apache24 status

结果你会看到类似的东西:

1[secondary_label Output]
2apache24 is running as pid 20815.

您可以立即进行点击检查,以验证一切按计划进行,通过访问您的网络浏览器中的服务器的公共IP地址。

1http://your_server_IP_address/

您将看到默认的 FreeBSD Apache 网页,该网页用于测试,您将看到: It Works!,表示您的网页服务器已正确安装。

如何找到您的服务器的公共IP地址

如果你不知道你的服务器的公共IP地址是什么,有几种方法可以找到它,通常,这是你用来通过SSH连接到你的服务器的地址。

搜索 IP 地址的一种方法是使用ifconfig命令,在服务器本身。ifconfig命令将打印有关您的网络接口的信息。为了将输出缩小到服务器的公共 IP 地址,请使用此命令(请注意,突出部分是网络接口的名称,并且可能有所不同):

1ifconfig vtnet0 | grep "inet " | awk '{ print $2; exit }'

您还可以使用‘curl’来联系外部方,如 icanhazip,告诉您它如何看待您的服务器。

1curl http://icanhazip.com

现在你有公共IP地址,你可以使用它在你的网页浏览器的地址栏访问你的网页服务器。

第2步:安装MySQL

现在你有你的网页服务器并运行,是时候安装MySQL,关系数据库管理系统MySQL服务器将组织和提供访问数据库,你的服务器可以存储信息。

再次,您可以使用pkg来获取和安装您的软件。

若要使用「pkg」安装 MySQL 8.0,请使用以下命令:

1sudo pkg install mysql80-server

在确认提示中输入y来安装 MySQL 服务器和客户端包。

要启用 MySQL 服务器作为服务,请将 mysql_enable="YES" 添加到 /etc/rc.conf' 文件中,您可以使用 `sysrc' 命令来执行以下操作:

1sudo sysrc mysql_enable="YES"

现在,用以下命令启动MySQL服务器:

1sudo service mysql-server start

您可以检查服务正在运行:

1sudo service mysql-server status

你会读到类似于以下的东西:

1[secondary_label Output]
2mysql is running as pid 21587.

现在您的MySQL数据库正在运行,您将想要运行一个简单的安全脚本,这将删除一些危险的默认文件,并稍微限制访问您的数据库系统。

1sudo mysql_secure_installation

提示会问你是否想要设置密码. 因为你刚刚安装了MySQL,你很可能没有一个,所以输入Y并遵循指示:

 1Would you like to setup VALIDATE PASSWORD component?
 2
 3Press y|Y for Yes, any other key for No: y
 4
 5There are three levels of password validation policy:
 6
 7LOW Length >= 8
 8MEDIUM Length >= 8, numeric, mixed case, and special characters
 9STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
10
11Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
12Please set the password for root here.
13
14New password:  password
15
16Re-enter new password:  password
17
18Estimated strength of the password: 50
19Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

对于其他问题,您应该在每个提示键上按y键来接受推荐的安全值,这样会删除一些样本用户和数据库,禁用远程根登录,并加载这些新规则,以便MySQL立即尊重您所做的更改。

此时,您的数据库系统已设置,您可以继续安装PHP。

步骤三:安装PHP

它可以运行脚本,连接到MySQL数据库以获取信息,并将处理的内容传递给Web服务器进行显示。

您可以再次利用pkg系统来安装您的组件,您还将包括mod_php,php-mysqlphp-mysqli包。

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

1sudo pkg install php73 php73-mysqli mod_php73

在确认提示中输入y,安装php73,mod_php73php73-mysqli包。

现在用这个命令将样本PHP配置文件复制到位置:

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

现在,运行rehash命令来恢复系统关于安装的可执行文件的缓存信息:

1rehash

在使用PHP之前,您必须将其配置为与Apache一起工作。

安装 PHP 模块(可选)

为了增强PHP的功能,您可以选择安装一些额外的模块。

要查看 PHP 7.3 模块和库的可用选项,您可以输入以下内容:

1pkg search php73

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

 1[secondary_label Output]
 2php73-7.3.5 PHP Scripting Language
 3php73-aphpbreakdown-2.2.2 Code-Analyzer for PHP for Compatibility Check-UP
 4php73-aphpunit-1.8 Testing framework for unit tests
 5php73-bcmath-7.3.5 The bcmath shared extension for php
 6php73-brotli-0.6.2 Brotli extension for PHP
 7php73-bsdconv-11.5.0 PHP wrapper for bsdconv
 8php73-bz2-7.3.5 The bz2 shared extension for php
 9php73-calendar-7.3.5 The calendar shared extension for php
10php73-composer-1.8.4 Dependency Manager for PHP
11php73-ctype-7.3.5 The ctype shared extension for php
12php73-curl-7.3.5 The curl shared extension for php
13php73-dba-7.3.5 The dba shared extension for php
14php73-deployer-6.4.3 Deployment tool for PHP
15php73-dom-7.3.5 The dom shared extension for php
16
17...

要了解有关每个模块所做的事情的更多信息,您可以搜索互联网,或者通过输入查看包的长篇描述:

1pkg search -f package_name

将有大量的输出,一个名为 评论的字段将有模块提供的功能的解释。

例如,要找出「php73-calendar」套件的功能,您可以输入以下内容:

1pkg search -f php73-calendar

除了大量的其他信息,你会发现一些看起来像这样的东西:

1[secondary_label Output]
2php73-calendar-7.3.5
3Name           : php73-calendar
4Version        : 7.3.5
5...
6Comment        : The calendar shared extension for php
7...

如果在进行研究后,您决定要安装一个软件包,您可以使用pkg install命令来进行安装。

例如,如果你决定‘php73日历’是你需要的东西,你可以输入:

1sudo pkg install php73-calendar

如果您想一次安装多个模块,您可以通过按照pkg install命令列出每个模块,分隔一个空间,如下:

1sudo pkg install package1 package2 ...

步骤 4 — 配置Apache以使用PHP模块

Apache HTTP有一个专用目录,用于为特定模块编写配置文件,您将为Apache HTTP编写其中一个配置文件以说话PHP。

1sudo vi /usr/local/etc/apache24/modules.d/001_mod-php.conf

向该文件添加以下行:

 1[label /usr/local/etc/apache24/modules.d/001_mod-php.conf]
 2<IfModule dir_module>
 3    DirectoryIndex index.php index.html
 4    <FilesMatch "\.php$">
 5        SetHandler application/x-httpd-php
 6    </FilesMatch>
 7    <FilesMatch "\.phps$">
 8        SetHandler application/x-httpd-php-source
 9    </FilesMatch>
10</IfModule>

现在检查Apache的HTTP配置处于良好状态:

1sudo apachectl configtest

您将看到以下输出:

1[secondary_label Output]
2Performing sanity check on apache24 configuration:
3Syntax OK

由于您在 Apache 中进行了配置更改,因此您必须为所应用的服务重新启动服务,否则Apache 仍将与以前的配置工作。

1sudo apachectl restart

现在你可以继续在你的系统上测试PHP。

步骤5:测试PHP处理

为了测试您的系统是否正确配置为PHP,您可以创建一个非常基本的PHP脚本。

要让Apache找到文件并正确地服务它,它必须被保存在一个特定的目录中――‘DocumentRoot’――这是Apache在用户访问Web服务器时会搜索文件的地方。

默认情况下,DocumentRoot设置为/usr/local/www/apache24/data

1sudo vi /usr/local/www/apache24/data/info.php

这会打开一个空的文件. 将此PHP代码插入到文件中:

1[label /usr/local/www/apache24/data/info.php]
2<?php phpinfo(); ?>

保存和退出。

现在您可以测试您的 Web 服务器是否能够正确显示由 PHP 脚本生成的内容. 要尝试,您可以在 Web 浏览器中访问此页面:

1http://your_server_IP_address/info.php

您将看到一个 PHP FreeBSD 测试页面。

FreeBSD info.php

此页面为您提供从PHP的角度了解您的服务器的信息,有助于调试并确保您的设置得到正确应用。

如果这是成功的,那么你的PHP正按预期运作。

您应该在测试后删除此文件,因为它实际上可以向未经授权的用户提供有关您的服务器的信息。

1sudo rm /usr/local/www/apache24/data/info.php

您可以随时重建此页面,如果您需要稍后再次访问该信息。

结论

现在你已经安装了FAMP堆栈,你有许多选择,下一步要做什么。你已经安装了一个平台,它将允许你在你的服务器上安装大多数类型的网站和Web软件。

Published At
Categories with 技术
comments powered by Disqus