如何安装和配置FEMP堆栈(FreeBSD 10.2,Nginx,MariaDB,PHP)

时间:2020-03-05 15:32:23  来源:igfitidea点击:

FreeBSD是来自Berkeley Software Distribution(BSD)的免费和开源的类Unix操作系统,它是最受欢迎的服务器平台之一。
设计具有高级网络,安全性和服务器存储。
到目前为止,freebsd已移植到各种处理器体系结构,包括PowerPC,Arm等。

Nginx(发音为engine-x)是免费的开源高性能HTTP服务器。
Nginx专注于高并发性,性能和低内存使用率。
这使nginx成为最受欢迎的Web服务器之一。
我们还可以将nginx用作HTTP,HTTPS,SMTP,POP3和IMAP协议的反向代理,以及负载平衡器。

MariaDB是MySQL派生的关系数据库管理系统(RDBMS)之一,它是MySQL的直接替代品,由MySQL的某些原始作者开发。
对于寻求健壮,可扩展且可靠的SQL Server的数据库专业人员,MariaDB努力成为逻辑选择。

FPM(FastCGI流程管理器)是PHP FastCGI的替代实现。
带有一些添加功能,例如进程管理,stdout和stderr日志记录,加速的上载支持,能够使用不同的uid或者gid启动worker并在不同的端口上进行侦听的功能。
这对于重载站点非常有用。

FreeBSD中的基本软件安装

FreeBSD与许多应用程序和系统工具捆绑在一起。
另外,我们需要针对系统的第3个应用程序。
FreeBSD提供了两种安装第三方应用程序的方法:

  • 端口收集-用于从源代码安装软件包。
  • 二进制软件包-用于安装预构建的二进制软件包。

在本教程中,我将通过pkg命令使用“二进制包”方法来安装FEMP Stack。

准备工作

  • IP地址为192.168.1.110的FreeBSD 10.2
  • 根特权

步骤1-更新系统

要开始安装,请使用SSH /控制台登录到freebsd服务器。
并确保系统是最新的,我们可以使用下面的命令来更新系统:

freebsd-update fetch
freebsd-update install

并且请安装nano编辑器以使用pkg命令完成准备工作:

pkg install nano

第2步-安装Nginx

在开始安装nginx之前,可以使用“ pkg search”命令搜索软件包和nginx版本,这是示例:

pkg search nginx
nginx-1.8.0_3,2
nginx-devel-1.9.2_2

我们将获得nginx的所有两个版本,在本教程中,我们将安装稳定版1.8.

现在开始使用以下命令安装nginx:

pkg install nginx-1.8.0_3,2

第3步-配置Nginx

现在转到目录“/usr/local/etc/nginx /”以编辑nginx文件配置。

cd /usr/local/etc/nginx/

并将文件“ nginx.conf”重命名为其他文件名以使其作为备份。

mv /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/.conf.original

现在使用nano为nginx配置“ nginx.conf”创建新文件:

nano nginx.conf

并为nginx配置粘贴以下代码:

# Define user that run nginx
user  www;
worker_processes  2;
# Define error log
error_log /var/log/nginx/error.log info;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
# Define access log
access_log /var/log/nginx/access.log;
sendfile        on;
keepalive_timeout  65;
server {
listen       80;
server_name  localhost;
# Define web data
root /usr/local/www/nginx;
index index.php index.html index.htm;
location/{
try_files $uri $uri/=404;
}
error_page      500 502 503 504  /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
# Configuration for PHP-FPM
location ~ \.php${
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
}

保存并退出。

接下来,创建新目录“ nginx”,并在“/var/log /”目录中创建两个文件“ error.log”和“ access.log”:

mkdir -p /var/log/nginx/
touch /var/log/nginx/{error,access}.log

现在转到Web数据目录“/usr/local/www /”,并删除“ nginx”目录。
它是来自“ nginx-dist”目录的符号链接,然后复制该目录:

cd /usr/local/www/
rm -rf nginx/
cp -r nginx-dist/nginx/

完成后,将nginx添加到启动脚本“ /etc/rc.conf”文件的系统中。
我们可以使用nano编辑器或者“ echo”命令作为手动方法添加nginx,但是其中我们将使用“ sysrq”命令进行操作:

sysrc nginx_enable=yes

在启动nginx之前,请使用以下命令确保配置正确:

Nginx的-t

如果nginx配置文件中没有错误,则可以看到以下结果。

nginx result

现在我们启动nginx:

service nginx start

只需在浏览器中打开服务器IP:192.168.1.100

步骤4-安装和配置MariaDB

在这一步中,我们将指导安装mariaDB 10.0,但是我们也可以安装其他版本,让我们搜索存储库中可用的所有版本mariaDB:

pkg search mariadb
mariadb100-client-10.0.21
mariadb100-server-10.0.21
mariadb53-client-5.3.12_7
mariadb53-scripts-5.3.12_6
mariadb53-server-5.3.12_6
mariadb55-client-5.5.44
mariadb55-server-5.5.44

mariadb有三个版本,现在让我们安装10.0版本。

pkg install mariadb100-server-10.0.21 mariadb100-client-10.0.21

然后我们将获得有关freebsd中mariadb配置的消息。

步骤5-配置MariaDB

现在,请转到目录“/usr/local/share/mysql /”。
有三个mysql配置文件。

cd /usr/loca/share/mysql/
ls lah my*.cnf

并且我们需要将一个配置文件“ my-medium.cnf”复制到“/usr/local/etc /”目录。

cp my-medium.cnf /usr/local/etc/my.cnf

使用“ sysrc”命令将mariaDB添加到启动应用程序:

sysrc mysql_enable=yes

因此,让我们开始mariaDB:

service mysql-server start

启动mariadb后,请使用以下命令配置mariadb的用户名和密码:

mysql_secure_installation
Enter current password for root (enter for none):
#Just press Enter here
Change the root password? [Y/n] Y
#Type your password for mariadb here
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

如果完成,现在尝试连接并登录到mariadb shell:

mysql -u root -p
#type your root pasword

第6步-安装PHP-FPM

在本教程中,我们将安装版本为php56-5.6.13的php。
如果要安装其他版本,可以使用“ pkg search”命令进行搜索。
现在让我们安装它:

pkg install php56-5.6.13 php56-mysqli-5.6.13

然后进行配置。

第7步-配置PHP-FPM

接下来,我们必须配置php-fpm服务,请转到“/usr/local/etc”目录,其中存储了php-fpm文件配置。

cd /usr/local/etc/

使用nano编辑器编辑“ php-fpm.conf”文件:

nano php-fpm.com

现在,请将光标移动到第164行,这是处理FastCGI请求的行。
默认情况下,php-fpm将在9000端口“ listen = 127.0.0.1:9000”下的localhost下处理请求,但是我们将更改此配置,因此php-fpm将处理对“ unix套接字”的所有请求。

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock

让我们转到第175行,我们需要为unix套接字,在用户“ www”下运行的freebsd上的php-fpm设置权限,并且出于安全原因,我们需要确保unix套接字权限与运行nginx的用户相同。

#Just uncomment the line
listen.owner = www
listen.group = www
listen.mode = 0660

并且现在请在“/usr/local/etc /”目录下配置“ php.ini”:

cd /usr/local/etc/
nano php.ini

搜索“ cgi.fix_pathinfo”行,取消注释并将其值设置为“ 0”。

cgi.fix_pathinfo=0

接下来,在启动时将php-fpm添加到运行中:

sysrc php_fpm_enable=yes

并启动php-fpm:

service php-fpm start

步骤8-测试Nginx和PHP-FPM配置

我们需要测试nginx和php-fpm的配置是否正确,以便可以使用所有配置。
只需在Web数据目录“/usr/loca/www/nginx /”中创建新文件“ info.php”。

cd /usr/local/www/nginx/
nano info.php

粘贴以下php代码:

<?php phpinfo(); ?>

并转到浏览器并访问服务器IP:192.168.1.100/info.php

现在我们可以看到freebsd中正在运行“ Nginx和PHP-FPM”。