在Debian 8上设置NGINX,PHP-FPM和MariaDB

本指南将向您展示如何使用NGINX,PHP Fast Process Manager和MariaDB在Debian 8上正确安装和配置“备用” LAMP堆栈。

NGINX

NGINX是“首先是反向代理,然后是Web服务器”。它是Apache的流行且不断增长的替代方案,在许多情况下可提供更大的灵活性和更好的性能。在本教程中,我们将使用它作为Web服务器。

启动您喜欢的SSH客户端并登录到服务器。对于Windows用户,“ PuTTY”是一个免费的轻量级SSH客户端。Linux和Mac用户可以使用其操作系统默认包含的终端。对于本教程,我们假设您以“ root”用户身份登录到服务器。

首先,让我们确保所有内容都是最新的。键入以下内容进行检查,然后安装更新。

apt-get update && apt-get upgrade

我们将在vim中编辑配置文件。默认情况下未安装Vim,所以让我们安装它!

apt-get install vim

现在该安装NGINX了。我们将要从官方的NGINX Debian存储库中安装最新版本的NGINX。

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo 'deb http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
echo 'deb-src http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
apt-get update && apt-get install nginx

现在我们需要调整NGINX配置。导航到配置目录。

cd /etc/nginx

快速的Vim课程

使用箭头键浏览文本文档。要开始进行编辑,请按键盘上的“插入”按钮。如果您的键盘没有插入按钮,请按“ i”键。在vim的底部,您会注意到它现在显示“ INSERT”。插入模式可让您通过退格键删除或通过键入新字符来插入它们。

让我们打开nginx.conf并戳一下:

vi nginx.conf

让我们更改默认用户,检查辅助进程的数量,然后关闭访问日志。

指令“ user”和“ worker_processes”位于顶部附近。尝试以下值:

请注意,您需要将“ worker_processes”设置为服务器上可用的CPU内核数。在此示例中,我们有1,这是NGINX的默认设置。

user www-data;
worker_processes 1;

我们还希望禁用访问日志,以提高I / O性能。使用箭头键向下导航,直到找到“ access_log”。修改为以下内容:

access_log off;

最后,我们将设置“ client_max_body_size”以与稍后对PHP所做的一些更改相对应。让我们省掉麻烦,现在就做。在“ access_log”下面添加:

client_max_body_size 12m;

完成编辑后,按键盘上的“ Esc”。Vim将不再在文件底部说“ INSERT”。

要保存更改并退出vim,请按以下键序列:

SHIFT :(colon)
wq
Press "Enter"

上面的vim kung fu将您的更改写入磁盘并退出vim,将您带回到bash shell中。

现在,我们需要为我们的示例进行特定于站点的配置!我们还将删除其他示例配置。请尝试以下操作:

cd conf.d
rm example_ssl.conf default.conf
vi my_site.conf

我们将www.conf基于默认的NGINX配置大致简短地进行一些简短的调整。按插入,您可以复制/粘贴以下示例。

不要忘记编辑“ root”指令,使其指向您网站的根目录,而“ server_name”则与您的域相对应。

server {
    listen 80;

    root /path/to/your/website;
    index index.php index.html index.htm;

    server_name mydomainname.com www.mydomainname.com;

    location / {
            try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

现在,我们已经完成了本教程的NGINX配置部分。在安装PHP之后,我们将稍微重启NGINX。

PHP-FPM

PHP-FPM是PHP快速过程管理器。使用NGINX时需要使用它,因为与Apache不同,NGINX不会将PHP作为模块运行。这样做是为了减少NGINX的内存占用。还记得关于NGINX首先是反向代理的那一部分吗?这就是发挥作用的地方;发送到NGINX的PHP请求被馈送到PHP-FPM进行繁重的工作。

让我们安装PHP-FPM。

apt-get install php5-fpm php5-mysqlnd

请注意,根据您的PHP脚本要求,您可能必须安装默认不包含的其他PHP模块。热门的是php5-gdphp5-mcrypt。您可以使用以下命令安装它们。

apt-get install php5-module_name_here

现在我们已经安装了PHP-FPM,我们想要进行一些快速编辑以增强安全性和功能。

cd /etc/php5/fpm
vi php.ini

时间到另一个快速vim课程!该php.ini文件绝对巨大。寻找一些关键值将需要一整天。因此,既然我们知道我们在寻找什么,我们将进行搜索。输入以下内容:

/upload_max_filesize

默认情况下,此设置为2 MB。如果要允许用户将大于2 MB的文件上传到您的PHP应用程序,则需要对此进行更改。10M目前可能是一个安全的选择,但更高的值也是可以接受的。此设置将因配置而异。为了教程的缘故:

upload_max_filesize = 10M

另一个明显的安全漏洞。向下滚动一点或搜索。我们需要将“ allow_url_fopen”设置为“ Off”。这将阻止PHP运行以REMOTELY托管的PHP文件,也称为RFI(远程文件包含)。许多服务器都是以这种方式被黑客入侵的。

allow_url_fopen = Off

并且因为我们更改了“ upload_max_filesize”,所以我们现在必须更改“ post_max_size”。该值应比“ upload_max_filesize”大一点,因为我们必须考虑与PHP处理的请求相关的开销。

让我们使用“ / post_max_size”再搜索一次。

post_max_size = 12M

请注意,如果您决定使用比这些示例更大的PHP文件大小值,则必须返回到NGINX配置并编辑“ client_max_body_size”。

现在就这样。通过按“ Esc”确定您未处于编辑模式。保存并退出vim。

SHIFT :(colon)
wq
Press 'Enter'

PHP-FPM设置已完成。

玛丽亚数据库

即使在不断向NoSQL或MongoDB迈进的世界中,我们中的一些人仍然发现仅坚持使用MySQL会更容易。对于许多Web应用程序来说尤其如此。幸运的是,现在存在许多用于MySQL的“嵌入式”替代品。Debian 8现在包括了曾经流行的MariaDB。MariaDB是基于5.5版的Oracle MySQL的分支。出于所有意图和目的,MariaDB称为MariaDB10。它被认为是Oracle MySQL的完全替代产品。将其视为MySQL的核心,没有Oracle品牌和一些新功能。

apt-get install mariadb-server

重要信息:绝对肯定的是,您需要为MariaDB选择一个强健的root用户密码。将其保存在安全的地方。在MariaDB安装过程中,您需要输入两次。

让我们稍微调整一下MariaDB配置。我们将通过网络接口禁用MariaDB侦听。相反,与之前的PHP-FPM一样,我们将仅坚持使用UNIX套接字。大多数PHP应用程序应支持通过UNIX套接字而不是本地回送接口连接到数据库服务器。

cd /etc/mysql
vi my.cnf

查找“ bind-address = 127.0.0.1”。注释掉该行。在其上方或下方添加“跳过网络”。

#bind-address = 127.0.0.1
skip-networking

MariaDB已经完成!最终,您可能要调整MariaDB配置,具体取决于您将主要使用MyISAM还是InnoDB存储引擎,还取决于服务器可用的CPU核心数和RAM。默认值将使我们同时启动并运行。

让我们重新启动在本教程中修改了配置文件的每个服务。

systemctl restart nginx.service
systemctl restart php5-fpm.service
systemctl restart mysql.service

就是这样-我们都完成了。至此,您已经在线具有功能齐全的LNMP(LEMP)服务器!

本指南是在不做任何微调的情况下开始使用上述服务的一般经验法则。有关更多信息,请阅读上述软件包的文档。尽管此示例设置可以在“开箱即用”的情况下正常运行,但可以而且很可能需要进行调整以更好地满足您的需求。

推荐研究领域:

  • 利用和修改NGINX的缓存控件。
  • PHP-FPM“静态”,“动态”或“按需”任务管理器设置。
  • MariaDB性能调整可充分利用您的数据库服务器。


Leave a Comment

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

MineOS是一个完整的Minecraft服务器平台,具有Web GUI,自动备份,存档,性能统计信息以及其他功能。配置

在Debian 7上安装Prosody

在Debian 7上安装Prosody

在Debian 7上安装Prosody Prosody是用LUA编写的XMPP通信服务器。它旨在易于设置和配置,并通过syste高效

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Debian 9上安装Mailtrain Newsletter应用程序

如何在Debian 9上安装Mailtrain Newsletter应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。Mailtrains源位于GitHub上。锡

如何在Debian 9上安装Attendize

如何在Debian 9上安装Attendize

使用其他系统?Attendize是一个基于Laravel PHP框架的开源门票销售和事件管理平台。参加源鳕鱼

如何安装ARK:Debian 9的生存进化

如何安装ARK:Debian 9的生存进化

简介在本指南中,您将学习如何在Vultr VPS上创建ARK:Survival Evolved服务器。要求Vultr VPS至少为8192 M

在Debian / Ubuntu上设置您自己的DNS服务器

在Debian / Ubuntu上设置您自己的DNS服务器

本教程说明了如何在Debian或Ubuntu上使用Bind9设置DNS服务器。在整篇文章中,请相应地替换your-domain-name.com。在

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

Hiawatha是一种Web服务器,具有简单性,易用性和安全性。对于小型服务器,较旧的硬件或嵌入式设备,它是完美的解决方案

在Debian 7(Wheezy)上安装Plesk

在Debian 7(Wheezy)上安装Plesk

使用其他系统?Plesk是专有的Web主机控制面板,允许用户管理其个人和/或客户的网站,数据库

在Debian / Ubuntu上设置vsFTPd

在Debian / Ubuntu上设置vsFTPd

简介vsftpd代表“非常安全的FTP守护程序”。它是一个轻量级的FTP服务器。这个简短的教程说明了如何在Debian或Ubuntu上安装vsftpd

如何在Debian 9上安装LimeSurvey CE

如何在Debian 9上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

在Debian 7上使用MySQL视图

在Debian 7上使用MySQL视图

简介MySQL具有一个伟大的功能,称为视图。视图是存储的查询。可以将它们视为否则会很长查询的别名。在本指南中,

如何在Debian 9上安装和配置TaskBoard

如何在Debian 9上安装和配置TaskBoard

使用其他系统?简介TaskBoard是一个免费的开源工具,可以用来跟踪要做的事情。它提供了一个用户友好

如何在Debian 9上安装Osclass

如何在Debian 9上安装Osclass

使用其他系统?Osclass是一个开放源代码项目,可让您轻松创建分类站点,而无需任何技术知识。它的来源

如何在Debian 9上使用块存储设置Samba

如何在Debian 9上使用块存储设置Samba

Samba是一个开放源代码解决方案,允许用户设置快速安全的文件和打印共享。在本文中,我将介绍如何设置Samba wit

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息