如何在Debian 9 Stretch上安装LEMP堆栈

时间:2020-03-05 15:25:11  来源:igfitidea点击:

在本文中,我们将指导我们将LEMP堆栈安装到全新的Debian GNU/Linux 9 Stretch。
LEMP代表Linux,Nginx(如发动机X),MySQL和PHP。
从Debian 9,MariaDB是默认的MySQL服务器。
但我们也可以选择MySQL进行安装。

除了我们使用nginx之外,除了apache httpd之外,它是更受欢迎的 LAMP 堆栈的对应部分。
早些时候我们尝试了在Ubuntu和Docker容器上的LEMP堆栈。

这次我们可以尝试Debian Flavor。

安装Nginx,MariaDB和PHP

我们将通过安装我们需要的所有包来开始。
nginx,mariadb和php都是由此命令安装的

apt install nginx mysql-server mysql-client php-fpm php-mysql libfcgi0ldbl

现在我们可以使用Systemd启动所有必需的服务

systemctl start php7.0-fpm nginx mysql

然后启用它们在启动时开始

systemctl enable php7.0-fpm nginx mysql

配置LEMP堆栈

所以我们现在有LEMP堆叠并运行,我们需要配置它,以便为某些页面提供服务。

首先要做的是运行mysql_secure_installation脚本。

mysql_secure_installation

我们在此处回答y y并为root添加新密码。
接下来,我们需要为FastCGI绑定套接字

cgi-fcgi -bind -connect /run/php/php7.0-fpm.sock

然后我们转到在nginx配置文件夹中配置可用站点。
首先,我们将默认配置移动为备份

mv /etc/nginx/sites-available/default /etc/nginx/sites-available/df.bk

接下来我们制作新的空文件

nano /etc/nginx/sites-available/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:/var/run/php/php7.0-fpm.sock;
        }
}

最后,我们制作一个测试页,将向我们展示关于此服务器的信息:

echo "<?php phpinfo(); ?>" > /var/www/html/index.php

我们将创建一个将使数据库连接的PHP文件

nano /var/www/html/db.php
<?php
$dbh = mysqli_connect('localhost', 'theitroad', 'password');
if (!$dbh) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully to theitroad test database';
mysqli_close($dbh);
?>

为了能够连接到数据库,我们需要使用密码添加OniTor用户。
这将通过以下命令完成

mysql -u root -e "CREATE USER 'theitroad'@'%' IDENTIFIED BY 'password';"
mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'theitroad'@'%' WITH GRANT OPTION"

测试它

为了测试这一点,让我们重新启动所有服务:

systemctl restart php7.0-fpm nginx mysql

接下来打开浏览器,导航到服务器的IP,我们应该找到这样的内容:

如果我们转到相同的URL但是添加/dB。
PHP我们将获得数据库连接页面

保护服务器

我们将使用简单的防火墙来保护Debian 9服务器。
此命令将安装它:

APT安装UFW.

我们确定需要SSH访问,因此允许打开TCP端口22.

ufw allow 22/tcp

接下来我们可以启用防火墙:

ufw enable

接下来,我们允许MySQL,HTTP和HTTPS端口

ufw allow 3306/tcp
ufw allow 80/tcp
ufw allow 443/tcp (allow if you use https)