在Debian9上安装LEMP套装组件(Linux+nginx+mysql+php)

 Abyss   2019-10-16 07:36   793 人阅读  0 条评论

debian服务器环境详细配置教程.

-----------------------------------------------------------------------------------------

LEMP代表Linux、Nginx 、MySQL、 PHP,是LAMP堆栈的轻量级变体,包括Apache而不是Nginx。您会注意到它不是作为LEMP编写的,而是由于Nginx(Engine-X)这个词的发音。

LEMP消耗的资源远远少于LAMP堆栈,因此对于廉价的VPS机器和低端盒子来说更加适合。根据基准测试,它在重负载下的速度要快2.5倍。此外,为了加快速度,我们将安装MariaDB而不是MySQL,因为它更快,但仍然与原始MySQL完全兼容。

从一个干净的debian服务器系统开始。


第一步:

首先更新一下,不要问我为什么,只是单纯的喜新厌旧!!!

apt-get upgrade

apt-get update


复制运行以下命令安装Nginx:

apt-get install nginx -y


Nginx安装完成后。,在浏览器中输入到你的域(如未绑定域名则输入IP地址)。 将显示默认的Nginx欢迎页面:

(图片走丢了)


如显示和上图一样代表已成功安装。 通过systemctl启用它以在每次服务器启动时启动它:

systemctl enable nginx


为了最大限度地提高安全性,现在安装ufw(简单防火ABC-XYZ)并将其配置为允许HTTP,HTTPS,FTP和SSH连接,并拒绝所有其他连接:

apt-get install ufw -y

ufw allow 'Nginx Full'

ufw allow OpenSSH

ufw allow SSH

ufw allow ftp


通过运行启用它(使其激活):

ufw enable


在询问时输入y,并在浏览器中重新加载该站点。 如果仍然看到相同的欢迎页面,则表明已正确配置防火ABC-XYZ。 如果显示错误(例如拒绝访问),请禁用防火ABC-XYZ:


禁用命令:

ufw disable


检查一下其配置:

ufw status

如果没有看到之前已配置的文件列表,重新运行上面防火墙配置命令并再次启用它。


第二步:

安装MariaDB:

apt-get install MariaDB -y


安装MySql数据库:

apt-get install mysql-server -y


安装完成Mysql后启动它:

systemctl start mysql


搞定上面后,为了保持与原始MySQL产品的完全兼容性,MariaDB响应mysql命令。必须运行一个脚本(称为mysql_secure_installation)来保护数据库:

mysql_secure_installation


当它询问当前的root密码时,直接按回车,请不要问为什么。因为这是第一次配置它。 然后,为root用户输入新密码并回答y以删除匿名用户。 如果你不打算从服务器外部访问数据库,请回答下一个问题,否则键入n(建议全部回答y)。 输入y或按Enter键以查看随后的所有问题。


尝试通过运行连接到它:

mysql -u root -p


出现提示时,输入您刚设置的root密码。你会看到mysql提示符。

这意味着MariaDB正常工作并且得到了适当的保护。 输入exit退出控制台即可。


第3步:安装PHP

以PHP 7.0为例,默认情况下在Debian 9上可用。


要安装PHP 7.0,请运行:

apt-get install php-fpm php-mysql


然后,安装你需要的其他PHP扩展:

apt-get install php-mysql php-mbstring php-dev php-gd php-pear php-zip php-xml php-curl -y


要将刚刚安装的PHP版本设置为系统范围的默认版本,请运行以下命令:

update-alternatives --set php /usr/bin/php7.0


现在检查可用PHP的版本:

php --version

你会看到版本是7.0。


第4步:配置Nginx以提供PHP内容

PHP已安装且工作正常,但我们现在必须配置Nginx才能使用它,因为它不会自动执行(与Apache不同)。


Nginx将其配置文件存储在/ etc / nginx下。

当前启用的配置(将由Nginx应用)存储在名为sites-enabled的文件夹中。

同样,可用但未启用(因此无法从Internet访问)的站点存储在名为sites-available的文件夹中。


我们将编辑默认启用的站点的配置。

删除默认配置文件,因为我们不需要它:

rm /etc/nginx/sites-enabled/default


可以在/ etc / nginx / sites-available / default中找到默认站点配置的副本。

创建一个新的配置文件进行编辑:

nano /etc/nginx/sites-enabled/default


添加以下行(直接复制即可):

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
                try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    location ~ /\.ht {
                deny all;
    }
}


上面配置的第一部分指定Nginx应该侦听HTTP端口80以获取请求。 然后它将服务文件的根文件夹设置为/ var / www / html(这是存储网站文件的位置)并告诉Nginx首先尝试提供PHP文件(而不是HTML)。

显示的配置的其余部分告诉Nginx如何在请求时调用PHP,并拒绝访问源自Apache Web服务器的.htaccess和类似文件。 它们不被Nginx使用,不应该提供给用户,因为它们可能包含一些敏感信息。


重新启动Nginx以使更改生效:

systemctl reboot nginx


尝试在浏览器中重新加载你的站点(或IP地址)。 不出意外应该像以前一样看到相同的Nginx默认欢迎页面。

要测试PHP呈现是否有效,请在/var/www/html中创建一个PHP文件:

nano /var/www/html/index.php

将以下内容放入其中:

<?php

phpinfo();

?>


保存并关闭文件。

phpinfo()函数输出有关PHP安装的非常详细的信息。

在浏览器中重新加载该站点。 这一次,如果一切顺利,你会看到类似这样的页面 ( 如果不行就重启一下服务器即可 ):

(图片走丢了)


如果看到502 Bad Gateway错误,请检查上面配置Nginx的fastcgi_pass行(PHP版本可能不同,但不太可能)。


一切搞定后记得立即删除该文件,因为它会显示许多敏感信息:

命令:

rm /var/www/html/index.php


到此就结束了!!


接下来你能做什么?

你现在已在Debian 9服务器上安装并配置了LEMP堆栈。你现在可以在其上托管你的PHP网站,并且他们可以访问MariaDB数据库。例如,你可以安装WordPress,Joomla,Drupal,Moodle或任何其他可能需要访问数据库的PHP应用程序,它将使用足够的进一步配置。


本文地址:https://www.abyssw.com/post/3.html
声明:本文章为 Abyss 编辑发布,欢迎分享本文,转载请保留出处!
PREVIOUS:已经是最后一篇了

 发表评论


表情

还没有留言,还不快点抢沙发?