书接上回,我们继续实操搭建nginx+php+mysql+thinkphp5。
背景查看买阿里云服务器,实操搭建nginx+php+thinkphp5全过程(1)
服务器配置查看买阿里云服务器,实操搭建nginx+php+mysql+thinkphp5全过程(2)
开始尝试初始化云盘,看买阿里云服务器,实操搭建nginx+php+mysql+thinkphp5全过程(3)
上一次,【停止】-【重新初始化云盘】,这次我点击了【强制停止】,【确定】。然后切换到云盘这边。
然后我选择账户密码,下面勾选默认。点击【确认重新初始化云盘】:
依然是严谨的短信认证,我是本人:
弹框提示正在初始化:
等待了30s左右,状态绿了:
顺便,记录一下云盘的详细信息:
言归正传,我们从云盘切换到实例,然后点击【远程连接】:
我们再去看看,我们的刚才重启云盘重置了用户名密码,这边切换实例,修改一下密码:
这个时候,查看文件啥的,都是初始化的干净的环境:
查看程序,也看不到之前安装过的痕迹:
终于,和新买来的服务器状态一样一样了,正式开启我们配环境的过程吧。
(我是分隔线)
本篇文章主要讲,我那个临期的阿里云服务器,我要让它最后发光发热,重置后实操搭建nginx+php+mysql环境的一些准备工作,下期再说具体每个怎么搭。后面还会给大家演示Thinkphp5的项目怎么跑起来。言归正传,先看一下目标和配置:
目标:搭建nginx+php+mysql
操作系统:CentOS 7.6 64位
CPU&内存:2核(vCPU)4 GiB
当前使用带宽:3Mbps
即将到期,我们抓紧时间。
进入【远程连接】,这次不再赘述,详细步骤看之前的几篇,我们进入shell命令行页面。
1.安装源配置:
1.1 配置yum:
# 更新yum源
yum update
结果:
我选择yes,输入的y,但是感觉更新了个寂寞,没有看到这次目标源的记录。
终于Complete!
1.2安装epel
# 安装epel
yum -y install epel-release
先普及一下概念:
什么是EPEL 及 Centos上安装EPEL
RHEL以及他的衍生发行版如CentOS、Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题。
什么是EPEL?
EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。
结果:
1.3查看可安装版本
# 查询一下可安装的包和版本
yum list //如果前面执行了update,这边结果有很多【此条命令忽略】
# 具体查询要安装nginx
yum list nginx
结果:(nginx v1.1.20)
# 具体查询要安装php
yum list php
结果:(php v5.4.16)
下面普及一下php的搭配php-fpm:
php-fpm只是一个php-fastcgi的管理器,为php提供管理服务
①.为什么会出现php-fpm
fpm的出现全部因为php-fastcgi出现,为了很好的管理php-fastcgi而实现的一个程序。
②.什么是php-fastcgi
php-fastcgi 只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。
③.为什么不叫php-cgi
其实在php-fastcgi出现之前是有一个php-cgi存在的,只是它的执行效率低下,因此被php-fastcgi取代。
④.那fastcgi和cgi有什么区别呢 ?
这区别就大了,当一个服务web-server(nginx)分发过来请求的时候,通过匹配后缀知道该请求是个动态的php请求,会把这个请求转给php。
在cgi的年代,思想比较保守,总是一个请求过来后,去读取php.ini里的基础配置信息,初始化执行环境,每次都要不停的去创建一个进程,读取配置,初始化环境,返回数据,退出进程,久而久之,启动进程的工作变的乏味无趣特别累。
当php来到了5的时代,大家对这种工作方式特别反感,想偷懒的人就拼命的想,我可不可以让cgi一次启动一个主进程(master),让他只读取一次配置,然后在启动多个工作进程(worker),当一个请求来的时候,通过master传递给worker这样就可以避免重复劳动了。于是就产生了fastcgi。
⑤.fastcgi这么好,启动的worker用完怎么办 ?
当worker不够的时候,master会通过配置里的信息,动态启动worker,等空闲的时候可以收回worker。
⑥.到现在还是没明白php-fpm 是个什么东西
那就先看看php-fpm的全称PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites.他就是来管理启动一个master进程和多个worker进程的程序。
以上,不懂就先攒着,等懂的时候回头来看就“奥,原来如此”。继续,
# 顺便查询一下php-fpm
yum list php-fpm
结果:(和php配套版本)
# 试着查一下mysql
yum list mysql
结果:(果然没有)
由于mysql 版权方面的限制, centos 7 没有内置mysql 服务器, 必须从mysql 官方进行安装。
今天又写了这么长,休息一会,下篇我们继续看实操搭建nginx+php+mysql环境。持续关注我,分享更多全栈开发成长经验,不喜勿喷,欢迎一起交流,哈哈哈~