如何安装和配置FEMP堆栈(FreeBSD 10.2,Nginx,MariaDB,PHP)
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”。