路径

路径(十八):在本地 CentOS 7 上搭建 Web 开发环境 — nginx 与 php-fpm

nginx 不懂 php,它可以把客户对 php 应用的请求转发给懂 php 的服务器,这台服务器会解释 php ,然后把处理好的内容再交给 nginx ,nginx 再把这些内容发送到客户那里去。这里,nginx 的作用就是一个代理服务器(Proxy Server),这个解释 php 用的服务器是上游服务器(Upstream Server),通常就是使用 FastCGI 类型的服务器,你可以把 php-fpm 想成是 php 版本的 FastCGI 服务器。

代理服务器,用现实生活的例子解释一下,它就像是房产中介,你打算租个房子,找到了房产中介,他会为你联系房主,把你的需求说一下,房主把他的意思转达给房产中介,房产中介又会从房主那里得来的消息转达给你。代理服务器就是,接到客户的请求以后,把请求转发给其它的服务器,它们处理好请求以后会把结果再交给代理服务器,然后由代理服务器把信息再传递给发出这个请求的客户那里。

路径(十七):在本地 CentOS 7 上搭建 Web 开发环境 — nginx 配置实践

nginx 最主要的工作就是对外提供静态的文件,html,css,javascript,images  ...  下面我们去实践一下配置 nginx 的虚拟主机。为虚拟主机绑定域名,设置不同的 location 为请求提供资源。

准备

你可以直接在虚拟机上用 vim 编辑器去创建跟编辑配置文件,不过如果不熟悉 vim 编辑器的话,下面介绍一个可以直接用本地电脑上的编辑器去编辑 nginx 配置文件的方法。就是把 nginx 的配置文件的目录(/etc/nginx),跟本地电脑上的一个目录同步,不过在设置 vagrant 同步目录之前,先连接到虚拟机,去把配置文件目录备份到一个地方,不然在设置共享目录之后,重启虚拟机以后,这个目录里的内容会被删除掉。ssh 到虚拟机以后,执行:

cp -R /etc/nginx ~/

把 /etc/nginx 这个目录复制一份到用户的主目录下面。然后在本地电脑上用编辑器打开 Vagrantfile ,添加一条配置。

路径(十六):在本地 CentOS 7 上搭建 Web 开发环境 — nginx 的基本配置

nginx 是由一些模块组成的,不同的模块定义了各自的一些指令(Directives),指令控制了模块的行为,在 nginx 的配置文件里可以去配置这些指令。主要的配置文件是 nginx.conf ,在这个配置文件里,会用到 include 指令,把其它地方的配置文件包含到这个主要的配置文件里,用这种方法可以让配置文件更有条理,也更容易维护。

找到 nginx.conf

在不同的系统下 nginx.conf 的位置可能不太一样,使用搜索可以很容易找到它:

find / -name nginx.conf

路径(十五):在本地 CentOS 7 上搭建 Web 开发环境 — Web 服务器 nginx

一台服务器,接待用户请求的就是 Web 服务器,是一种软件,比如 Apache,Nginx。Web 服务器除了为用户提供静态的文件,像 html,CSS,JavaScript,图像文件 等等,它还会跟脚本解释器沟通,给用户提供动态的内容。

nginx

一款受欢迎的高性能 Web 服务器。

安装 nginx

Nginx 的稳定版包含在 CentOS 7 的软件仓库里,所以可以直接用 yum 去安装它。

yum install nginx -y

路径(十四):在本地 CentOS 7 上搭建 Web 开发环境 — PHP

Web 应用如果是用 PHP 语言写的,比如 Drupal,WordPress,Laravel 等等,你需要在服务器上安装 PHP 的解释工具。你还需要让 Web 服务器可以跟 PHP 解释工具能够交流,这样 Web 服务器才能为用户输出请求的内容。在后面,我们要去安装一个叫 Nginx 的 Web 服务器,它跟 PHP 的交流方式可以使用 PHP-FPM 。

安装 PHP-FPM

先用包管理工具搜索一下仓库里有没有可以安装的 PHP-FPM。可以搜索同时包含 php 与 fpm 关键词的包,像这样:

yum search php fpm

路径(十三):在本地 CentOS 7 上搭建 Web 开发环境 — 数据库管理系统 MariaDB / MySQL

Web 应用需要数据库管理系统去管理它们的数据,这个系统可以是 MySQL、PostgreSQL,SQLite 等等。安装哪个要看你的 Web 应用的需求,有些项目可能支持多种数据库系统。下面我们先去安装一个 MySQL 。

MariaDB / MySQL

MariaDB 是 MySQL 的一个分支,是加强版的 MySQL,主要是是由社区成员贡献开发。领头开发 MariaDB 的是 MySQL 的创始人 Michael Widenius,因为 MySQL 之前卖给了 sun 公司, sun 又被 Oracle 收购,MySQL 的开发又很封闭,所以就有了社区版的 MySQL ,也就是 MariaDB,它可以完全取代 MySQL。Maria 是 Michael Widenius 女儿的名字。

CentOS 7.0 已经用 MariaDB 替换掉了 MySQL,所以默认你只能用包管理工具安装 MariaDB。

安装 MariaDB

yum install mariadb-server mariadb -y

安装完成以后,查看 mariadb 的状态:

service mariadb status

路径(十二):在本地 CentOS 7 上搭建 Web 开发环境 — 准备工作

在本地搭建一个 Web 开发环境,把你想创建的 Web 应用放到这个环境上去运行,比如你可以把 Drupal,WordPress,Laravel 放上去运行。搭建本地的开发环境可以作为学习 Web 开发的第一件要干的事。放弃所有一键安装的开发环境,比如 WAMP,XAMPP,MAMP ... 这些都过时了,听起来容易,但是对我们没什么好处。我们在本地创建一个虚拟机,虚拟机的操作系统可以跟你的 Web 应用正式运行的服务器的操作系统一样,比如可以使用 CentOS 或者 Ubuntu ,这台虚拟机用 Vagrant 去管理。

Web 应用在本地开发时候的运行环境,最好可以跟它正式运行的服务器环境,也就是生产环境一致。比如在你在生产环境,应用的 Web 服务器与数据库是两台不同的服务器,你在本地也可以模拟出这种情景,可以使用 Vagrant 为一个项目创建多台虚拟机。另外软件的版本也要保持一致,如果在生产环境上 Web 服务用 Nginx 提供,PHP 的版本是 5.6,在本地你也可以在虚拟机上安装 Nginx 的服务器,5.6 版本的 PHP。

在以后我们可能会用到 Docker,它可以把应用的各个组件分离出来,然后各自装箱(Container),比如把 Web 服务器放到一个箱子里,数据库放到一个箱子,缓存服务放到一个箱子,应用都是在这些箱子里运行的,你可以把这些箱子放到任何支持这些箱子的平台上去运行。这样你就不需要担心应用在不同的环境下的不同反应了,你知道你的应用是怎么运行的,因为是你自己装的箱,箱子里的结构是你自己设计的。

路径(十一):管理 Linux 上的软件

管理 Linux 系统上的软件可以使用包管理工具,不同版本的 Linux 用的包管理工具不太一样。比如 Redhat,Fedora,CentOS 上面用的是 yum 或者 rpm。Debian,Ubuntu 可以使用 aptitude。使用包管理工具,可以用命令,去查询,下载,安装,删除系统上的软件。下面我们在 CentOS 系统上学一下 yum 这个包管理工具,你可以用 Vagrant 在本地创建一个 CentOS 系统的虚拟机

Packages

Packages,包。包就是包裹,包裹里面包含了一些东西。这里说的包指的是软件包,它里面不仅仅包含软件本身,还有相关的文档,管理脚本,软件所依赖的其它东西的列表。包管理工具会使用包里的内容去定位,安装,升级,还有删除软件。包有不同的格式,Redhat  跟 CentOS 上用的是 .rpm 格式的包,Debian,Ubuntu 用的是 .deb 格式的包,你可以把这个格式想成是一种包装跟发行软件的标准。

路径(十):Vim

Vim 是一款神奇的文本编辑器,Vi 也是一款编辑器,Vim 是这款编辑器的改进版。我本身没有仔细学习过这款编辑器,直到昨天我想写一点关于 Vim 编辑器的用法的文章,因为以后,我们多少都得用到它。你知道这款编辑器要用一整本书去介绍它,我找到一本叫 《 Pro Vim 》,还有 《 Learning the vi and Vim Editors 》,这本书已经是第七版了。我打算读读它们,然后给大家总结点更详细的使用这款编辑器的方法,也许我会放弃 :)

如果你完全没有兴趣学一下这款编辑器,你至少要知道怎么使用这用最原始的方法去编辑或者创建一个文件。

安装

Vim 可以在很多平台上使用,Windows,Mac,Linux 都可以。

Windows

choco install vim

路径(九):用 Vagrantfile 配置虚拟机 — 网络

把虚拟机作为一台服务器,你就需要让主机(你的电脑)与虚拟机之间通过网络连接在一起,网络中的其它的设备也可能要跟虚拟机连接。这就需要去配置一下虚拟机的网络的设置,让主机或者其它设备可以访问到虚拟机。可以通过 Vagrantfile 去配置虚拟机的网络,Vagrant 提供了三种方法,端口转发,公有网络,还有私有网络。

端口转发

forwarded_port,端口转发,就是你可以设置主机与虚拟机之间的端口的映射关系,这样请求主机上的这个端口,就会把请求转发到虚拟机上的对应的端口上。比如,你想在访问主机 8080 端口时候,转发到虚拟机上的 80 端口,下面咱们去试一下,先打开 Vagrantfile ,然后搜索:

# config.vm.network "forwarded_port"

去掉这行代码最前面的 # 号, 这个配置就是端口转发,看起来是这样的:

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点