Debian9上LEMP套装组件(Linux\nginx\mysql\php)怎样安装

  Debian9上LEMP套装组件(Linux ginxmysqlphp)怎样安装?

  要解答这个问题,首先要讲解下什么是Debian!

  Debian 作为最早最老牌的 Linux 发行版之一,它在创建之初便紧密遵循 GNU 规范并坚守 Unix 和开源自由软件的精神。最大优点是极其稳定快速,同时拥有强大的 APT 包管理机制和丰富的软件源,可以方便地安装和平滑升级软件和系统,省去很多编译安装和版本升级的麻烦……DebianGNU/Linux 可以称得上是 Linux 中的典范,它的稳定版 (Stable) 真的相当相当的稳定,而且在易于维护 (安装/升级) 这点来说,Debian 几乎是众多发行版中的首选,加上系统的质量非常高,因此在很多生产服务器上都会采用它。并且,很多知名的 Linux 发行版,包括当下流行的 Ubuntu、Deepin、树莓派的 Raspbian 等,其实都是基于 debian 衍生而来的!不过,由于没有商业化运作,在宣传力度和知名度上,Debian 比起 ubuntu 确实要差大大的一截。不过即便如此,在全球范围内依然有无数用户痴迷于 Debian!

  下面进入正题!

  从一个干净的VPS开始

  至少512Mb的RAM

  15Gb的可用磁盘空间

  您将需要root用户访问权限

  您必须为您的域(本教程中的example.com)设置DNS记录,以便指向您的VPS才能安装Let的加密证书。如果您没有,请改为访问您的IP地址并跳过最后一步。

  第1步:安装Nginx

  安装和防火ABC-XYZ设置

  首先,以root身份或以sudo权限登录到您的服务器。 然后,更新包管理器的缓存:

  sudo apt update

  运行以下命令安装Nginx:

  sudo apt install nginx -y

  Nginx现已安装。 在浏览器中转到您的域(如果没有域名,则转到IP地址)。 将显示默认的Nginx欢迎页面:

  这意味着Nginx已成功安装。 通过systemctl启用它以在每次服务器启动时启动它:

  sudo systemctl enable nginx

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

  sudo apt install ufw -y

  sudo ufw allow 'Nginx Full'

  sudo ufw allow OpenSSH

  sudo ufw allow SSH

  sudo ufw allow ftp

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

  sudo ufw enable

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

  sudo ufw禁用

  并检查其配置:

  sudo ufw status

  您将看到已启用的配置文件列表。 如果您没有看到上面的那些,请重新运行命令并再次启用它。

  配置目录

  在Debian 9上,Nginx将其配置文件存储在/ etc / nginx下,服务静态文件的默认目录是/ usr / share / nginx / html。 当我们需要更改配置并添加新文件时,这将在后面的步骤中变得很重要。

  第2步:安装MariaDB

  安装MariaDB(默认情况下可用于apt):

  sudo apt安装mysql-server -y

  安装完成后启动它:

  sudo systemctl启动mysql

  为了保持与原始MySQL产品的完全兼容性,MariaDB响应mysql命令。

  安装MariaDB之后,必须运行一个脚本(称为mysql_secure_installation)来保护数据库:

  sudo mysql_secure_installation

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

  尝试通过运行连接到它:

  sudo mysql -u root -p

  出现提示时,输入您刚设置的root密码。

  你会看到mysql提示符:

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

  第3步:安装PHP

  您现在将安装PHP 7.0,默认情况下在Debian 9上可用。

  要安装PHP 7.0,请运行:

  sudo apt安装php-fpm php-mysql

  然后,安装您最有可能需要的其他PHP扩展:

  sudo apt安装php-mysql php-mbstring php-dev php-gd php-pear php-zip php-xml php-curl -y

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

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

  现在检查可用PHP的版本:

  sudo php --version

  你会看到版本是7.0,应该是。

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

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

  如步骤1中所述,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以使更改生效:

  sudo systemctl重启nginx

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

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

  sudo nano /var/www/html/index.php

  将以下内容放入其中:

  phpinfo();

  ?>

  保存并关闭文件。

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

  在浏览器中重新加载该站点。 这一次,如果一切顺利,你会看到类似这样的页面:

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

  请务必立即删除该文件,因为它会显示许多敏感信息:

  rm /var/www/html/index.php

  第5步:使用Let的加密保护您的域

  如果您拥有完全注册并指向服务器的域名,则可以使用免费的Let's Encrypt TLS证书保护域名。 这样做的好处是,您将拥有HTTPS访问权限,并且所有浏览器中的域名旁边都会显示一个挂锁。

  我们将使用Certbot生成和配置加密证书,Certbot是为此目的而创建的免费程序。 让加密证书在90天后过期,Certbot会在确定时间(默认为每60天)时自动续订,因此您根本不必担心它们。

  要安装Certbot,首先需要通过运行以下命令启用Debian Backports存储库:

  secho "deb http://ftp.debian.org/debian stretch-backports main" |

  sudo tee /etc/apt/sources.list.d/backports.list

  更新包管理器缓存:

  sudo apt update

  然后,安装Certbot:

  sudo apt install certbot python-certbot-nginx -t stretch-backports -y

  完成后,运行Certbot:

  sudo certbot --nginx --rsa-key-size 4096

  输入您知道要检查的电子邮件地址,然后输入A来同意服务条款。如果您想订阅EFF的新闻通讯,请按Y,然后输入您的域名。然后,Certbot会询问您是否要将所有流量重定向到HTTPS - 您这样做,因此输入2。

  您将收到一条祝贺消息,这意味着您的域现在使用来自Let's Encrypt的免费HTTPS证书进行保护。再次在浏览器中刷新您的域名。挂锁将显示在您站点地址的左侧,这意味着连接已加密。如果需要,您可以通过SSL服务器测试运行您的站点,并看到您将获得A或更高。

  接下来你能做什么

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

  多开云-基于稳定高速24小时不关机的云端技术,性价比高的VPS挂机宝,云主机,服务器,云电脑,一机多IP.提供免费的手机电脑远程连接软件,安卓ios苹果mac电脑均可使用! 

会员中心