作者选择了 自由和开源基金作为 写给捐款计划的一部分接受捐款。
介绍
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 服务器的步骤上。 确保您打开端口
80
和443
作为设置的一部分。 - 建议熟悉 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-mysql
和php-mysqli
包。
要安装 PHP 7.3 以pkg
,请运行以下命令:
1sudo pkg install php73 php73-mysqli mod_php73
在确认提示中输入y
,安装php73
,mod_php73
和php73-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 测试页面。
此页面为您提供从PHP的角度了解您的服务器的信息,有助于调试并确保您的设置得到正确应用。
如果这是成功的,那么你的PHP正按预期运作。
您应该在测试后删除此文件,因为它实际上可以向未经授权的用户提供有关您的服务器的信息。
1sudo rm /usr/local/www/apache24/data/info.php
您可以随时重建此页面,如果您需要稍后再次访问该信息。
结论
现在你已经安装了FAMP堆栈,你有许多选择,下一步要做什么。你已经安装了一个平台,它将允许你在你的服务器上安装大多数类型的网站和Web软件。