少女祈祷中...

进程的优先级与LAMP项目部署

一、进程的优先级(扩展)

1、什么是进程的优先级

Linux是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程。哪些进程先运行,哪些进程后运行,就由进程优先级来控制

思考:什么时候需要用到进程的优先级呢?

答:当CPU负载过高时,如CPU的使用率>=90%以上。这个时候进程的优先级就会起作用。

2、查看进程的优先级

PR 优先级,数值越小优先级越高。
NI 优先级,数值越小优先级越高,可以人为更改。(NI = NICE = Nice)

讲个小故事:Nice值 = 0,Nice值越高,代表这个人越绅士(Nice值越高,优先级越低)

NI值有一个范围 -20 ~ 19

问题:这两个数值是在哪里看到的?

答:top命令

3、调整进程的优先级

使用top调整进程的优先级

第一步:使用top命令获取你要调整的进程信息(PID编号)

1
2
3
# top -bn 1
PID COMMAND
7107 atd(at命令的底层服务)

第二步:运行top命令,然后按==”r”==,输入要调整进程的PID编号

1
2
# top
r,输入要调整进程的PID编号,按回车

第三步:根据提示,重置NICE值

1
Renice PID 7107 to value : -5

第四步:按q退出top模式,然后使用top -p PID编号,只查询某个进程的信息

1
# top -p 7107

使用renice命令调整进程的优先级

基本语法:

1
# renice [NI优先级设置的数字] 想调整的进程ID

案例:使用renice调整atd的优先级

1
2
3
4
5
6
第一步:通过ps或top命令获取atd的PID编号
# ps -ef |grep atd
7107
第二步:使用renice命令调整7107的NICE值
# renice -10 7107
7107 (process ID) old priority 0, new priority -10

注意:NICE值取值范围-20 ~ 19,不能使用小数

使用nice命令调整进程的优先级

基本语法:

1
# nice [NI优先级设置的数字] 想调整的进程名称

注意:nice命令只能调整没有运行的程序

nice实际操作三步走:

第一步:将程序停止

1
2
3
4
# ps -ef |grep crond
# kill PID

# systemctl stop crond

第二步:启动并制定优先级(使用nice)

1
# nice -n -10 crond

nice命令包含两个功能:① 启动进程 ② 调整进程的优先级

第三步:确认优先级(查看优先级)

1
2
3
# ps -ef |grep crond
PID
# top -p PID

二、YUM

1、什么是YUM

在CentOS系统中,软件管理方式通常有三种方式:rpm安装yum安装以及编译安装

1
编译安装,从过程上来讲比较麻烦,包需要用户自行下载,下载的是源码包,需要进行编译操作,编译好了才能进行安装,这个过程对于刚接触Linux的人来说比较麻烦,而且还容易出错。好处在于是源码包,对于有需要自定义模块的用户来说非常方便。(就业班会着重讲解)

难度:编译安装 > rpm安装 > yum安装(有网络 + yum源支持)

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。

基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以==自动处理依赖性关系==,并且==一次安装所有依赖的软件包==,无须繁琐地一次次下载、安装。

rpm和yum区别?答:① yum底层也是基于rpm进行安装的(yum安装的软件,可以通过rpm -qa进行查询) ② yum相对于rpm最大的优势,可以解决依赖关系。

A => B => C

2、YUM源配置

YUM源配置文件所在路径 => /etc/yum.repos.d文件夹

-rw-r–r–. 1 root root 1991 Mar 28 2017 CentOS-Base.repo 网络yum源配置文件
-rw-r–r–. 1 root root 647 Mar 28 2017 CentOS-Debuginfo.repo 内核相关的更新包
-rw-r–r–. 1 root root 289 Mar 28 2017 CentOS-fasttrack.repo 快速通道
-rw-r–r–. 1 root root 630 Mar 28 2017 CentOS-Media.repo 本地yum源配置文件
-rw-r–r–. 1 root root 7989 Mar 28 2017 CentOS-Vault.repo 最近版本加入老本的YUM配置

扩展:在YUM镜像源中添加阿里云镜像源

1
2
3
4
5
6
7
8
9
10
11
12
13
第一步:备份CentOS-Base.repo这个源(更改后缀名.repo => .repo.bak)
# mv CentOS-Base.repo CentOS-Base.repo.bak

第二步:使用wget命令下载阿里云的镜像文件
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

选项说明:
-O :指定文件下载的位置以及名称
第三步:清理YUM缓存
# yum clean all

第四步:重新建立缓存(让新YUM源生效)
# yum makecache

3、yum命令详解

搜索要安装的软件

1
# yum search 软件名称的关键词

案例:搜索阿里云仓库中的vim软件

1
# yum search vim

案例:搜索firefox火狐浏览器

1
# yum search firefox

使用yum安装软件

基本语法:

1
2
3
# yum install 软件名称关键词 [选项]
选项:
-y :yes缩写,确认安装,不提示。

案例:使用yum命令安装vim编辑器

1
# yum install vim -y

案例:使用yum命令安装firefox浏览器

1
# yum install firefox -y

使用yum卸载软件

1
2
3
# yum remove 软件名称关键词 [选项]
选项:
-y :yes缩写,确认卸载,不提示。

案例:把firefox火狐浏览器进行卸载操作

1
# yum remove firefox -y

案例:把httpd软件进行强制卸载

1
# yum remove httpd -y

使用yum更新软件

基本语法:

1
2
3
# yum update 软件名称关键词 [选项]
选项:
-y :yes缩写,确认更新,不提示

案例:把vim编辑器进行更新操作

1
# yum update vim -y

案例:把firefox火狐浏览器进行更新操作

1
# yum update firefox -y

三、LAMP概述

1、什么是LAMP

LAMP:Linux + Apache + MySQL + PHP LAMP 架构(组合)

LNMP:Linux + Nginx + MySQL + php-fpm LNMP 架构(组合)

LNMPA:Linux + Nginx(80) + MySQL + PHP + Apache Nginx 代理方式

Apache:Apache是世界使用排名第一的Web服务器软件。

PHP:一种专门用于Web开发的编程语言。

MySQL:MySQL是一个关系型数据库管理系统,主要用于永久存储项目数据。

2、AMP三者之间的关系

Apache:用于接收用户的请求(输入网址,返回网页=>结果)

PHP:注册、登录、加入购物车、下单、支付等动态功能(有编程语言的支持)

MySQL:永久保存数据,比如你在网站上注册的用户和密码、你加入购物车的产品、你的产品订单

LAMP = Linux + APache + PHP + MySQL

2、LAMP部署前期准备

关闭防火墙

1
2
# systemctl stop firewalld
# systemctl disable firewalld

关闭SELinux

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。

获取SELinux的状态:

1
# getenforce

临时关闭SElinux:重启后SELinux还会自动启动

1
# setenforce 0

永久关闭SELinux:编辑SELinux的配置文件

1
2
# vim /etc/selinux/config
SELINUX=disabled

检查系统中是否已安装Apache

1
2
3
4
# rpm -qa |grep httpd

# rpm -e httpd-2.4.6-90.el7.centos.x86_64
# rpm -e httpd-tools-2.4.6-90.el7.centos.x86_64

检查系统中是否已安装MySQL

1
# rpm -qa |grep mysql

检查系统中是否已安装PHP

1
# rpm -qa |grep php

AMP安装指南:在Linux中安装AMP必须先安装Apache,在安装MySQL,最后安装PHP

3、LAMP环境之Apache安装

Apache:阿帕奇,Apache基金会

httpd软件 => 前身apache,随着时间的推移以及互联网行业的发展,越来越多的软件加入到了Apache的基金会。

第一步:安装httpd软件

1
# yum install httpd -y

第二步:配置/etc/httpd/conf/httpd.conf文件

1
2
3
# vim /etc/httpd/conf/httpd.conf
/ServerName => 搜索
96 ServerName localhost:80

localhost : 代表本机,对应的IP地址可以使127.0.0.1或本机的公网IP

第三步:启动httpd服务

1
# systemctl start httpd

第四步:把httpd服务添加到开机启动项中

1
# systemctl enable httpd

第五步:使用ss或netstat命令查询httpd占用的端口

1
2
3
# netstat -tnlp |grep httpd

# ss -naltp |grep httpd

4、LAMP环境之MySQL安装

下载MySQL的官网yum源

由于yum源上默认没有mysql-server。所以必须去官网下载后在安装

1
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

安装MySQL的官网镜像源

1
# rpm -ivh mysql-community-release-el7-5.noarch.rpm

使用yum安装mysql最新版软件

1
# yum install mysql-community-server -y

MySQL软件是一个C/S架构的软件,拥有客户端与服务器端。mysql-server服务器端(内部也包含了客户端),community代表社区版(免费开源)

启动mysql,查看端口占用情况

1
2
# systemctl start mysqld
# netstat -tnlp |grep mysqld

MySQL数据库初始化(重要)

默认情况下,数据库没有密码,也没有任何数据,必须要初始化

① 初始化数据,设置root密码(MySQL管理员)

1
# mysql_secure_installation

扩展:以上说的root和Linux中的root不是同一个用户,这个root代表MySQL数据库的管理员,只不过这个管理员也叫root。

学习环境下,密码越简单越好。生产环境下越复杂越好。

② 把mysqld服务添加到开机启动项

1
# systemctl enable mysqld

默认已经开机启动,这里可以跳过

③ 连接MySQL数据库,测试

1
2
3
4
# mysql -u root -p 回车
Enter password:输入刚才设置的密码,如123,回车
mysql> show databases; => 代表显示所有数据库
mysql> exit

5、LAMP环境之PHP安装

使用yum命令安装php软件

1
# yum install php -y

使用systemctl启动php软件(重启Apache)

1
# systemctl restart httpd

为什么启动php就是重启Apache呢?答:因为LAMP架构中,PHP是以模块的形式追加到Apache的内核中,所以启动php就相当于重置Apache软件

测试LAMP环境是否可以使用

第一步:使用cd命令进入/var/www/html目录

1
2
# cd /var/www/html
Apache的项目目录 => /var/www/html,以后程序员开发的代码都是放置于此目录

第二步:使用vim命令创建demo.php文件

1
# vim demo.php

第三步:编写php代码

1
2
3
<?php
echo 'hello world';
?>

编写完成后,保存退出,然后在浏览器中使用http://127.0.0.1/demo.php