如何在Mac OS系统安装虚拟机(vmware)并配置lnmp环境

作者:h0we777
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

概述

LNMP软件堆栈是一组软件,可用于为用PHP编写的动态网页和Web服务器。后端数据存储在Mysql数据库中,动态处理由PHP处理。

一、安装虚拟机

1.首选软件VM ware。百度搜索官网https://www.vmware.com/

2.点击下载 -> Workstation Pro -> Workstation 16 Pro for linux

在这里插入图片描述

3.下载后,打开软件

在这里插入图片描述

4.弹出窗口,点击打开,输入账号、密码点击好

在这里插入图片描述

二、下载Linux系统

百度搜索Linux系统 http://www.xitongzhijia.net/linux/ ,提前下载好Linux系统,我选择的是Ubuntu(注:系统后缀是ISO).
在这里插入图片描述

三、安装ISO系统

1.点击VM ware软件。第一步点击从光盘或映像中安装;第二步点击继续。

在这里插入图片描述

2.如果你的电脑初次使用VM ware ,第一步点击使用其他光盘和光盘映像(也可以把ISO系统直接拖砖到框里),点击后,在左栏点击下载,中间栏再去查找下载好到ISO系统。点击打开。

在这里插入图片描述
在这里插入图片描述

3.框里出现你所下载到系统后,点击继续。

在这里插入图片描述

4.进入Linux快捷安装界面,输入你到账户、密码,再点击继续

在这里插入图片描述

5.虚拟机配置完成,你也可以自定义设置,但最好默认,再点击完成。

在这里插入图片描述

7.界面出现您正在运行此虚拟机启用测通道缓解,点击好。

在这里插入图片描述

8.现在就是漫长的等待过程。等下面等进度条完成。

在这里插入图片描述

9.完成后点击用户,输入你等密码,这个密码就是刚才Linux快捷界面的密码。

在这里插入图片描述
在这里插入图片描述

10.完成安装。

在这里插入图片描述

11.如何更改中文界面,以下链接,很完美。

https://jingyan.baidu.com/article/3aed632edafe2b7011809148.html
在这里插入图片描述

四、nginx安装

1.打开ubuntu终端,输入sudo apt update ,再输入你的密码(注:你的密码不会显示符号,如:*、#@等。所以不要认为没有显示,密码输入正确才执行),显示图2,再输入sudo apt install nginx,开始安装,出现图3的选择,选择y确认安装,再回车 ,安装成功。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.安装完成后,nginx服务将自动启动,可以通过运行sudo systemctl status nginx命令进行验证。nginx已经安装到ubuntu上。

在这里插入图片描述

五、配置防火墙

1.输入sudo ufw app list命令,检查哪些ufw配置文件可用。确保将防火墙配置为允许HTTP(80)和HTTPS(443)端口上的流量。输入sudo ufw allow “Nginx Full”命令,Nginx将自己注册为ufw服务。再输入密码。回车。

在这里插入图片描述
在这里插入图片描述

2.输入sudo ufw status命令,验证状态类型,发现状态不活动。

在这里插入图片描述

3.输入sudo apt-get install ufw命令,安装防火墙。

在这里插入图片描述

4.输入sudo ufw enable 命令,开启防火墙,并在启动时自动开启。关闭所有外部对本机对访问,但本机访问外部正常。

在这里插入图片描述

5.输入sudo ufw status命令,查看防火墙状态。

在这里插入图片描述

6.输入sudo apt install curl命令,安装后,输入curl -4 icanhazip.com命令,查看IP地址。

在这里插入图片描述
在这里插入图片描述

7.打开浏览器输入localhost,打开,然后看到默认的Nginx登陆页面。

在这里插入图片描述

六、安装MySQL服务

1.输入sudo apt install mysql-server命令,安装mysql

在这里插入图片描述

2.出现提示时,通过键入Y确认安装,然后回车。

在这里插入图片描述

3.安装完成后,输入sudo mysql_secure_installation命令,运行mysql随附的安全脚本。删除一些不安全的默认设置,并锁定对数据库系统对访问,

在这里插入图片描述

4.将询问是否配置VALIDATE PASSWORD PLUGIN(注:启用这个功能只是判断,如果启用,与指定条件不匹配的密码将被Mysql拒绝并出现错误。禁用验证是很安全,但应该始终对数据库凭证使用强而独特对密码)。回答Y,将要求选择密码验证级别。输入2,密码级别最高(注:输入任何不包含数字、大写、小写字母和特殊字符或基于常见词典单词对密码时,都会收到错误消息)启用密码验证,将显示刚刚输入的密码强度(50),服务器将询问是否要继续使用该密码。按Y并回车。

在这里插入图片描述

5.对于其他的问题,在每个提示下按Y并回车。这将删除一些匿名用户和测试数据库,禁用远程root登陆,并加载新的规则。以便mysql做更改

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.完成后,输入sudo mysql命令,才测试是否能够登陆到mysql控制台。输入exit并回车可以退出mysql控制台。

在这里插入图片描述

七、安装php-fpm

1.输入sudo apt update和 sudo apt install php-fpm php-mysql命令,安装php-fpm软件包。安装过程中,让选择Y/N,选Y继续安装。

在这里插入图片描述

2.安装完成,FPM服务将会自动启动。输入systemctl status php7.4-fpm命令,回车。输出如下图:

在这里插入图片描述

八、编辑 Nginx 服务器配置区块

1.熟悉重要的nginx文件和目录

(1)内容:

/var/www/html/ :实际的web内容(默认情况下仅由默认的nginx页面组成),从/var/www/html目录中提供。这可以通过更改nginx配置文件来更改。

(2)服务器配置

  /etc/nginx :nginx配置目录。所有nginx配置文件都位于此处。
  /etc/nginx/nginx.conf :主要都nginx配置文件。可以对其进行修改以更改nginx全局配置。
 /etc/nginx/sites-available/ :可以存储每个站点服务器块都目录。nginx不会使用在此目录中找到的配置文件,除非它们链接到该sites-enabled目录。通常,所有服务器块配置都在此目录中完成,然后通过链接到另一个目录来启用。

/etc/nginx/sites-enabled/ :存储已启用到每个站点服务器块到目录。通常,通过链接到目录中找到到配置文件来创建这些文件sites-available.
/etc/nginx/snippets :此目录包含一些配置片段,这些片段可以包含在nginx配置中到其他位置。潜在到可重复配置段是重构为代码段的良好候选者。

(3)服务器日志

/var/log/nginx/access.log :除非将nginx配置为执行其他操作,否则对web服务器的每个请求都记录在此日志文件中。
/var/log/nginx/error.log :任何nginx错误都将记录在此日志中。

2. 创建文件结构,输入

sudo mkdir -p /var/www/example.com/html命令,创建域名根目录。
在这里插入图片描述

3.使用:$USER:$USER /var/www/example.com命令,sudochown-R$USER:$USER/var/www/example.com

在这里插入图片描述

4.如果尚未修改设置默认文件权限的umask值,则Web根目录的权限应正确。 为了确保权限正确并允许所有者读取,写入和执行文件,同时仅向组和其他人授予读取和执行权限,输入以下命令:

sudo chmod -R 755 /var/www/example.com
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210118125915457.png)

5.输入nano /var/www/example.com/html/index.html命令,创建服务器模块配置文件,输入以下代码。

在这里插入图片描述
在这里插入图片描述

6.输入 sudo nano /etc/nginx/sites-available/example.com命令,创建服务器配置块文件。

Server_name :匹配服务器配置块都域名
Root : nginx用来提供服务域名的文件目录
在这里插入图片描述

7.输入sudo rm /etc/nginx/sites-available/default命令,删除原来nginx的default配置。

8.想要启用新的服务器配置块文件,创建一个从文件/etc/nginx/sites-available/example.com到/etc/nginx/sites-enabled/目录的符号链接,这个目录将会在 Nginx 启动时被读取sudo ln -s /etc/nginx/sites-available/example.com/etc/nginx/sites-enabled/

在这里插入图片描述

9.为了避免添加其他服务器名称可能引起的哈希存储桶内存问题,有必要调整/etc/nginx/nginx.conf文件中的单个值。 打开文件;找到server_names_hash_bucket_size指令并删除#符号以取消注释该行。

sudo nano /etc/nginx/nginx.conf

在这里插入图片描述

10.输入sudo nano /etc/php/7.4/fpm/pool.d/www.conf命令,修改www.conf配置文件。把listen = /run/php/php7.4-fpm.sock注释掉,在后面加一行:listen = /var/run/php/php7.4-fpm.sock

在这里插入图片描述

11.输入sudo nano /etc/hosts 命令,修改/etc/hosts文件,在最后加上自己的网址。

在这里插入图片描述

12.输入sudo nginx -t命令,测试nginx配置文件,看看语法是否正确。如果没有错,输出将会是以下这样:

在这里插入图片描述

13.输入sudo service nginx restart命令,重启nginx服务,使修改生效。

在这里插入图片描述

14.现在转到浏览器,并输入example.com或www.example.com。加载后,看见自己的页面。

在这里插入图片描述

15.输入sudo /var/www/example.com/info.php命令,创建一个php文件来测试。

在这里插入图片描述
在这里插入图片描述

16.在Web浏览器中访问example.com/info.php页面。

在这里插入图片描述

17.通过该页面检查有关PHP服务器的相关信息后,最好删除。因为该文件包含有关PHP环境和ubuntu服务器的敏感信息。输入sudo rm /var/www/example.com/info.php命令删除。

在这里插入图片描述
在这里插入图片描述

18.输入sudo mysql命令,使用root账户链接到mysql控制台。

在这里插入图片描述

19.在mysql控制台中输入CREATE DATABASE example_database;命令,创建新数据库。

在这里插入图片描述

20.以下命令example_user使用mysql_native_password默认身份验证方法创建一个新用户,将此用户到密码定义为(Abc123456.),密码过于简单不能通过 :

在这里插入图片描述

21.在mysql控制台输入GRANT ALL ON example_database.* TO ‘example_user’@’%’;命令,授予该用户对example_database数据库对权限。这将为example_user用户提供对example_database数据库对完全特权,同时阻止该用户在服务器上创建或修改其他数据库。

在这里插入图片描述

22.在mysql控制台输入exit命令,退出mysql shell。

在这里插入图片描述

23.输入mysql -u example_user -p 命令。测试新用户是否具有适当对权限。(注:-p 此命令是将提示输入创建example_user用户时使用对密码[Abc123456.])

在这里插入图片描述

24.输入SHOW DATABASES; 命令,登陆到mysql控制台。查看example_database到访问权。

在这里插入图片描述

25.创建一个名为todo_list的测试表,在mysql控制台中,运行以下语句:

CREATE TABLE example_database.todo_list(
    -> item_id INT AUTO_INCREMENT,
    -> content VARCHAR(255),
    -> PRIMARY KEY(item_id)
    -> );
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210118130517815.png)

26.在测试表中输入以下几行内容。使用不同的值重复执行一条命令几次。

在这里插入图片描述
在这里插入图片描述

27.输入SELECT * FROM example_datavase.todo_list; ,查看数据是否保存在表中:

在这里插入图片描述

28.确认测试表中有数据,输入exit命令,退出mysql控制台。

在这里插入图片描述

29.输入nano /war/www/example.com/todo_list.php命令,创建一个新的php文件链接到mysql并查询内容。

在这里插入图片描述
在这里插入图片描述

30.在Web浏览器中访问example.com/todo_list.php页面,显示测试表中的内容。

在这里插入图片描述

九、了解更多安全知识

欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
请添加图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐