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

本指南将介绍如何在FreeBSD中安装和配置FBAMP。 FBAMP代表基于FreeBSD,Apache,MariaDB和PHP的软件集合。

本指南将介绍如何在FreeBSD操作系统中安装和配置FBAMP ,类似于Linux上的LAMP FBAMP是一个缩写,代表基于FreeBSD操作系统, Apache HTTP服务器,Internet上最受欢迎的开源Web服务器, MariaDB关系数据库管理系统( RDBMS ), MySQL数据库引擎的分支和PHP服务器的软件集合-侧。

要求

  1. 全新安装的FreeBSD
  2. FreeBSD初始配置
  3. 如果与FreeBSD进行远程连接,可以直接访问控制台或SSH。
  4. 在网络接口上配置的静态IP地址。

第1步:在FreeBSD上安装Apache

我们要安装的第一个服务是Apache HTTP服务器。 默认情况下,FreeBSD为Apache Web服务器提供了具有不同运行时工作模块的多个版本。

这些版本被预编译成二进制包,由FreeBSD PORTS存储库提供。 要显示PORTS提供的所有Apache包二进制文件,请发出以下命令。

# ls /usr/ports/www/ | grep apache
在FreeBSD上列出Apache Packages

在FreeBSD上列出Apache Packages

您还可以通过发出以下命令在FreeBSD上搜索可用的预先编译的Apache软件包。

# pkg search apache2
在FreeBSD上搜索Apache Packages

在FreeBSD上搜索Apache Packages

2.接下来,通过发出以下命令,安装具有所有必需模块的最新版本的Apache HTTP服务器。

# pkg install apache24
在FreeBSD上安装Apache

在FreeBSD上安装Apache

3.在系统上安装了Apache Web服务器后,请执行以下命令以在FreeBSD中启用系统范围内的守护程序。

# sysrc apache24_enable="yes"

启用Apache守护程序的另一种方法apache24_enable="yes"/etc/rc.conf文件中手动编辑和附加行apache24_enable="yes" ,如下图所示。

在FreeBSD上启用Apache System Wide

在FreeBSD上启用Apache System Wide

4.最后,要测试Web服务器是否正常工作,请通过发出以下命令启动Apache守护程序,并通过将浏览器指向您所在服务器的FQDN( http://IP-orFQDN )的IP地址(如下所示)访问默认网页在下面的屏幕截图。

# service apache24 start
启动Apache服务

启动Apache服务

验证Apache页面

验证Apache页面

FreeBSD 11.x中Apache Web服务器的默认webroot目录位于/usr/local/www/apache24/data/ system路径中。 在那里,您将找到一个可以编辑的小型index.html文件。

FreeBSD上的Apache DocumentRoot

FreeBSD上的Apache DocumentRoot

第2步:在FreeBSD上安装PHP

5. FreeBSD 11.x提供PHP解译服务器端语言的多个版本,包装在预先编译的二进制文件中。 要获取FreeBSD Ports存储库提供的所有可用PHP版本包的列表,请执行以下命令。

# ls /usr/ports/lang/ | grep php
在FreeBSD中列出PHP版本

在FreeBSD中列出PHP版本

搜索所有可用的FreeBSD PHP包版本的另一种方法是运行以下命令。

# pkg search -o php
在FreeBSD中搜索PHP版本

在FreeBSD中搜索PHP版本

6.要搜索FreeBSD为特定PHP版本(目前为57版本)提供的所有可用二进制文件,请运行以下命令。 使用较少的命令缩小并浏览输出。

# pkg search php5 |less
# pkg search php7
在FreeBSD上列出PHP 5软件包

在FreeBSD上列出PHP 5软件包

列出FreeBSD上的PHP 7软件包

列出FreeBSD上的PHP 7软件包

7.要更具体地说明自定义PHP版本提供的模块,请按照以下说明运行以下命令,显示所有可用于PHP 7.1版本的模块。

# pkg search php71
在FreeBSD上列出PHP模块

在FreeBSD上列出PHP模块

8.在本指南中,我们将为我们的FBAMP安装PHP 7.1版本。 发出以下命令以安装PHP,其中包含典型CMS安装所需的一些最重要的模块。

# pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

接下来,我们需要在/ usr / local / etc / apache24 / Includes / system路径中为以下内容创建Apache Web服务器的php.conf配置文件。

# nano /usr/local/etc/apache24/Includes/php.conf

将以下行添加到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>
在FreeBSD上为Apache配置PHP

在FreeBSD上为Apache配置PHP

10.为了测试PHP网关是否按照预期的方式使用Apache Web服务器,请在/ usr / local / www / apache24 / data / system路径中创建一个PHP info.php文件,这是Apache的默认Web文件根路径网络服务器。

# echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

重新启动Apache守护程序以应用更改。

# service apache24 restart

接下来,在浏览器中访问以下URI以查看PHP摘要。

http://IP-or-FQDN/info.php 
验证FreeBSD上的PHP模块

验证FreeBSD上的PHP模块

11.为了激活PHP ini配置文件进行生产,发出以下命令。 您可以修改php.ini生产文件,以便更改FBAMP中的各种PHP设置。

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
# ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

第3步:在FreeBSD上安装MariaDB

我们的FBAMP的最后一个缺失的组件是MySQL数据库服务器。 FreeBSD 11.x为不同的数据库提供了超过1000个包。

为了显示哪些组件可用于MariaDBMySQL数据库,请发出以下命令。 在本指南中,我们将通过MySQL(现在由Oracle主动开发)来安装MariaDB数据库。

# ls -al /usr/ports/databases/ | grep mariadb
# pkg search -o mariadb
# ls -al /usr/ports/databases/ | grep mysql
# pkg search -o mysql5
在FreeBSD上列出MariaDB版本

在FreeBSD上列出MariaDB版本

在FreeBSD上搜索MariaDB版本

在FreeBSD上搜索MariaDB版本

13.在本指南中,我们将在FreeBSD中安装最新版本的MariaDB数据库服务器,目前由mariadb102二进制包发行。

运行以下命令以安装MariaDB服务器和客户端以及通过Apache服务器网关访问数据库所需的所需PHP 7.1模块。

# pkg install mariadb102-server mariadb102-client php71-mysqli

14.接下来,启用MariaDB服务器系统范围,并通过运行以下命令启动数据库守护程序。

# sysrc mysql_enable="yes" 
# service mysql-server start

15.保护数据库运行mysql_secure_installation scrip。 使用以下脚本输出摘录来强化MariaDB。

# /usr/local/bin/mysql_secure_installation
样品输出
MySQL安全安装脚本输出
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16.默认情况下,MariaDB守护程序监听端口3306 / TCP上的localhost外的网络连接。 运行netstatlsofsockstat命令以获取MariaDB套接字状态。 此配置是危险的,并将服务暴露给外部网络攻击。

# lsof -i4 -i6
# sockstat -4 -6
验证MariaDB端口

验证MariaDB端口

17.如果您不需要远程访问MariaDB,请确保MariaDB守护程序仅通过发出以下命令来监听本地主机。 随后,重新启动MariaDB服务以应用更改。

# sysrc mysql_args="--bind-address=127.0.0.1"
# service mysql-server restart
or
# /usr/local/etc/rc.d/mysql-server restart

18.再次运行netstatlsofsockstat命令以列出MariaDB网络套接字。 套接字现在应绑定和监听localhost,如下图所示。

# lsof -i4 | grep mysql
# netstat -an | grep 3306
# sockstat -4 | grep 3306
检查在本地主机上的MariaDB聆听

检查在本地主机上的MariaDB聆听

19.要测试MariaDB数据库连接从控制台发出以下命令。 在提示符中输入MySQL根密码,默认数据库列表应显示在控制台屏幕中,如下图所示。

# mysql -u root -p -e "show databases"
列出MySQL数据库

列出MySQL数据库

就这样! 您已经在FreeBSD中成功安装了具有MariaDB数据库和PHP解释器的Apache Web服务器。 您现在可以随时开始部署WordPress网站。

在下一个教程中,我们将讨论一些高级FPBAMP主题,例如如何启用和创建Apache虚拟主机,启用.htaccess文件所需的重写模块正常运行,以及如何使用自签名证书或免费我们加密实体提供的证书。