CentOS

学习手册:Web 开发环境与服务器生产环境

在你的电脑上,应该有个 Web 开发环境,在上面去开发你想要的网站。完成以后可以把网站迁移到服务器上,在服务器也要搭建一个网站运行的环境,这个服务器上的环境叫生产环境。大部分情况,你也需要自己去搭建这个服务器上的生产环境。你的生产环境要在 Linux 类型的操作系统上搭建,比如 Ubuntu,CentOS ...  所以,尽早熟悉 Linux 系统的基本操作,熟悉在命令行下面去做事。

网站最终要运行在生产环境上,你在本地开发它的时候,最好可以为网站搭建一个跟生产环境相近的环境,比如用同样的操作系统,同样版本的软件,同样的设置等等。建议在本地电脑上安装虚拟机,为虚拟机安装 Linux 类型的操作系统,然后在上面安装和配置运行网站需要的软件,比如 Web 服务器,PHP,数据库等等。想要更好的管理虚拟机,推荐使用 Vagrant 。

放弃用一键安装的东西来搭建本地的开发环境,比如 WAMP,MAMP,XAMPP!暂时放弃在服务器的生产环境上安装管理面板。亲自动手,去搭建这个运行环境。

这个网站运行的环境在本地,还有在服务器上搭建的方法是差不多的,就是去安装一些需要的软件,然后通过修改配置文件来改变这些软件的行为。

路径(二十一):在 nginx 上运行 Drupal 8

到现在,我们已经在本地搭建好了一个可以运行 PHP 应用的环境,这个环境可能会根据要运行的 PHP 应用来调整一下,比如设置地址重写,为应用的不同的位置去配置 nginx 的 location 等等。下面,我们在这个开发环境下去运行 Drupal 8 。

准备

先去修改一下本地电脑上的 hosts 文件,添加一条新的记录,让一个主机名指向虚拟机的 IP 地址,比如我要让 dp8.ninghao.dev 指向 192.168.33.10 这个 IP 地址,可以这样设置:

192.168.33.10 dp8.ninghao.dev

在 nginx 配置的目录(/etc/nginx/conf.d)下面创建一个新的配置文件,这个配置文件可以用服务器的主机名去命名一下,这里就是 dp8.ninghao.dev.conf 。下面是配置文件里的内容:

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

我们可以在命令行工具下面管理 MySQL / MariaDB 数据库。想要个图形界面的话,可以使用 phpMyAdmin,通过浏览器直接管理服务器的数据库管理系统,添加用户,设置密码,创建数据库,导入导出数据等等。

安装

在很多 Linux 类型的系统上都可以使用包管理工具去安装  phpMyAdmin,比如在 CentOS 系统里,先为系统安装 epel 仓库,然后就可以通过 yum install phpmyadmin 安装了。不过我们之前搭建的 Web 环境,用的 php 版本是 5.6,跟 phpmyadmin 依赖的包有冲突,它需要一个低版本的 php ,所以我们只能使用手工安装的方法。

先把 phpMyAdmin 下载到系统上,http://www.phpmyadmin.net/ ,点击 Download 会带你到下载的页面,页面上的 Direct link 是直接下载 phpMyAdmin 的链接,复制一下这个复制的地址,然后使用 curl 去下载它,像这样:

路径(十七):在本地 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 开发环境 — 数据库管理系统 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 格式的包,你可以把这个格式想成是一种包装跟发行软件的标准。

实践:Linux 操作系统的基本操作

最近写了一些关于在 Linux 系统上配置 Web 服务器的操作手册,我希望大伙都能去试一下,遇到问题可以一起想办法解决,这样你会很快学会 Linux 的基本操作,去配置一个可以使用的 Web 运行环境,也不再恐惧命令行工具。你可以在自己电脑上安装虚拟机,比如 Virtual Box。使用 Linux 系统(推荐 CentOS 系统)。或者去购买一台云服务器,按月付或者按天付的那种,一个月最低几十块钱。我推荐大家去购买一台云服务器。国内可以使用阿里云,国外可以试试 DigitalOcean 或者 Linode

统计

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

社会化网络

关于

微信订阅号

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