如何在FreeBSD 12.0上安装Apache,MySQL和PHP(FAMP)

FAMP类似于Linux上的LAMP,是一组开源软件,通常安装在一起以使FreeBSD服务器能够托管动态网站和Web应用程序。 FAMP是FreeBSD(操作系统),Apache(Web服务器),MySQL(数据库服务器)和PHP(处理动态PHP内容)的首字母缩写。 在本指南中,我们将使用FreeBSD包管理器pkg在FreeBSD 10.1云服务器上安装FAMP。

作者选择了自由和开源基金作为Write for DOnations计划的一部分进行捐赠。

介绍

FAMP类似于Linux上的LAMP,是一组开源软件,通常安装在一起以使FreeBSD服务器能够托管动态网站和Web应用程序。 FAMP是F reeBSD(操作系统), A pache(Web服务器), M ySQL(数据库服务器)和P HP(用于处理动态PHP内容)的首字母缩写。

在本指南中,我们将使用FreeBSD软件包管理器pkg在FreeBSD 12.0云服务器上安装FAMP。

先决条件

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

第1步 - 安装Apache

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

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

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

sudo pkg install apache24

在确认提示符处输入y以安装Apache及其依赖项。

要将Apache作为服务启用,请在/etc/rc.conf文件中添加apache 24 _enable="YES" 您将使用sysrc命令执行此操作:

sudo sysrc apache24_enable="YES"

现在启动Apache:

sudo service apache24 start

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

sudo service apache24 status

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

apache24 is running as pid 20815.

您可以通过在Web浏览器中访问服务器的公共IP地址,立即进行抽查,以验证一切是否按计划进行。 如果您还没有这些信息,请参阅下一个标题下的注释以了解您的公共IP地址:

http://your_server_IP_address/

您将看到默认的FreeBSD Apache网页,它用于测试目的。 你会看到: 它有效! ,表示您的Web服务器已正确安装。

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

如果您不知道服务器的公共IP地址是什么,可以通过多种方式找到它。 通常,这是您用于通过SSH连接到服务器的地址。

如果您使用的是DigitalOcean,则可以在控制面板中查找服务器的IP地址。 您也可以使用此命令从服务器本身使用DigitalOcean元数据服务: curl -w "\n" http://169.254.169.254/metadata/v1/interfaces/public/0/ipv4/address

查找IP地址的一种更通用的方法是在服务器本身上使用ifconfig命令。 ifconfig命令将打印出有关网络接口的信息。 为了将输出范围缩小到仅服务器的公共IP地址,请使用此命令(请注意,突出显示的部分是网络接口的名称,可能会有所不同):

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

你也可以使用curl联系外部派对,比如icanhazip ,告诉你它是如何看到你的服务器的。 这是通过询问特定服务器的IP地址来完成的:

curl http://icanhazip.com

现在您拥有了公共IP地址,您可以在Web浏览器的地址栏中使用它来访问您的Web服务器。

第2步 - 安装MySQL

现在您已经启动并运行了Web服务器,现在是安装MySQL(关系数据库管理系统)的时候了。 MySQL服务器将组织并提供对服务器可以存储信息的数据库的访问。

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

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

sudo pkg install mysql80-server

在确认提示符处输入y以安装MySQL服务器和客户端软件包。

要将MySQL服务器作为服务启用,请将mysql_enable="YES"添加到/etc/rc.conf文件中。 你可以使用sysrc命令来做到这一点:

sudo sysrc mysql_enable="YES"

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

sudo service mysql-server start

您可以验证服务是否已启动并正在运行:

sudo service mysql-server status

您将阅读类似于以下内容的内容:

mysql is running as pid 21587.

现在您的MySQL数据库正在运行,您将需要运行一个简单的安全脚本,该脚本将删除一些危险的默认值并稍微限制对数据库系统的访问。 运行以下命令启动交互式脚本:

sudo mysql_secure_installation

提示将询问您是否要设置密码。 由于您刚刚安装了MySQL,因此您很可能没有安装MySQL,因此请键入Y并按照说明操作:

 Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.

New password:  password

Re-enter new password:  password

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

对于其他问题,您应该在每个提示符处按y键以接受建议的安全值。 这将删除一些示例用户和数据库,禁用远程root登录,并加载这些新规则,以便MySQL立即尊重您所做的更改。

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

第3步 - 安装PHP

PHP是您的设置的组件,它将处理代码以显示动态内容。 它可以运行脚本,连接到MySQL数据库以获取信息,并将处理过的内容交给Web服务器进行显示。

您可以再次利用pkg系统来安装组件。 你将包括mod_phpphp-mysqlphp-mysqli包。

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

sudo pkg install php73 php73-mysqli mod_php73

在确认提示下输入y 这将安装php 73mod_php 73php 73 -mysqli软件包。

现在使用以下命令将示例PHP配置文件复制到位:

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

现在运行rehash命令以重新生成有关已安装的可执行文件的系统缓存信息:

rehash

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

安装PHP模块(可选)

要增强PHP的功能,您可以选择安装一些其他模块。

要查看PHP 7.3模块和库的可用选项,可以键入:

pkg search php73

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

php73-7.3.5                    PHP Scripting Language
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.5             The bcmath shared extension for php
php73-brotli-0.6.2             Brotli extension for PHP
php73-bsdconv-11.5.0           PHP wrapper for bsdconv
php73-bz2-7.3.5                The bz2 shared extension for php
php73-calendar-7.3.5           The calendar shared extension for php
php73-composer-1.8.4           Dependency Manager for PHP
php73-ctype-7.3.5              The ctype shared extension for php
php73-curl-7.3.5               The curl shared extension for php
php73-dba-7.3.5                The dba shared extension for php
php73-deployer-6.4.3           Deployment tool for PHP
php73-dom-7.3.5                The dom shared extension for php

...

要获得有关每个模块的功能的更多信息,您可以搜索互联网,也可以键入以下内容来查看包的长描述:

pkg search -f package_name

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

例如,要找出php73-calendar包的功能,可以输入:

pkg search -f php73-calendar

除了大量其他信息外,您还可以找到如下所示的内容:

php73-calendar-7.3.5
Name           : php73-calendar
Version        : 7.3.5
...
Comment        : The calendar shared extension for php
...

如果在研究之后,您决定要安装软件包,则可以使用pkg install命令执行此操作。

例如,如果您确定php73-calendar是您需要的东西,则可以键入:

sudo pkg install php73-calendar

如果要一次安装多个模块,可以按照pkg install命令列出每个模块,用空格分隔,如下所示:

sudo pkg install package1 package2 ...

第4步 - 配置Apache以使用PHP模块

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

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

将以下行添加到该文件:

/usr/local/etc/apache24/modules.d/001_mod-php.conf
<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

现在检查Apache的HTTP配置是否状况良好:

sudo apachectl configtest

您将看到以下输出:

Performing sanity check on apache24 configuration:
Syntax OK

因为您在Apache中进行了配置更改,所以必须重新启动要应用的服务。 否则Apache仍将使用先前的配置。

sudo apachectl restart

现在,您可以继续在系统上测试PHP。

第5步 - 测试PHP处理

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

你将这个脚本称为info.php 为了让Apache找到并正确提供文件,它必须保存在特定的目录下 - DocumentRoot这是Apache在用户访问Web服务器时查找文件的地方。 DocumentRoot的位置在您之前修改的Apache配置文件中指定( /usr/local/etc/apache24/httpd.conf )。

默认情况下, DocumentRoot设置为/usr/local/www/apache24/data 您可以通过键入以下info.php在该位置下创建info.php文件:

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

这将打开一个空白文件。 将此PHP代码插入到文件中:

/usr/local/www/apache24/data/info.php
<?php phpinfo(); ?>

保存并退出。

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

http://your_server_IP_address/info.php

你会看到一个PHP FreeBSD测试页面。

FreeBSD info.php

此页面从PHP的角度为您提供有关服务器的信息。 它对于调试很有用,并确保正确应用您的设置。

如果这是成功的,那么您的PHP正在按预期工作。

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

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

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

结论

现在您已经安装了FAMP,您可以选择下一步做什么。 您已经安装了一个平台,允许您在服务器上安装大多数类型的网站和Web软件。