在ubuntu 20 LTS 上手动安装Nginx,MariaDB,PHP ,LNMP环境
第1步 – 安装Nginx Web服务
为了向您的网站访问者提供网页服务,我们将使用Nginx,这是一款流行的Web服务,以其整体性能和稳定性而闻名。
您将使用的所有软件都直接来自Debian的默认软件包存储库。这意味着您可以使用apt软件包管理套件来完成安装。
由于这是您第一次使用apt,因此应首先更新本地软件包索引,然后再安装服务:
[info]sudo apt update
sudo apt install nginx[/info]
在Ubuntu 20上,Nginx配置为在安装后开始运行。
如果您正在运行ufw防火墙,则需要允许连接到Nginx。您应该启用限制最严格的配置文件,该配置文件仍将允许您所需的流量。由于您还没有为服务器配置SSL,因此现在您只需要允许80端口上的HTTP通信。
您可以通过输入以下命令启用此功能:
[info]
sudo ufw allow 'Nginx HTTP'
sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
[/info]
现在,通过在Web浏览器中访问服务器的域名或公共IP地址来测试服务是否已启动并正在运行。
在Web浏览器中输入IP地址,您将看到Nginx的默认页面:
http://your_domain_or_IP
如果能看到Nginx默认页面,则说明您已经成功安装了Nginx。
第2步 – 安装MariaDB
现在,您已经启动并运行了Web服务,您需要安装数据库系统,以便能够存储和管理站点数据。
在Ubuntu 20中,传统上用于安装MySQL服务的mysql-server包替换为default-mysql-server包,这个包引用了MariaDB,它是Oracle原始MySQL服务的一个社区分支,目前是基于debian的软件包管理器存储库中提供的默认MySQL兼容数据库服务。
但是,为了获得长期兼容性,建议您不要使用该软件包,而应使用程序的实际mariadb-server包来安装MariaDB。
输入以下命令进行安装:
[info]sudo apt install mariadb-server[/info]
安装完成后,建议您运行与MariaDB一起预装的安全脚本。该脚本将删除一些不安全的默认设置,并锁定对数据库系统的访问。输入以下命令启动交互式脚本:
[info]sudo mysql_secure_installation[/info]
该脚本将引导您完成一系列提示,您可以在其中对MariaDB设置进行一些更改。第一个提示将要求您输入当前数据库的root密码,请不要与系统root目录混淆。该数据库root用户是对数据库系统具有完全权限的管理用户。因为您刚刚安装了MariaDB且还没有进行任何配置更改,所以该密码为空,因此只需在提示下按ENTER键即可。
下一个提示将询问您是否要设置数据库root密码。由于MariaDB对root用户使用了一种特殊的身份验证方法,该方法通常比使用密码更安全,所以现在不需要设置它,键入N,然后按ENTER键。
然后,您可以按Y,然后按ENTER键接受所有后续问题的默认设置。这将删除匿名用户和测试数据库,禁用远程root登录,并加载这些新规则,以便MariaDB立即执行您所做的更改。
完成后,输入以下命令登录到MariaDB控制台:
[info]
sudo mariadb
MariaDB [(none)]>
[/info]
请注意,您无需提供密码即可以root用户进行连接,这是因为管理MariaDB用户的默认身份验证方法是unix_socket而不是密码。尽管这看起来像是一个安全问题,但它使数据库服务更加安全,因为只允许以root用户登录MariaDB的用户是具有sudo权限的系统用户,这些用户通过控制台或运行具有相同权限的应用程序进行连接。实际上,这意味着您将无法使用管理数据库的root用户从PHP应用程序进行连接。
为了提高安全性,最好为每个数据库设置专用的用户,并为其设置较少的扩展权限,尤其是当您计划在服务器上托管多个数据库时。为了演示这种设置,我们将创建一个名为example_database的数据库和一个名为example_user的用户,但是您可以用不同的名称来进行替换。
要创建新数据库,请从您的MariaDB控制台输入以下命令:
[info]MariaDB [(none)]> CREATE DATABASE example_database;[/info]
现在,您可以创建一个新用户,并授予他对刚创建的自定义数据库的全部权限。以下命令将该用户的密码定义为password,但是您应该使用自己选择的安全密码替换该值。
[info]MariaDB [(none)]> GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;[/info]
这将为example_user用户提供对example_database数据库的全部权限,同时阻止该用户在服务器上创建或修改其他数据库。
更新权限以确保在当前会话中保存并可用,然后退出:
[info]MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit[/info]
您可以使用自定义用户再次登录到MariaDB控制台,以测试新用户是否具有适当的权限:
[info]mariadb -u example_user -p[/info]
注意此命令中的-p选项,它将提示您输入创建example_user用户时使用的密码。登录到MariaDB控制台后,请确认您有权访问example_database数据库:
[info]
MariaDB [(none)]> SHOW DATABASES;
Output
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
rows in set (0.000 sec)
exit
[/info]
至此,您的数据库系统已经建立,您可以继续安装PHP,它是LEMP包的最后组件。
第3步 – 安装PHP进行处理
您已经安装了Nginx来提供内容,并安装了MySQL来存储和管理数据。现在,您可以安装PHP来处理代码并为Web服务生成动态内容。
虽然Apache在每个请求中都嵌入了PHP解释器,但Nginx需要一个外部程序来处理PHP并充当PHP解释器本身和Web服务之间的桥梁。这可以在大多数基于PHP的网站中提供更好的整体性能,但是需要其他配置。您需要安装php-fpm,它代表“PHP fastCGI进程管理器”,并告诉Nginx将PHP请求传递给该软件进行处理。此外,还需要php-mysql模块,该模块允许PHP与基于MySQL的数据库进行通信。核心PHP软件包将自动作为依赖项安装。
要安装php-fpm和php-mysql软件包,请运行:
[info]sudo apt install php-fpm php-mysql[/info]
现在,您已经安装了PHP组件。接下来,您将配置Nginx以使用它们。
第4步 – 配置Nginx使用PHP处理器
使用Nginx服务时,可以使用用于封装配置详细信息的服务块(类似于Apache中的虚拟主机),并在一台服务器上托管多个域。在本教程中,我们将使用your_domain作为示例域名。
在Ubuntu 20上,Nginx默认情况下启用了一个服务块,并配置为在/var/www/html目录中提供文档。尽管这对于单个站点来说效果很好,但是如果您托管多个站点,则可能变得难以管理。我们不必修改/var/www/html,而是在/var/www中为your_domain网站创建一个目录结构,如果客户端请求与任何其他站点都不匹配,则保留/var/www/html作为默认目录。
为your_domain创建Web目录,如下所示:
[info]sudo mkdir /var/www/your_domain[/info]
接下来,使用$USER环境变量分配目录的所有权,该环境变量引用当前的系统用户:
[info]sudo chown -R $USER:$USER /var/www/your_domain[/info]
然后,使用编辑器在Nginx的sites-available目录中新建一个配置文件:
[info]sudo vim /etc/nginx/sites-available/your_domain[/info]
这将创建一个新的空白文件,粘贴以下基本配置:
[info]
server {
listen 80;
listen [::]:80;
root /var/www/your_domain;
index index.php index.html index.htm;
server_name your_domain;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
}
[/info]
这是一个基本配置,它监听80端口并为刚创建的Web目录中的文件提供服务。它只会响应server_name提供的域名或IP地址的请求,并且所有以.php结尾的文件将由php-fpm在Nginx将结果发送给用户之前进行处理。
完成编辑后,保存并关闭文件。通过链接到Nginx的sites-enabled目录中的配置文件来激活您的配置:
[info]sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/[/info]
这将告诉Nginx在下一次重新加载时使用配置。您可以通过输入以下命令来测试配置是否存在语法错误:
[info]sudo nginx -t[/info]
如果报告了任何错误,请返回配置文件以查看其内容,然后再继续。
准备好后,重新加载Nginx以使更改生效:
[info]sudo systemctl reload nginx[/info]
接下来,您将在新的Web目录中创建一个文件以测试PHP处理。
第5步 – 创建一个PHP文件以测试配置
您的LEMP包现在应该已全部设置好了。您可以对其进行测试,以验证Nginx是否可以将.php文件正确地传递给PHP处理器。
您可以通过在文档目录中创建一个测试PHP文件来实现。在文档目录中用文本编辑器新建一个info.php文件:
[info]vim /var/www/your_domain/info.php[/info]
将以下内容输入或粘贴到新文件中。这是有效的PHP代码,它将返回有关您的服务器的信息:
[info]<?php
phpinfo();
?>[/info]
完成后,保存并关闭文件。现在,您可以在Web浏览器中访问此页面,方法是访问您在Nginx配置文件中设置的域名或公共IP地址,然后输入/info.php:
[info]
http://your_domain/info.php
[/info]
您将看到一个包含有关服务器的详细信息的网页。在通过该页面检查有关PHP服务器的相关信息之后,最好删除您创建的文件,因为该文件包含有关PHP环境和Debian服务器的敏感信息。您可以使用rm命令来删除该文件:
[info]rm /var/www/your_domain/info.php[/info]
版权声明:
作者:大傻 瓜
链接:https://a112113.fun/uncategorized/88.html
来源:赖皮鬼
文章版权归作者所有,未经允许请勿转载。

共有 0 条评论