首页 > 系统相关 >Ubuntu24手动部署LNMP环境

Ubuntu24手动部署LNMP环境

时间:2024-07-25 22:51:26浏览次数:12  
标签:sudo 手动 LNMP 命令 PHP MySQL php root Ubuntu24

前提条件

手动部署LNMP环境时,已有ECS实例必须满足以下条件:

实例已分配公网IP地址或绑定弹性公网IP(EIP)。

操作系统必须为Ubuntu 22.04、Ubuntu 20.04。

实例安全组的入方向规则已放行22、80、443端口。具体操作,请参见添加安全组规则。

重要
基于服务器数据安全考虑,本文仅说明部署与测试LNMP环境所必须放行的端口,您可以根据实际需求,放行其他应用所需的端口号。例如,远程连接MySQL数据库时,需要放行MySQL默认占用的3306端口。

步骤一:关闭防火墙

重要
为避免因使用管理员权限不当造成不可预期的风险,建议您使用普通用户操作。如果普通用户没有sudo权限,具体操作,请参见如何为普通用户添加sudo权限。

远程连接需要部署LNMP环境的ECS实例。

具体操作,请参见连接方式概述。

关闭系统内部防火墙。

运行以下命令,检查防火墙当前状态。

sudo ufw status
如果防火墙状态为Status: inactive,则表示防火墙为关闭状态。

如果防火墙状态为Status: active,则表示防火墙为开启状态。

可选:关闭防火墙。

如果您的防火墙为开启状态,需要运行以下命令,关闭防火墙并关闭开机自启动防火墙。

sudo ufw disable
说明
如果您想重新开启防火墙并开启开机自启动防火墙,请运行sudo ufw enable命令。

步骤二:安装Nginx

运行以下命令,更新Ubuntu系统内的软件包。

sudo apt update
运行以下命令,安装Nginx。

sudo apt -y install nginx
运行以下命令,查看Nginx版本。

nginx -v
返回结果类似如下所示,表示Nginx已成功安装。

nginx version: nginx/1.18.0 (Ubuntu)

步骤三:安装并配置MySQL

安装MySQL。

运行以下命令,安装MySQL。

sudo apt -y install mysql-server

运行以下命令,查看MySQL版本。

mysql -V

返回结果类似如下所示,表示MySQL已成功安装。

mysql  Ver 8.0.36-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

配置MySQL。

运行以下命令,进入MySQL。

sudo mysql

运行以下命令,设置root用户密码。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';

本示例中密码以Mysql@1234为例,示例命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234';

运行以下命令,退出MySQL数据库。

exit;

运行以下命令,对MySQL进行安全性配置。

sudo mysql_secure_installation

根据命令行提示,依次完成以下配置项。

输入root用户的密码。本示例中输入Mysql@1234。

root@iZbp19jsi7s0g7m4zgc****:~# sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

说明
在输入密码时,系统为了最大限度地保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。

输入Y,设置密码验证策略。

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

根据提示,选择密码验证策略。

本示例输入2。

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

输入Y,更改root用户密码。

Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y

输入root用户密码。

New password:


Re-enter new password:

Estimated strength of the password: 100

输入Y,确认使用已设置的密码。

Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

输入Y删除MySQL自带的匿名用户。

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y

输入Y,禁止MySQL的root用户的远程登录权限。

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y

输入Y,移除test数据库。

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

输入Y,重新加载授权表。

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

当命令行回显All done!时,表示配置完成。

测试登录MySQL数据库。

运行以下命令,登录MySQL数据库。

sudo mysql -uroot -p

在命令行回显的Enter password:后输入已设置的数据库密码。

说明
在输入密码时,系统为了最大限度地保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。

成功登录MySQL数据库后,命令行信息如下所示。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

运行以下命令,退出MySQL数据库。

exit;

步骤四:安装并配置PHP

安装PHP。

运行以下命令,安装PHP。

sudo apt -y install php-fpm

运行以下命令,查看PHP版本。

php -v

返回结果如下所示,表示PHP已成功安装。

PHP 8.1.2-1ubuntu2.17 (cli) (built: May  1 2024 10:10:07) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.17, Copyright (c), by Zend Technologie

修改Nginx配置文件以支持PHP。

运行以下命令,打开Nginx默认的配置文件。

sudo vim /etc/nginx/sites-enabled/default

按i进入编辑模式,修改Nginx配置文件。

在server{}内,找到index开头的配置行,在该行中添加index.php。nginx-indexphp

在server{}内找到location ~ .php$ {},去除以下配置行的注释符号。

location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}

按Esc退出编辑模式,然后输入:wq并按Enter键,保存并退出文件。

运行以下命令,重启Nginx服务。

sudo systemctl restart nginx.service

配置PHP。

运行以下命令,在Nginx网站根目录中,新建phpinfo.php文件。

sudo vim <网站根目录>/phpinfo.php
<网站根目录>为变量,可通过Nginx配置文件查看。本教程中Nginx配置文件为默认文件/etc/nginx/sites-enabled/default,您可以运行cat /etc/nginx/sites-enabled/default命令查看文件内容,其中如下图所示的/var/www/html部分即为网站根目录。网站根目录因此,对应的运行命令为:

sudo vim /var/www/html/phpinfo.php

按i进入编辑模式,添加以下配置信息。

phpinfo()函数会展示PHP的所有配置信息。

按Esc退出编辑模式,然后输入:wq并按Enter键,保存并退出文件。

运行以下命令,启动PHP。

sudo systemctl start php8.1-fpm

步骤八:测试访问PHP配置信息页面
在本地Windows主机或其他具有公网访问能力的Windows主机中,打开浏览器。

在浏览器的地址栏输入http://<ECS实例公网IP地址>/phpinfo.php进行访问。

访问结果如下图所示,成功查看到PHP配置信息页面,表示LNMP环境部署成功。

Ubuntu 22.04Ubuntu 20.04
image

后续步骤
成功搭建LNMP环境后,建议您删除phpinfo.php测试文件,消除数据泄露风险。

sudo rm -rf <网站根目录>/phpinfo.php

本教程中网站根目录为/var/www/html,则需要运行以下命令删除测试文件。

sudo rm -rf /var/www/html/phpinfo.php

标签:sudo,手动,LNMP,命令,PHP,MySQL,php,root,Ubuntu24
From: https://www.cnblogs.com/wxianing/p/18324304

相关文章

  • 手动部署?NONONO,动态上传热部署才是王道!!
    近期开发系统过程中遇到的一个需求,系统给定一个接口,用户可以自定义开发该接口的实现,并将实现打成jar包,上传到系统中。系统完成热部署,并切换该接口的实现。定义简单的接口这里以一个简单的计算器功能为例,接口定义比较简单,直接上代码。public interface Calculator {  ......
  • Ubuntu24.04 部署Kubernetes
    参考文章:Ubuntu24.04安装Kubernetes-软件简史-SegmentFault思否一共部署三台机器,IP:192.168.33.4、192.168.33.5、192.168.33.6都是24.04的虚拟机1)设置HostName更新hosts文件登录到各个主机,并使用hostnamectl命令设置它们各自的主机名。sudohostnamectlset......
  • 如何执行此命令而不需要每次打开 EXE 时手动执行它
    我使用pyinstaller从我的python项目中制作了一个exe文件。当我尝试执行EXE文件时,我遇到了以下错误。Traceback(mostrecentcalllast):File"main.py",line7,in<module>File"<frozenimportlib._bootstrap>",line1360,in_find_and_loadFile&quo......
  • 新手教学系列——如何在MacOS 10.13.6(老系统)手动安装和配置Pyenv
    前言对于使用老旧系统(如MacOS10.13.6)的用户来说,安装和管理Python版本可能会遇到一些挑战。特别是由于Homebrew不再支持老系统,许多软件安装变得困难重重。本文将详细介绍如何在这样的环境下手动安装和配置Pyenv,让你能够顺利管理Python版本。为什么选择Pyenv?Pyenv是一个简......
  • windows USB 设备驱动开发-USB Type-C 手动互操作性测试过程
    驱动开发中,可能需要测试已启用USBType-C的系统和Windows的互操作性。本文为设备和系统制造商提供了指南,用于对公开USBType-C连接器的系统和设备执行各种功能和压力测试。它假定读者熟悉官方USB规范和xHCI互操作性测试过程,可从USB.ORG下载。可以使用USBType-C......
  • SQL 命令在手动运行时工作正常(SQL Developer),但在 Python 的 oracledb 模块中给出 ORA-
    我正在使用OracleSQL数据库,并且我想运行该命令ALTERSESSIONSETNLS_DATE_FORMAT='YYYY-MM-DD';当我从SQLDeveloper应用程序手动运行它时,它工作正常。但是,当我使用oracledb模块从Python运行它时,出现以下错误:ErrorrunningSQLscript:ORA-00922:mi......
  • vmware 17.5安装ubuntu24.04-server版本
    下载地址官网GetUbuntu|Download|Ubuntu清华源清华大学开源软件镜像站|TsinghuaOpenSourceMirror中科大源http://mirrors.ustc.edu.cn/ubuntu-releases/阿里云开源镜像站http://mirrors.aliyun.com/ubuntu-releases/兰州大学开源镜像站http://mirro......
  • Ubuntu24.04安装
    1.系统安装1.1引导界面开机进入grub引导界面后,会有安装服务和测试内存两个选择,选择第一个进行安装。1.2语言选择这里的语言选择的是安装过程中的语言,根据个人偏好选择即可,不过没有中文,所以默认使用英文就好。1.3键盘配置默认选择的是English,可以在键盘布局(Layou......
  • LNMP
    搭建LNMP动态网站:在不同环境下访问,网站环境又可能变化静态网站:在不同环境下访问,网站环境不会变化【1】、搭建LNMPL:LinuxN:nginxM:Mariadb/MysqlP:PHP/PythonLNMP:也被称为动静分离#安装nginxroot@proxy[05:08:54]:/opt/nginx-1.24.0$./configure&&make&&makeins......
  • VS Code 调试器:手动单步执行有问题的代码时不会挂起;否则,它会挂起。编辑器+调试器必须
    编辑:请注意,这个问题特定于VSCodePython调试器以及VSCode编辑器提供的功能。我有一个有问题的代码部分。该部分的开头用打印语句装饰,结尾也是如此:print("startingproblematicsection")#<--breakpointsethere#variouscalls#<---programhangssomewhere......