linux+mysql+php 新手笔记

系统启动后需要输入用户名和密码
用户名:root
密码:之前安装过程设置的密码

1、切换到/etc/sysconfig/network-script目录
cd /etc/sysconfig/network-script
2、将ifcfg-eth0被分成ifcfg-eth0.
cp ifcfg-eth0 ifcfg-eth0.bak
3、修改配置文件(ifcfg-eth0)
修改内容:ONBOOT=yes
添加内容:DNS1=8.8.8.8
4、操作网卡(启动/停止/重启)
启动:/etc/init.d/network start
停止:/etc/init.d/network stop
重启:/etc/init.d/network restart
5、使用工具连接虚拟机
推荐:putty,轻量,免费,方便(无需安装)
6、开关机命令
重启:shutdown -r now 或 reboot
关机:shutdown -h now 或 poweroff 或 halt
7、最常用命令及操作
ifconfig:查看或配置网卡信息(包括IP)
cd: change directory,切换工作目录
ls: list,列表显示当前目录的内容
pwd: print work directory,打印工作目录

tab:自动补全(命令/参数)
clear:清空屏幕(Ctrl + L)
history:显示历史命令
上/下:翻看历史命令
ping ip/域名:网络监测
Ctrl + c:结束进程
8、VI基本操作
打开文件:VI 文件名
开始编辑:a或者i
退出编辑:Esc
保存退出:shift + zz

/: 最高层的目录,是所有目录的直接或间接父级目录,也叫根目录
/boot:启动目录,启动信息

/bin:程序的启动文件,程序的命令

/sbin:这是超级用户存放一些应用程序的地方

/dev:设备目录

/etc:Editable Text Configuration,可编辑文本配置,放一些配置信息

/home:家目录,其实是指用户的目录

/root:最大的用户有一个单独的目录

/lib:存放一些库

/lib64:给64位操作系统提供的,存放一些库

/lost+found:这个目录平时是空的,系统非正常关机而留下“无家可归”的文件就在这里

/meida:自动识别一些设备的时候,会挂在到这个地方,比如:CD/DVD

/mnt:安装临时文件系统的安装点,让用户临时挂载其他的文件系统

/proc:虚拟文件系统目录,是系统内存的映射。用来获取系统信息

/tmp:用于存放各种临时文件,是公用的临时文件存储点

/usr:Unix System Resource,Unix系统资源,这个目录很重要,用来放一些应用程序,
之前是user的缩写,曾经的home目录,现在已经被/home取代了

/opt:这里主要存放一些可选的程序,比如安装一些软件的最新Beta版本,用完直接删除
软件安装在此目录,一个软件只有一个目录,可以一次性完全删除,而/user/local则不能

/sys:是sysfs文件系统的挂载点,sysfs是一种虚拟的基于内存的文件系统,
它的做作用除了与proc相同的具有查看和设定内核参数功能之外,统一设备模型

/selinux:Security-Enhanced Linux的缩写,用来保证系统的安全
getenforce:获取状态
setenforce:设置状态
永久关闭:
打开:/etc/selinux/config
修改:SELINUX=disabled

/srv:系统启动服务时候可以访问的数据库目录

/var:用于存放运行时需要改变数据的文件,比如各种服务的日志文件


必备命令
cd: change directory,切换工作目录
-: 表示刚才的工作目录
~: 表示用户的家目录
.: 表示当前目录
..: 表示上级目录
/: 表示根目录
pwd: print work directory,打印工作目录
ls: list,列出指定目录的内容
-a 显示所有文件,包括隐藏文件(以'.'开头的文件)
-l 列表显示文件,会显示文件的所有信息,ls -1<==> ll
-h 更加人性化的显示文件(文件大小会出现K/M/G等)

ls -l 结果说明,按列描述如下:
类型及权限 | 引用数 | 用户 | 组 | 大小 | 月 | 日 | 年/时间 | 名称
文件类型说明:
-:普通文件
d:目录文件
b:块设备
c:字符设备
l:链接
s:套接字
p:管道
ping:一般用于检测网络是否联通,后可跟IP地址或者域名
ifconfig:现在只需要知道ifconfig可以查看网卡信息就可以了

终端编辑工具:vi/vim emacs等

基本介绍:vim是vi的扩展,被誉为终端编辑器之神
软件安装:yum install -y vim
工作模式:
1、正常模式
1、使用格式说明 vim filename
若文件不存在,则直接打开
若文件不存在,则会新建,若不修改则不会创建空文件
2、主要用来浏览或修改文本内容
3、使用vim打开文件的默认模式
4、在任意模式下按Esc按键即可进入该模式
2、编辑模式
主要用来向文本添加内容,也叫插入模式
正常模式下输入以下字符都可进入该模式
i:在光标所在字符前开始输入文字
I:在行首指第一个非空白字符处开始输入文字
a:在光标所在字符后开始输入文字
A:在行首开始输入文字
o:在光标所在行的下面单独开一新行来输入文字
O:在光标所在行的上面单独开一新行来输入文字
s:删除光标所在的字符并进入插入模式
S:删除光标所在行并进入插入模式
3、命令模式
主要用来管理文件或设置vim,如:保存,退出,放弃等,而不是修改文件内容
在正常模式下,输入‘:’即可进入命令模式,由于操作都是在一行完成,因此也叫单行模式
保存文件:w
退出软件:q
保存退出:x,等价于wq,等价于正常模式下的shift+zz
强制操作:!
放弃修改:e!
4、可视模式
v:可视块模式
V:可视化模式

vim使用技巧:可以大大提高开发效率

1、打开文件
vim filename 打开文件,并将光标定位到文件开头
1、若文件已存在,则直接打开
2、若文件不存在,则新建文件(不做修改的文件不会创建)
vim filename +n 打开文件,并将光标定位到文件第n行
vim filename + 打开文件,并将光标定位到文件末尾
2、光标定位
gg:首行
GG:尾行
ngg:第n行,等价于命令模式下的:n,然后敲回车
0:行首
^:首个非空字符
$:行尾
k:向上
j:向下
h:向左
l:向右
3、复制粘贴
yy:复制光标所在行
dd:剪切光标所在行
p:粘贴缓冲区的内容
nyy:复制光标开始的n行
ndd:剪切光标开始的n行
4、操作回退
u:撤销刚才的操作
Ctrl + r:反撤销
5、查找替换
命令模式下操作
:?查找内容,然后敲回车即可查找相关内容,n向前翻,N向后翻
:%s/查找内容/替换内容/[g],将查找到的内容替换,g表示全局替换,[]表示可选
:起始行,结束行s/查找内容/替换内容/[g],替换从起始行到结束行查找到的内容,g功能同上
6、基本配置
:set nu 设置行号
:set nonu 取消行号
:set tabstop=4 设置tab键为四个空格
:set fileeccodings=utf-8,gkb 设置字符集
7、配置文件
上面第6步在命令模式下的配置是单次的,退出vim后配置就无效了,
要想一次配置,自动生效可以创建专门的配置文件
在用户目录下,创建.vimrc文件,这个文件就是vim的配置文件,
当该用户登录时就会生效,可以将vim相关的配置写入即可
要想使配置文件生效可以重启系统,也可以使用命令:source ~/.vimrc
说明:
文件未保存就关闭vim时,会产生临时文件,下次打开时会提示恢复/删除等相关操作


文件内容查看

cat:
作用:一次性顺序显示文件的所有内容
格式:cat file
tac:
作用:一次性倒叙显示文件的所有内容
格式:tac file
head:
作用:显示文件开头的若干行内容
格式:head -n file n为要显示的行数
tail:
作用:显示文件结尾的若干行内容
格式:tail -n file n为要显示的行数
more:
作用:分页显示其他命令执行的结果
格式:其他命令 | more, 如: cat file | more
说明:
1、当内容显示一屏时停止
2、空格向下翻页(只能向下)
3、回车键向下显示一行
4、q键退出(结束查看)
less:
作用:分页显示其他命令执行的结果
格式:其他命令 | less, 如:cat file | less
说明:
与more命令功能相同,多了上下按键上下翻一行
more和less的前面可以是很多查询搜索等命令,如:ls、find

文件整体操作

touch:
作用:创建普通文件
格式:touch file1 [file2]
cp:
作用:拷贝文件
格式:cp 源文件 目标文件
rm:
作用:删除文件
格式:rm 文件
mv:
作用:移动文件
格式:mv 源文件 目标文件
mkdir:
作用:创建目录文件
格式:mkdir dir1 [dir]
rmdir:
作用:删除空的目录文件
格式:rmdir dir
说明:
1、删除文件时会有提示,若不想提示可以添加参数‘-f’
2、删除或拷贝目录时需要添加参数‘-r’
ln:
作用:创建链接文件
格式:ln [-s] 源文件 目标文件
硬链接:不加‘-s’选项时,简答理解为一个文件有多个名字
1、不占用实际空间
2、不允许给目录创建
3、只能跨文件系统
软链接:添加‘-s’选项时,简单理解为一个文件的内容是另一个文件的路径
1、类似于Windows的快捷方式
2、可以对目录创建
3、可以跨文件系统

文件搜索定位

grep:
作用:general regular expression parser,通用规则表达式分析程序,
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
格式:grep [选项] pattern [文件名]
选项:
-i:字母不区分大小写
-n:显示行号
说明:
1、pattern为所要匹配的正则表达式字符串
2、要用好grep这个工具,其实就是要写好正则表达式
实例:
grep ftp /etc/passwd
在/etc/passwd文件下查找包含‘ftp’字符的行:
grep 'test' d*
显示所有以d开头的文件中包含‘test’的行。
ls/bin | grep '^m'
通过管道过滤ls /bin输出的内容,只显示以m开头的行。
grep -i 'hello world' menu.h main.c
显示在menu.h和main.c文件中匹配'hello world'的行,忽略大小写。
find:
作用:最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
格式:find [目录] [条件] [动作]
目录:所要搜索的目录及其所有子目录。默认为当前目录。
条件:所要搜索的文件的特征。
动作:对搜索结果进行特定的处理。
选项:
-name:指定文件名,可以通过*模糊匹配
-type:指定文件类型(b/c/d/p/l/f)
-size:指定文件大小,单位可以为K/M/G,+表示大于,-表示小于
-user:指定用户
-group:指定组
-mtime/atime/ctime:指定修改/访问/创建时间,单位为天,+表示几天前,-表示几天内
-amin/mmin/cmin:功能同上,单位为分钟
说明:如果你要寻找一个普通文件,使用find会是一个不错的主意。
由于find在寻找数据的时候相当的耗资源,所以没事情不要使用find
有更棒的指令可以取代,那就是whereis与which
whereis:
作用:只能用于程序名的搜索
格式:whereis 命令
实例:whereis grep
结果: grep: /bin/grep /usr/share/man/man1/grep.1.gz
名称 二进制文件路径 帮助文档路径
which:
作用:在$PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个
格式:which 命令
PATH:
说明:环境变量,与Windows中(我的电脑>高级系统设置>高级>环境变量>系统变量)的path类似
打印:echo $PATH
导出:
方式1:一次性设置
export PATH=$PATH:dir1[:dir2]
方式2:永久性的设置,所有用户有效,需要重启生效或使用source命令
将方式1的导出操作添加到文件/etc/profile的末尾
方式3:永久性的设置,只针对一个用户,需要重启生效或使用source命令,优先级高于2
将方式1的导出操作添加到文件~/.bashrc的末尾

文件压缩解压

gzip:
作用:压缩文件,只能是单个文件,不能是多个,也不能是目录
格式;gzip file
说明:执行命令会生成file.gz,删除原来的file
选项:-d 等价于gunzip
gunzip:
作用:解压使用gzip压缩生成的文件
格式:gunzip file.gz
说明:解压file.gz文件,生成file,删除原来的file.gz
bzip2/bunzip2:
说明:
1、用法与gzip/gunzip相同,只是多了‘-k’参数,压缩或解压后保留原文件
2、使用bzip2压缩的文件后缀为bz2,而使用gzip压缩的文件后缀为gz
tar:
说明:gzip/gunzip/bzip2/bunzip2命令指适应于单个文件,
而tar则可以将多个文件或目录进行压缩打包
选项:
-c:压缩
-x:解压
-z:使用gzip
-j:使用bzip2
-f:指定处理文件
-v:显示(压缩解压过程的)详细信息
-C:指定解压后存放文件的目录
实例:
tar -zcvf 123.tar.gz 1 2 3
使用gzip将1 2 3压缩成123.tar.gz
tar -zxvf 123.tar.gz [-C /tmp]
使用gzip将123.tar.gz解压[至/tmp目录]

文件权限管理
chmod:
作用:修改文件的权限
说明:ls -l中的第一列就是权限相关信息,下面对其中的11个字符进行说明
l:文件类型(b/c/d/l/s/p/-)
2/3/4:文件所有者的读(r)/写(w)/执行(x)权限,-表示不具有该权限
5/6/7:文件所有者所属的组的读/写/执行权限
8/9/10:其他用户的读/写/执行权限
11:.表示启用了selinux,空格表示没有开启selinux
参数:
r:可读
w:可写
x:可执行,在Linux系统中没有后缀的概念,文件的类型及权限不以后缀区分
+:添加权限
-:去掉权限
=:设置权限
u:用户
g:组
o:其他
数值表示:
Linux中的权限以一组数据来表示,所有者/组/其他的权限分别以3位二进制表示,
然后再将其写成8进制就OK了,如:755 => 111 101 101,
结果就是:所有者拥有读/写/执行权限,同组拥有读/执行权限,其他拥有读、执行权限
实例:
chmod +x file 给文件添加可执行权限
chmod -w file 去掉文件的可写权限
chmod u+x file 给文件的所有者添加可执行权限
chmod g-w file 给文件同组去掉可写权限
chmod u=rwx,g=rx,o=rx file 所有者读写执行,同组读写,其他读写
chmod 0755 file 功能同上
umask:
作用:查看或设置umask的指,umask用来确定创建文件的默认权限
格式:umask [value]
说明:
1、若后面没有跟指表示查看,后面有指表示设置
2、创建的普通文件默认没有执行权限
实例:umask为0222 => 000 010 010
创建的目录文件权限 rwx r-x r-x
创建的普通文件权限 rw- r-- r--
配置:
所有用户:/etc/profile
单个用户:~/.profile或者~/.bash_profile
lsattr:
作用:修改文件的属性,可以提高系统的稳定性
格式:chattr [选项] 文件
选项:i:表示忽略,+表示添加,-表示去掉

用户及用户组

whoami:
作用:查看当前登录的用户
格式:whoami
/etc/passwd:
说明:该文件存放了系统中所有的用户,每一行的每一列如下
用户名:密码:描述:用户ID/UID:组ID/GID:用户家目录:shell
useradd:
作用:添加(创建)用户
格式:useradd 用户名
选项:
-d:指定用户家目录
-u:指定用户ID,必须大于500(小于500都已被系统占用)
-s:指定用户执行的shell,若用户已经创建可以使用以下方式禁止登陆
chsh 用户名 -s /sbin/nologin
userdel:
作用:删除指定用户
格式:userdel 用户名
说明:彻底删除用户还需要删除‘/home/用户名’目录和‘/var/mail/用户名’目录
passwd:
作用:设置用户密码
格式:passwd [用户名]
说明:
1、修改指定用户的密码,若不指定则修改当前登录的用户密码
2、查看所有用户的密码/etc/shadow
su:
作用:切换用户
格式:su [用户]
说明:切换到指定用户,若不指定则切换到root用户
sudo:
说明:
1、若只想简单的执行一个超级用户的命令,不想切换用户
2、格式是在原来命令的前面加上sudo即可
特殊标识:
#:超级用户
$:普通用户
~:表示用户家目录
/etc/group:
说明:查看系统中所有的组
groupadd:
作用:添加用户组
格式:groupadd 组名
groupdel:
作用:删除用户组
格式:groupdel 组名
gpasswd:
作用:向用户组添加或删除用户
格式:gpasswd [选项] 用户名 组名
选项:
-a:将指定的用户加入指定组
-d:将指定用户从指定组删除
chgrp:
作用:设置文件所属的组
格式:chgrp 组名 文件名
说明:修改文件所属的组
chown:
作用:设置文件的所有者
格式:chown 用户[:组名] 文件名
说明:修改文件的所有者[及组名]
说明:
1、修改用户及组的时候,可以使用UID或GID
2、加上-R参数可以递归修改子目录的用户及组

网络相关设置:

ping:
作用:通常用于检测网路设备的连通性
格式:ping IP/域名
选项:-c,指定方式测试数据包的次数
ifconfig:
作用:查看或设置网卡信息
实例:
ifconfig:查看活动网卡信息
ifconfig eth0 down:关闭网卡,等价于fidown eht0
ifconfig eth0 up:开启网卡,等价于ifup eht0
服务:
/eth/ini.d/network start|stop|restart 开启|关闭|重启 网路服务
service network start|stop|restart 开启|关闭|重启 网络服务
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:1C:42:51:74:18DDR=
TYPE=Ethernet
UUID=b3de21de-5cc9-472d-ac0d-3e8198988ddd
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
添加域名服务器(DNS)地址:/etc/resolv.conf
8.8.8.8
114.114.114.114
添加本地域名解析服务:/etc/hosts
127.0.0.1 www.hello.com

服务以及进程:

vmstat:
结果:
procs--------memory-------- ---swao--- -----io----- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
说明:
procs:进程
r 表示运行队列(就是说多少个进程真的分配到cpu)
b 表示阻塞的进程数
memory:内存
swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了
free 空闲的物理内存的大小
buff 用来存储,目录里面有什么内容,权限等得缓存
cache 直接用来记忆我们打开的文件,给文件做缓冲
swap:交换
si 每秒从磁盘读入虚拟内存的大小
so 每秒虚拟内存写入磁盘的大小
io:块设备
bi 块设备每秒接收的块数量
bo 块设备每秒发送的块数量
system:系统
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数
cpu;中央处理器
us 用户CPU时间
sy 系统CPU时间
id 空闲CPU时间,一般来说,id + us + sy = 100
wa 等待IO的CPU时间
st 虚拟机占用的时间百分比,一般 不用关心
w:
作用:what的简写,当前系统在干什么
结果:
12:36 up 5:50, 2 users, load average:0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 06:46 1:19m 0.07s 0.07s -bash
root pts/1 10.18.40.69 11:17 0.00s 0.10s 0.00s w
说明:
第一行:系统当前时间 开机持续时间,登录用户个数,平均负载(1/5/10分钟)
其他行:用户|终端|来源|登录时间|空闲时间|使用时间|当前进程时间|正在做
top:
使用:
1、w的详细显示,每3秒刷新一次,
2、shift+m可以按照所占内存排序
3、q退出监测
结果:
省略
说明:
第一行:功能同w
第二行:任务信息
第三行:CPU信息
第四行:内存信息
第五行:交换分区
其他行:
PID:进程号
USER:用户
PR:优先级
NI:NICE
VIRT:虚拟内存总量
RES:虚拟内存中,未被交换的物理内存
SHR:共享内存大小
S:进程状态
%CPU:CPU占用百分比
%MEN:内存占用百分比
TIME+:CPU使用时间
COMMAND:进程名/命令
free:
说明:查看内存使用
选项:-h人性化的显示
ps:
说明:查看进程
选项:
a:显示控制终端的所有进程
u:显示用户信息
x:显示没有控制终端的进程
实例:ps aux
kill:
说明:杀死一个进程
选项:-9,强制结束
实例:kill -9 PID

Yum及RPM安装:

Yum安装软件:
基本说明:
1、yum相当于windows上面的360的软件中心,appstore,安卓的应用商店
2、yum是redhat系列发行版的软件安装命令,debian系列用的是apt-get
3、yum安装软件的来源得存在一个地方,这个地方就叫做软件仓库,又叫做yum源
4、yum源的配置文件在/etc/yum.repos.d/这个目录下面
更换yum源:
进入目录:cd/etc/yum.repos.d
备份文件:mv CentOS-Base.repo CentOS-Base.repo.bak
下载文件:curl -O http://mirrors.163.com/.help/CentOS6-Base-163.repo
修改名称:mv CentOS6-Base-163.repo CentOS-Base.repo
清除缓存:yum clean all
生成缓存:yum makecache
基本格式:
yum <操作> [选项]
常用操作:
清空所有缓存:clean all
重新生成包信息缓存:makecache
安装指定软件:install
安装一组软件:groupinstall
更新指定软件;update
卸载指定软件:remove
卸载一组软件:groupremove
搜索指定软件:search
显示所有软件:list
常用选项:
默认确定安装 -y
只下载不安装:--downloadonly
指定下载目录:--downloaddir
PRM安装软件
说明:
1、原来是Redhat Pakage Manager的缩写,现在是RPM Pakage Manager的递归缩写
2、使用此方式安装的软件大多有依赖关系问题,通常一个软件需要依赖几个包
格式:rpm [选项] 包名
实例:安装vim
下载vim: yum install vim -y --downloadonly --downloaddir=.
安装vim:
rpm -ivh vim-filesystem-7.4.629-5.e16.x86_64.rpm
rpm -ivh vim-common-7.4.629-5.e16.x86_64.rpm
rpm -ivh vim-enhanced-7.4.629-5.e16.x86_64.rpm-h

源码安装软件:
配置:configure
编译:make
安装:make install

实例演示,源码安装apache
1、下载c编译器,用来编译C语言编写的源代码
yum install -y gcc
2、下载apache源码
curl -O http://apache.fayea.com//httpd/httpd-2.2.32.tar.gz
3、解压下载的压缩包
tar -zxvf http-2.2.32.tar.gz
4、进入解压后的文件夹
cd httpd-2.2.32
5、编译前的配置
./configure --prefix=/usr/local/apache2
配置选项:
-h/--help:查看帮助
--prefix:指定安装目录
6、编译源代码
make 或者make && make install
7、安装
make install
8、控制apache软件
控制命令:PREFIX/bin/apachect1
控制操作:start|stop|restart 启动|关闭|重启
9、配置文件:PREFIX/conf/httpd.conf
去掉前面#,将域名改为虚拟机IP,如下
ServerName IP:80
10、设置防火墙
service iptables status 查看防火墙状态
service iptables start|stop 开启|关闭
Samba服务器架设:

1、关闭防火墙
service iptables stop
2、关闭SELinux
setenforce 0
3、安装Samba和Samba-client
yum install -y samba samba-client
4、添加用户
useradd test
pdbedit -a test
5、启动Samba服务
添加开机启动:chkconfig smb on
立即启动Samba:service smb start
6、测试
1、在Windows电脑中打开我的电脑
2、在地址栏中输入 \\IP
7、自定义共享目录
1、创建共享目录,并修改权限
mkdir -p /var/www/html
chmod -R 777 /var/www/html
2、修改配置文件:/etc/samba/smb.conf
添加如下内容
[html] #共享目录名称
path = /var/www/html #共享目录位置
browseable = yes #是否可以浏览
writable = yes #是否可以写入
public = no #是否公开或者公共

FTP服务器架设:
1、关闭防火墙
service iptables stop
2、关闭SELinux
setenforce 0
3、安装所需依赖及编译工具
yum install -y gcc openssl-devel perl
4、下载pure-ftpd
curl -O https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.41.tar.gz
5、解压
tar -zxvf pure-ftpd-1.0.41.tar.gz
6、进行配置
./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb
--with-throttling --with-tls
7、编译和安装
make && make install
8、修改配置文件
mkdir /usr/local/pureftpd/etc
cd ./configuration-file/
cp pure-ftpd.conf /usr/local/pureftpd/etc
修改:/usr/local/pureftpd/etc/pure-ftpd.conf 如下
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
PIDFile /var/run/pure-ftpd.pid
9、控制文件
cp pure-config.pl /usr/local/pureftpd/sbin/
chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
10、启动服务
cd /usr/local/pureftpd
./sbin/pure-config.pl ./etc/pure-ftpd.conf
检查:netstat -tunpl
11、添加管理用户
useradd test
mkdir -p /var/www/html/
chown -R test:test /var/www/html/
./bin/pure-pw useradd ftp_userl -u test -d /var/www/html
ftp_userl:ftp登录用户名
-u:指定系统中存在的用户
-d:指定访问的目录
12、创建虚拟的用户数据库
./bin/pure-pw mkdb
13、通过ftp链接工具(FileZilla)测试

LNMP环境搭建

准备工作:
1、关闭防火墙
service iptables stop
2、关闭SELinux
setenforce 0 #使配置立即生效
3、安装约定
软件源代码包存放位置:/lnmp/src
源码包编译安装位置:/usr/local/软件名
数据库数据文件存储路径:/data/mysql
4、安装编译工具及库文件
使用CentOS yum命令一键安装
yum install -y apr* autoconf automake gcc gcc-c++ cmake gtk+-devel libcurl-devel
zlib-devel openssl openssl-devel pcre pcre-devel gd kernel keyutils path perl
kernel-headers compat* cpp glibc libgomp libstdc++-devel keyutils-libs-devel
libsepol-devel libjpeg* libpng* php-gd gettext gettext-devel ncurses* libtool* libxml2
libxml2-devel patch policycoreutils blison
软件安装篇
1、安装 libmcrypt,php中的加密扩展库
tar -zxvf libmcrypt-2.5.8.tar.gz
cd /lnmp/src/libmcrypt-2.5.8
./configure #配置
make && make install #编译和安装
2、安装 nginx
useradd www -s /sbin/nologin #创建nginx运行账户www,不允许直接登录系统

cd /lnmp/src/
tar -zxvf nginx-1.11.5.tar.gz
cd nginx-1.11.5

./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www
--group=www --with-http_stub_status_module --with-http_ssl_module

make && make install

设置nginx开启启动
cp /lnmp/src/nginx /etc/rc.d/init.d/ #拷贝启动文件 8888888888
chmod 755 /etc/rc.d/init.d/nginx #赋予文件执行权限
chkconfig nginx on #设置开机启动
service nginx start #启动nginx
3、安装 Mysql
mkdir -p /data/www #创建数据库文件保存目录
chown -R www:www /data/www/ #设置目录所有者
chmod 700 /data/www -R #设置目录权限

useradd mysql -s /sbin/nologin #创建用户Mysql,不允许直接登录系统
mkdir -p /var/mysql/data #创建mysql数据库存放目录
chown -R mysql:mysql /var/mysql/data #设置mysql数据库目录权限

cd /lnmp/src
tar zxvf mysql-5.5.28.tar.gz
cd mysql-5.5.28

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/var/mysql/data \
-DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306


make && make install

cd /usr/local/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf #拷贝配置文件

vi /etc/my.cnf #编译配置文件,在[mysql]部分增加
datadir = /var/mysql/data #添加mysql数据库路径

./scripts/mysql_install_db --user=mysql #生成mysql系统数据库
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把mysql加入系统启动
vi /etc/rc.d/init.d/mysqld #编辑
basedir=/usr/local/mysql #mysql程序安装路径
datadir=/var/mysql/data #mysql数据库存放目录

chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动

chown -R mysql /usr/local/mysql #修改/usr/local/mysql所属用户为mysql
service mysql start #启动mysqld

vi /etc/profile #把mysql服务加入系统环境变量:在最后添加
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile #使配置立即生效

mkdir /var/lib/mysql #创建目录
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加软链接
mysql_secure_installation #设置mysql密码,根据提示按Y 回车输入2次密码
功能同上:mysqladmin -u root -p password "123456" #或者直接修改密码

4、安装php
cd /lnmp/src
tar -jxvf php-7.0.7.tar.bz2
cd php-7.0.7
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc
--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mysqlnd
--with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-zlib
--enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization
--enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf
--with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap
--without-pear --with-gettext --enable-session --with-mcrypt --with-curl --with-jpeg-dir
--with-freetype-dir --with-pdo-mysql=/usr/local/mysql/

make && make install #安装

cp php.ini-production /usr/local/php7/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php7/etc/php.ini /etc/php.ini #添加软链接

cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
#拷贝模板配置文件未php-fpm配置文件
修改:/usr/local/php7/etc/php-fpm.conf
pid = run/php-fpm.pid #取消前面的分号

cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
修改:/usr/local/php7/etc/php-fpm.d/www.conf
usr = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www

设置php-fpm开机启动
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
chkconfig php-fpm on #设置开机启动
service php-fpm start #启动php-fpm

/etc/init.d/php-fpm: line 57: @sbindir@/php-fpm: No such file or directory


5、配置nginx支持php
修改配置文件:/usr/local/nginx/conf/nginx.conf
1、去掉location ~ \.php$ {}等前几行前面的#
2、将:fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
改为:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

负载均衡服务器:

准备:每台服务器都需要安装nginx

1、关闭防火墙
service iptables stop
2、关闭selinux
setenforce 0
3、安装基本依赖
yum install -y gcc pcre-devel openssl-devel
4、安装nginx
useradd www -s /sbin/nologin #创建nginx运行账户www,不允许直接登录系统

cd /lnmp/src/
tar -zxvf nginx-1.11.5.tar.gz
cd nginx-1.11.5

./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www
--group=www --with-http_stub_status_module --with-http_ssl_module

make && make install

设置nginx开启启动
cp /lnmp/src/nginx /etc/rc.d/init.d/ #拷贝启动文件
chmod 755 /etc/rc.d/init.d/nginx #赋予文件执行权限
cnkconfig nginx on #设置开机启动
service nginx start #启动nginx
5、配置nginx
名称 IP 功能
load balance: 10.0.166.17 负责任务的分配
web server01: 10.0.166.18 实际提供web服务
web server02: 10.0.166.19 实际提供web服务

http {
upstream lb { #连接池,存放提供web服务的服务器地址
server 10.0.166.18 weight=5; #一台web服务器地址,权重5/6
server 10.0.166.19 weight=1; #一台web服务器地址,权重1/6
}

server {
location / {
proxy_pass http://lb; #指定代理连接池
proxy_set_header Host $host; #转发请求头信息
proxy_set_header X-Forward-For $remote_addr; #转发请求IP地址
}
}
}


Mysql主从服务器:

1、架设两个虚拟服务器,都安装好Mysql
2、关闭iptables,和selinux
service iptables stop
setenforce 0
3、修改/etc/my.cnf
server-id = 1 #主机可以设置为1,从机可以设置为IP最后一段(保证唯一性)
log-bin=mysql-bin #主从服务的核心
service mysqld restart #重启服务器
4、主服务器上和从服务器数据库和表保持一致
1、登录数据库服务器
mysql -uroot -p
2、创建测试数据库
create database test;
3、选择test数据库
use test;
4、创建用于主从测试的数据表user
creat table user(id int(11) auto_increment primary key, name
varchar(30))engine=innodb,default charset=utf8;
5、主服务器配置(创建一个专门用来同步数据的账号)
grant replication slave on *.* to 'mysync'@'%' identified by '12345678';
show master status;#查看状态,此后不要再进行任何操作
6、从服务器上进行配置:
change master to master_host='10.0.166.17', master_user='mysync',
master_password='12345678', master_log_file='mysql-bin.[file]', master_log_pos=[Position];
[File]和[Position]要与主机状态显示的一致
start slave; #开启从服务
show slave status/G #查看从服务状态,如下两个选项都为YES表明从成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
7、主服务器上进行插入数据测试
insert into user(name) values('xiaoming');
从服务器查看:select * from user;


Memcached使用:

1、搭建好lnmp环境
2、安装依赖包
yum install -y libevent-devel
3、安装 memcached
tar -zxvf memcached-1.4.33.tar.gz
cd memcached-1.4.33
./configure --prifix=/usr/local/memcached --enable-64bit
make && make install

开启服务:
cd /usr/localmemcached/bin
./memcached -u www -d
-p:指定端口,默认为11211
-m:指定内存,根据自己硬件设置
-u:指定用户,不能是root
-d:后台运行
4、安装 libmemcached
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make && make install
5、安装 php-memcached-php7
phpize
./configure --with-php-config=/usr/local/php7/bin/php-config
--with-libmemcahced-dir=/usr/local/libmemcached/
make && make install
将上步得到的路径添加到PHP配置文件:/usr/local/php7/etc/php.ini
extension="/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/memcached.so"
重启php:service php-fpm restart
6、使用 memcached
创建新对象: new Memcached
添加服务器: addServer
添加键值对: set
根据键获取值: get
删除键值对: delete
增加指定数值: increment
减去指定数值:decrement
清空所有缓存:flush
7、设置session使用memcached保存
vi /usr/local/php7/etc/php.ini
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

Redis安装使用:

1、Redis安装:
说明:
1、也是一种类似于Memcached的key-value机制的存储服务
2、是非关系型数据库(NoSQL)的一种。
3、官网:www.redis.io,中文网:www.redis.cn
特点:
1、能够持久化存储数据,而Memcached不能
2、value支持更多的数据类型
3、支持数据备份,主从模式
安装:Redis
1、解压
tar -zxvf redis-3.2.8.tar.gz
2、移动
cp -R redis-3.2.8 /usr/local/redis
3、安装(无需配置编译)
make install
服务:
安装完成后,/usr/local/redis/src目录中有两个服务程序
客户端:redis-cli
服务端:redis-server
服务测试:./redis-server
1、需要制定启动配置文件
2、默认配置:/usr/local/redis/redis.conf
添加环境变量:
vi /etc/profile #修改文件
export PATH=$PATH:/usr/local/redis/src #在文件末尾添加
source /etc/profile #使文件立即生效
开机启动:
1、复制配置文件
cd /usr/local/redis
cp redis.conf redis_6379.conf
2、编译配置文件 redis_6379.conf
daemonize yes #以守护进程的方式启动(后台运行)
3、复制启动脚本文件
cd utils
cp redis_init_scripts redis_init_script_6379
4、编辑启动脚本文件 redis_init_script_6379
EXEC=/usr/local/redis/src/redis-server #服务端路径
CLIEXEC=/usr/local/redis/src/redis-cli #客户端路径
CONF=/usr/local/redis/redis_6379.conf #配置文件路径
5、测试启动脚本(可以通过ps查看并用redis-cli连接)
./redis-init_script_6379 start
6、修改开机启动文件 /etc/rc.local, 添加
/usr/local/redis/utils/redis_init_script_6379 start
7、下次开机就会启动redis服务
服务测试:
1、查看进程
ps aux | grep redis
2、使用客户端连接
cd /usr/local/redis/src
连接参数:
-h:指定主机
-p:指定端口号
-a:指定密码
./redis-cli
127.0.0.1:6379>ping
PONG
3、默认情况下是无密码的,使用密码有两种方式
1、单次生效,通过命令配置
设置密码:config set requirepass 123456
获取密码:config get requirepass
授权使用:auth 123456
2、永久生效,需要修改配置文件
1、vi redis_6379.conf
2、取消‘requirepass’行的注释,后面写上密码即可
requirepass 123456
说明:启用密码后,无密码也可以连接,但是没有权限进行操作
2、客户端操作:
常用命令:
ping:查看服务器是否允许
quit:关闭当前连接
auth:验证密码
select:选择库,0-15,共16个,默认使用0
flushdb:删除当前数据库
flushall:删除所有数据库
DEL:删除键
EXISTS:检查键是否存在
数据类型:
字符串(String):是最基本的数据类型,与Memcached的Key-Value一样
设置:SET key value
哈希(Hash):是一个键值对集合,特别适合存储对象
设置:HMSET user:1 name xiaoming password 123456 level 2
获取所有信息:HGETALL usr:1
获取单个信息:HGET user:1 name
列表(List):按照插入顺序排序,可以添加一个元素到列表的头部(左边)或者尾部(右边)
左侧压入:lpush key value [value2 ...]
范围显示:lrange key strat stop
显示个数:llen key
左侧弹出:lpop
右侧压入:rpush
右侧弹出:rpop
集合(Set):string类型的无需集合,集合中的数据是唯一的
添加数据:sadd key value [value2 ...]
显示数据:smembers key
显示总数:scard key
随机移除:spop key [count] 默认随机移除一个
有序集合(zset:sorted set):
不同于set的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。
添加数据:zadd key score value
显示数据:zrange key start stop
显示总数:zcard key
显示范围:zcount key start stop
显示分数:zscore key member
3、php操作redis
1、安装php-redis扩展
下载:https://github.com/phpredis/phpredis/tree/php7
phpredis-php7.zip
解压:unzip phpredis-php7.zip
进入:cd phpredis-php7
解压:phpize
配置:./configure --with-php-config=/usr/local/php7/bin/php-config
编译:make
安装:make install
2、修改PHP配置文件php.ini
vi /usr/local/php7/etc/php.ini
将上步的路径添加进来
extension=/usr/local/php7/lib/php/extension/no-debug-non-zts-2015012/redis.so
3、重启php-fpm
service php-fpm restart
4、测试扩展库是否安装成功(phpinfo())
5、PHP代码操作Redis
//创建对象
$redis = new Redis();
//连接服务器
$redis->connect('127.0.0.1',6379);
//密码认证
$redis->auth('123456');

猜你喜欢

转载自www.cnblogs.com/huangcanbin/p/12066355.html