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电脑均可使用!