本文将记录搭建LNMP环境的所有细节, 方便日后查看.
最终效果:
主机:windows10
虚拟机:virtualBox
系统:Ubuntu20.04
WEB服务器:Nginx1.8.x
动态程序语言:Php7.4.x
数据库:MySQL8.x
本人小白一枚, 曾在远程centos上部署过lnmp环境.最近, 想在自己电脑上搭个开发环境,就试试Ubuntu吧.
整个过程还是蛮艰辛的,花了我48个小时.如果去掉吃饭/喝茶/上厕所时间,整个面对电脑的时间长达十几个小时.为什么花了这么长时间? 可能因为整个过程是单线程的, 你只能一步一步往下走, 无法跳过其中某个步骤.如果踩中某个坑,你只能跳出来继续前进.而我,作为新手, 就踩了几个巨坑.
阅读前声明:一些超级简单, 几乎不会产生意外结果的步骤会简单带过,懂的请略过,如果不懂请自行百度解决.
`$ 开头的句子 代表普通用户输入的命令
`# 开头的句子 代表root权限输入的命令
如果命令语句中包含中文, 代表该中文需要被替换为你自己的东西.比如
本文展示的命令是: chown 用户名 /var/www
实际的输入命令是: chown fory /var/www
其中fory是我自己的用户名,你替换为自己的名字就好,比如tom , Michael 什么的.
第一步:下载安装虚拟机.
下载地址:https://www.oracle.com/cn/virtualization/technologies/vm/downloads/virtualbox-downloads.html
点击 [windows安装程序] 下载
下一步...安装
第二步:安装Ubuntu
下载Ubuntu
下载地址:https://ubuntu.com/
点击顶部 [DOWNLOAD] 下载
得到文件 ubuntu-20.04.1-desktop-amd64.iso
安装Ubuntu到virtualBox
鼠标右键 管理员权限启动VirtualBox
左上角 [新建] >> 输入名称 >> 类型选 Linux >> 版本选 Ubuntu(64-bit) >>
内存给默认或2048MB随你喜欢 >>
勾选 现在创建虚拟硬盘 >>
默认勾选 VDI >>
勾选 固定大小 >>
选择自己电脑上的一个空白文件夹(有SSD的放在SSD盘上), 硬盘大小最少给20GB 如图
(鄙人第一次只给了默认10GB, 结果很快就满了,泪目)
设置内存 核心数 显存 网络选桥接 >>
(桥接会把虚机直接连到路由器上, 如果选NAT就只是能上网)
双击或点绿色→启动Test虚机 >>
选择启动盘为 上一步骤下载的ISO文件 >>
选择安装的语言为中文 >>
取消勾选 下载更新.. >>
(可以等装完再更新,否则非常慢)
设置登录用户名密码 >>
漫长的等待...
提示拔掉光盘重启 >>
点击虚机上方菜单 设备>分配光驱>移除虚拟盘 >>
确定重启
大功告成.
第三步:LNMP安装前准备
实现主机和虚机粘贴板共享
点击打开终端 >>
进入管理员模式 >>
`$ sudo -i
`# apt install gcc perl make
点击虚机菜单 [设备] > 安装增强功能 > 确定运行
装好之后就可以从自己电脑上复制东西粘贴到虚机里面了.这里必须先装gcc等, 否则安装增强功能会失败.
更换国内源
`# gedit /etc/apt/sources.list
在最前面添加:
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
点击保存 关闭
更新apt
`# apt upgrade
第四步:安装Nginx
`# apt install nginx
装完之后就会自动启动Nginx服务,而且是开机启动那种.
第五步:安装php
`# apt install php php-fpm
装完之后也会自启动
前方高能预警.
添加php扩展
就是这一步,卡了我一整天, 对于小白来说鬼知道你们怎么给包起名呢, 鬼知道这些个包属于哪些个包,经过漫长的探索,终于找到了核心解决方案.这个方案就是Ubuntu家的包搜索引擎:
下面以安装pdo_mysql扩展为例:
一开始,我是盲猜安装命令 apt install php-pdo_mysql , 结果当然是各种不行.正确做法是:
打开上面的搜索页,选择第二个搜索引擎输入pdo_mysql
然后搜索得到下面的结果
一看就懂了, 不是安装php-pdo_mysql, 而是安装php-mysql就包含了pdo_mysql这个包.
`# apt install php-mysql
完事!
第六步: 安装mysql
`# apt install mysql-server
会自启动
第七步:配置Nginx勾搭php
前方高能预警.
把Nginx配置文件的所有者改成自己,而不是默认的root
`# chown -R 用户名 /etc/nginx/sites-enabled
改完之后, 就可以像windows那样, 去编辑配置文件了:
添加一个php站点
用文件管理器打开目录 /etc/nginx/sites-enabled >>
右键在终端打开 >>
新建你的站点配置文件 >>
`$ touch 配置文件名称
鼠标双击打开这个配置文件, 添入:
server {
listen 80;
root /var/www/配置文件名称;
index index.php;
server_name 你的域名;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
保存, 关闭x
至此, 我没有动过默认安装配置一下, 已经可以用了,
为什么还是不行?
记得重启下Nginx使配置生效!
`# nginx -s reload
全剧终 The end !
别忘了在生产环境, 把你chown夺权过的文件都还给root...
时间不早了, 还有文件权限相关的东西 下次再说吧