如何在Debian 9 Stretch上安装LEMP堆栈
在本文中,我们将指导我们将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)