介绍
FAMP 堆栈类似于 Linux 上的 LAMP 堆栈,是一组开源软件,通常安装在一起以使 FreeBSD 服务器能够托管动态网站和 Web 应用程序。 FAMP 是一个首字母缩写词,代表 F[X40X]reeBSD(操作系统)、Apache(Web 服务器)、MySQL(数据库服务器)和 PHP(处理动态 PHP 内容)。
在本指南中,我们将使用 FreeBSD 包管理器 pkg
在 FreeBSD 10.1 云服务器上安装 FAMP 堆栈。
先决条件
在开始本指南之前,您应该有一个 FreeBSD 10.1 服务器。 此外,您必须以具有超级用户权限的用户身份连接到您的 FreeBSD 服务器(即 允许使用sudo
或更改为root用户)。
第一步——安装 Apache
Apache Web 服务器是目前世界上最流行的 Web 服务器,这使其成为托管网站的绝佳选择。
我们可以使用 FreeBSD 的包管理器 pkg
轻松安装 Apache。 包管理器允许我们从 FreeBSD 维护的存储库中轻松安装大多数软件。 您可以在此处 了解有关 如何使用 pkg 的更多信息。
要使用 pkg
安装 Apache 2.4,请使用以下命令:
sudo pkg install apache24
在确认提示处输入 y
。
这将安装 Apache 及其依赖项。
要启用 Apache 作为服务,请将 apache24_enable="YES"
添加到 /etc/rc.conf
文件。 我们将使用这个 sysrc
命令来做到这一点:
sudo sysrc apache24_enable=yes
现在启动 Apache:
sudo service apache24 start
您可以立即进行抽查,通过在 Web 浏览器中访问服务器的公共 IP 地址来验证一切是否按计划进行(如果您没有此信息,请参阅下一个标题下的注释以了解您的公共 IP 地址是什么)已经):
http://your_server_IP_address/
您将看到默认的 FreeBSD Apache 网页,该网页用于测试目的。 它应该说:“It Works!”,这表明您的 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 }'
现在您有了公共 IP 地址,您可以在 Web 浏览器的地址栏中使用它来访问您的 Web 服务器。
第二步——安装 MySQL
现在我们的 Web 服务器已经启动并运行,是时候安装关系数据库管理系统 MySQL 了。 MySQL 服务器将组织并提供对我们服务器可以存储信息的数据库的访问。
同样,我们可以使用 pkg
来获取和安装我们的软件。
要使用 pkg
安装 MySQL 5.6,请使用以下命令:
sudo pkg install mysql56-server
在确认提示处输入 y
。
这将安装 MySQL 服务器和客户端软件包。
要将 MySQL 服务器作为服务启用,请将 mysql_enable="YES"
添加到 /etc/rc.conf
文件。 这个 sysrc
命令将做到这一点:
sudo sysrc mysql_enable=yes
现在启动 MySQL 服务器:
sudo service mysql-server start
现在您的 MySQL 数据库正在运行,您将需要运行一个简单的安全脚本,该脚本将删除一些危险的默认设置并稍微限制对您的数据库系统的访问。 通过运行以下命令启动交互式脚本:
sudo mysql_secure_installation
提示将询问您当前的 root 密码(MySQL 管理员用户,root)。 由于您刚刚安装了 MySQL,因此您很可能没有,因此请按 RETURN
将其留空。 然后提示将询问您是否要设置root密码。 继续输入 Y
,然后按照说明进行操作:
Enter current password for root (enter for none): [RETURN] OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorization. Set root password? [Y/n] Y New password: password Re-enter new password: password Password updated successfully!
对于其余的问题,您只需在每个提示符处按 RETURN
键即可接受默认值。 这将删除一些示例用户和数据库,禁用远程 root 登录,并加载这些新规则,以便 MySQL 立即尊重我们所做的更改。
至此,您的数据库系统现已设置完毕,我们可以继续。
第三步——安装 PHP
PHP 是我们设置的组件,它将处理代码以显示动态内容。 它可以运行脚本,连接到 MySQL 数据库以获取信息,并将处理后的内容交给 Web 服务器显示。
我们可以再次利用 pkg
系统来安装我们的组件。 我们还将包括 mod_php
、php-mysql
和 php-mysqli
包。
要使用 pkg
安装 PHP 5.6,请运行以下命令:
sudo pkg install mod_php56 php56-mysql php56-mysqli
在确认提示处输入 y
。 这将安装 php56
、mod_php56
、php56-mysql
和 php56-mysqli
包。
现在使用以下命令将示例 PHP 配置文件复制到适当位置:
sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
现在运行 rehash
命令重新生成系统缓存的有关已安装可执行文件的信息:
rehash
在使用 PHP 之前,您必须将其配置为与 Apache 一起使用。
安装 PHP 模块(可选)
为了增强 PHP 的功能,我们可以选择安装一些附加模块。
要查看 PHP 5.6 模块和库的可用选项,您可以在系统中键入:
pkg search php56
结果将主要是您可以安装的 PHP 5.6 模块。 :
mod_php56-5.6.3 php56-5.6.3 php56-bcmath-5.6.3 php56-bz2-5.6.3 php56-calendar-5.6.3 php56-ctype-5.6.3 php56-curl-5.6.3 php56-dba-5.6.3 php56-dom-5.6.3 php56-exif-5.6.3 ...
要获取有关每个模块的更多信息,您可以搜索互联网,也可以通过键入以下内容查看包的详细说明:
pkg search -f package_name
将会有很多输出,其中一个名为 Comment 的字段将解释模块提供的功能。
例如,要找出 php56-calendar
包的作用,我们可以输入:
pkg search -f php56-calendar
连同大量其他信息,您会发现如下所示的内容:
php56-calendar-5.6.3 Name : php56-calendar Version : 5.6.3 ... Comment : The calendar shared extension for php ...
如果在研究之后,您决定要安装一个软件包,您可以使用 pkg install
命令来安装,就像我们对其他软件所做的那样。
例如,如果我们决定 php56-calendar
是我们需要的东西,我们可以输入:
sudo pkg install php56-calendar
如果你想一次安装多个模块,你可以通过在 pkg install
命令之后列出每个模块,用空格分隔,如下所示:
sudo pkg install package1 package2 ...
第四步——配置 Apache 以使用 PHP 模块
在 Apache 处理 PHP 页面之前,我们必须将其配置为使用 mod_php
。
打开 Apache 配置文件:
sudo vi /usr/local/etc/apache24/Includes/php.conf
首先,我们将通过添加以下行来配置 Apache 以默认加载 index.php
文件:
<IfModule dir_module> DirectoryIndex index.php index.html
接下来,我们将配置 Apache 以使用 PHP 处理器处理请求的 PHP 文件。 将这些行添加到文件的末尾:
<FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> </IfModule>
保存并退出。
现在重新启动 Apache 以使更改生效:
sudo service apache24 restart
至此,您的 FAMP 堆栈已安装并配置完毕。 现在让我们测试您的 PHP 设置。
第五步——测试 PHP 处理
为了测试我们的系统是否为 PHP 正确配置,我们可以创建一个非常基本的 PHP 脚本。
我们将此脚本称为 info.php
。 为了让 Apache 找到并正确提供文件,它必须保存在一个非常特定的目录下——DocumentRoot——当用户访问 Web 服务器时,Apache 将在该目录中查找文件。 DocumentRoot 的位置在我们之前修改的 Apache 配置文件 (/usr/local/etc/apache24/httpd.conf
) 中指定。
默认情况下,DocumentRoot 设置为 /usr/local/www/apache24/data
。 我们可以通过键入以下内容在该位置下创建 info.php
文件:
sudo vi /usr/local/www/apache24/data/info.php
这将打开一个空白文件。 将此 PHP 代码插入文件中:
<?php phpinfo(); ?>
保存并退出。
现在我们可以测试我们的 Web 服务器是否可以正确显示 PHP 脚本生成的内容。 要尝试这个,我们只需要在我们的网络浏览器中访问这个页面。 您将再次需要服务器的公共 IP 地址。
您要访问的地址将是:
http://your_server_IP_address/info.php
您看到的页面应如下所示:
这个页面基本上从 PHP 的角度为您提供有关您的服务器的信息。 它对于调试和确保正确应用您的设置很有用。
如果这成功了,那么您的 PHP 正在按预期工作。
您可能希望在此测试之后删除此文件,因为它实际上可能会将有关您的服务器的信息提供给未经授权的用户。 为此,您可以键入:
sudo rm /usr/local/www/apache24/data/info.php
如果您以后需要再次访问该信息,您可以随时重新创建此页面。
结论
现在您已经安装了 FAMP 堆栈,接下来您有很多选择。 基本上,您已经安装了一个平台,该平台允许您在服务器上安装大多数类型的网站和 Web 软件。
如果您有兴趣在新的 FAMP 堆栈上设置 WordPress,请查看本教程:如何在 FreeBSD 10.1 上使用 Apache 安装 WordPress。