操作系统
- Win
- unix/Linux 服务器 (php apache mysql)
安装虚拟机
需要一台裸机电脑,可以使用虚拟机(VM[大小500M], VirtualBox[大小100M])
VirtualBox下载地址
过程中:存储在物理硬盘
,选择固定大小。
动态分配:本身500G ,虚拟硬盘8G,本身电脑磁盘会根据虚拟磁盘存放文件大小情况动态分配磁盘空间。虚拟磁盘最多占据8G大小。
固定大小:本身500G, 虚拟硬盘8G,本身电脑一次性把8G磁盘都分配出来。该方式执行速度非常快。
需要将CentOS
镜像文件,操作系统磁盘放入光驱(在存储栏
操作).
虚拟机释放扑捉鼠标:ctrl
.
linux磁盘文件类型:ext2
, ext3
,swap
(交换分区).
windows磁盘文件类型:fat32
, NTES.
swap
,交换分区,把硬盘的一部分空间,拿出来当作硬盘使用,内存里边不常使用的数据放入交换分区。交换分区大小建议是内存的两倍。
挂载点:理解成Windows下的C盘,D盘等目录都是挂载点。
相关命令操作
linux相关命令操作
- 查看当前目录的文件信息
> ls // list
> ls 目录 // 查看指定目录的文件信息
- 目录切换
> cd 目录地址
- 显示当前用户所在位置
> pwd
- 查看当前用户信息
> whoami
- 切换用户
> su - root // 切换为root管理员用户
> su - // 切换为root 管理员用户
> su root // 切换为root管理员用户(权限还是普通用户)
> exit // 从root用户切换为普通用户 // 从root 直接执行exit表示退出
> su 具体用户 // 切换为指定用户
- 操作模式切换
> init 3 // 桌面模式切换为命令模式
> init 5 // 命令模式切换为桌面模式
- 显示系统分区
> df -lh
- 创建普通用户
> useradd
- 查看文件指定大小
> du -h filename
磁盘分区
windows分区
windows系统分区结构:
例如分区有:C D E
硬盘本身没有分区概念,分区是操作系统的逻辑概念。
磁盘的区分是通过:磁柱
C,D盘符与物理磁盘建立联系的过程称之为“挂载”。
windows下,盘符与物理空间是自动挂载.
linux分区
linux的跟目录只有一个,名字为:/
。
- 整个系统只有一个根目录
/
- 系统目录的挂载分为:
自动
和手动
- 文件占据磁盘空间,是占据与它最近的上级挂载点的空间.
home 占据`/`根目录空间
tmp 占据自己的空间
muisc占据自己的空间
movie占据tmp空间
hello占据music空间
linux系统安装的过程中出现的分区,都是自动挂载。
系统运行过程中出现的光盘,U盘,移动硬盘需要手动挂载.
磁盘空间占用情况,文件会占用与它最近的挂载点的空间.
linux系统分区结构是一个"倒着的大叔"
window系统分区的结构是一个"倒着的森林"
根目录文件
/ (root, 根目录)
:与开机系统有关
/bin
binary二进制文件,可执行程序文件.(内部文件是一些指令信息)
/sbin
super binary超级的二进制文件目录 (超级管理员root可以执行的命令文件)
/dev
device 设备目录,在linux系统里边全部设备都使用文件表示。
`/dev/cdrom` 硬件光驱设备
`/dev/sdal` 分区设备
/home
家目录. 给系统每创建一个用户,在该目录下就会自动创建一个对应目录(目录名字与当前用户名字一致),这个目录就是这个用户的家目录. 具体用户登陆系统会默认切换到自己的家目录.
/proc
内存映射目录。 查看系统的相关信息。
/var (variable)
与系统运作过程有关。可变的,编译的.
/boot
系统启动目录
`/boot/initrd-2.6.18-194.e15.img` 表示linux内核版本`2.6`
/etc
系统核心配置文件
`/etc/passwd`存放用户信息
/lib
library资源库,函数库.
/mnt
mount挂载 (可以挂载一些硬件,光驱,U盘,移动硬盘)。mnt相当于windows下的H盘符和K盘符,G盘符. 该目录可以不使用,随便一个普通目录都可以实现挂载。
/root
root超级管理员的家目录.
/usr (unix software resource)
与软件安装/执行有关。 和windows系统C盘中的Program file目录. 系统软件安装到usr目录.
/usr/bin
和/usr/sbin
,通过安装具体软件可以使用的一些指令.
目录操作
创建
创建目录:make directory
> mkdir filename
递归创建目录
> mkdir -p filename/filename // 递归创建目录
移动
移动操作: move
> mv 目标 目录地址
- 目录存在 进行移动操作。
- 目录不存在 修改名字
> mv 目录 存在目录/不存在目录 // 把目标移动到目录并改名字.
修改名字
> mv 旧名字 新名字 // 给文件改名字
复制文件
复制文件copy
> cp 文件 目录 // 把文件复制到指定目录
复制目录
> cp -r 目录1 目录2 // 把目录1拷贝到目录2 // -r 参数 可以写到 cp 指令后, 也可以在最后
复制目录并修改
> cp 文件 目录/不存在的名字 // 文件复制到目录后被修改名字
修改文件内容
> cp 文件 目录/已存在文件 // 把文件中的内容替换成已存在的文件,名字为已存在文件的名字
删除文件/目录
删除目录 remove directory
> rmdir filename // 删除单个目录
删除递归目录
参数r
指的是:recursive.
参数f
指的是: force
> rm -r filename // 递归删除目录
> rm -rf filanem // 递归强制删除
路径
绝对路径
绝对路径:通过完整的路径定位一个文件,就是绝对路径.
通过根目录寻找指定文件
cd /etc/rpm
cd /
相对路径
相对路径: 一个文件对于当前文件经历过的目录,就是相对路径。
cd ../ 上级目录
cd .. 上级目录
cd ../../ 上两级目录
cd ../.. 上两级目录
cd ./ 当前目录
cd . 当前目录
文件操作
查看
> cat filename // 把文件内容全部输出
> more filename // 逐行查看文件内容
退出查看:q
键
> less filename // 通过“上下左右”键查看文档各个部分内容
> head -n filename // 查看文档的前N行内容
> tail -n filename // 查看文档的后N行内容
> wc filename // 计算文件行数
创建新文件
> touch filename // 创建文件
> touch 目录 filename // 在特定目录下创建文件
写入内容
> echo content > filename // 对文件进行覆盖内容
> echo content >> filanem // 对文件进行追加内容
> cat file1 > file2 // 把文件1的内容覆盖到文件2里
> cat file1 >> file2 // 把文件1的内容追加到文件2里
用户的管理
linux是一个多用户,多任务操作系统.
root用户有权限去管理.
创建用户
> useradd 用户名
> cat /etc/passwd
查看当前系统组别信息
> cat /etc/group
// 用户 ---- 组别 ---- 权限设置
默认,每创建一个用户就会为该用户创建一个组。
创建用户的时候,没有指定组别。
创建用户为指定组
> useradd -g 组名 用户名
创建用户指定gid
,uid
,home_dir
.
> useradd -g 编组号 -u 用户编号 -d 家目录 用户名
修改用户
user modify
> usermod 用户名 (组别-g,家目录-d,用户名-l,用户编号-u)
> usermod -g 502 用户名
修改家目录必须手动创建对应的家目录,该目录的权限和所属组别都需要设置.
删除用户
user delete
> userdel 用户名
> userdel -r 用户名 // 连同用户的家目录一并删除
查看命令使用细节
> man 命令
> 命令 --help
组的管理
创建组 group add
> groupadd 组名称
> groupadd -g 组名称 // 设置gid
修改组 group modify
> groupmod -g 组id -n 组名称
删除组 group delete
> groupdel 组名称
当前组别如果存在用户,不允许删除.
给用户设置密码
创建用户设置密码之后,可以登陆系统.
> passwd 用户名
VI
编辑器有:vim
,emacs
vi编辑器默认有三种模式,命令(默认)
,编辑
,尾行
。
进入编辑模式:a
,i
,o
,s
四个键都可以
进入尾行模式::
,/
两种模式。
不保存文件强制退出编辑模式::q!
。
编辑模式下不可以退出,需要进入尾行模式才能退出。
尾行模式进入命令模式:1. esc。 2.连续两次esc
。3. 删除全部尾行内容
尾行操作模式
打开vi编辑器
vi 文件名
退出编辑器
ctrl + c
> :q
保存文件
> :w
保存并直接退出
> :wq
保存并强制退出
> :wq!
搜索内容
> :/关键词(内容) // 第一次出现的位置
> ?/关键词 // 最后一次出现的位置
> /关键词
n
往前查看shift+n
往后查找
内容替换
> :s/被替换内容/替换内容 // 替换当前行的第一个目标内容 (注意:鼠标需要在当前修改行数上.)
> :s/被替换内容/替换内容/g // 当前行上目标内容全部替换 // g全局 (注意:鼠标需要在当前修改行数上.)
> :%s/被替换内容/替换内容/g // 替换文档全部目标所有内容
编辑器前加上行数显示
> :set/number (:set nu)
取消序号显示
> :set nonumber (:set nonu)
跳转行数
:n // 跳转行数
:10
命令模式
命令模式,光标移动
字符间
- 上下左右移动 // 单个字符移动
-
h
,j
,k
,l
移动 // 单个字符移动
单词间
-
e
,本单词尾部或下个单词的尾部 // 单个单词移动 (end) -
w
, 下个单词的首字母 (word) -
b
, 上个单词的首字母 (before)
行间
-
$
行尾 -
0
行首
段落间
{
本段落头部}
本段落尾部
屏幕间
L
屏幕尾部H
屏幕开头
不支持跨屏跳转
文档
G
文档的尾部1+G
文档开头 (先按数字连续按G)n+G
定位到文档的第n行
命令模式,删除内容
> dd // 删除本行
> n+dd // 删除指定多少行 (从当前行开始计算)
> d+光标移动的区域 // 删除选中的区域 // d+$ 从当前位置,一直删除至行尾 (包括光标所在位置) // d+e 删除单词结尾
> x // 删除单个字符
> u // 撤销 undo
> . // 点,重复上一次命令
> r+字符 // 快速替换单个字符
> J // 大写J,合并两行.
命令模式,内容复制
> yy // 复制本行
> n+yy // 从当前行复制n行
> y+光标移动 // y+e 复制单词
> p // 粘贴内容
> dd + p // 删除的内容,再粘贴 (删除和复制的内容都是放入缓存中)
编辑模式
a
,i
,o
,s
从命令模式进入编辑模式esc
退出编辑模式到命令模式
-
a
光标后移动一位 -
i
光标不动 -
o
另起一行 -
s
删除光标所在位置
权限
文件(目录)权限本身划分: 读:read
r,写:write
w,执行:execute
x
权限从用户角度划分:主人权限: user
u, 同组用户权限:group
g,其它组用户权限: other
o。
首个字母d
:表示目录
首个字母-
:表示普通文件
设置权限
字母[相对方式]设置权限,设置权限的同时对其它权限没有影响。
cheange modify
> chmod u+x 文件名/目录名 // 增加权限
> chmod u-w 文件名/目录名 // 减少权限
> chmod o+wx 文件名/目录名 // 增加多个权限
> chmod o-wxr 文件名/目录名 // 减少多个权限
> chmod u+x,g-w 文件名/目录名 // 多个用户减少多个权限,或增加多个权限
数字[绝对方式]设置权限
数字表示权限
前提:任何两个数字算术和不能等于第三个数,否则权限混淆。
读4,写2,执行1。
主人7,同组6,其他组5。
> chmod 060 filename // 设置同组读写权限,主人和其它组没有权限。
> chmod 751 dirname -r // 对目录进行递归设置权限
权限具体使用
文件的读,写,执行。
- 文件没有写权限,强制写入,强制保存。
- 其它组用户,没有写入权限,也可以强行写入,强制保存。结果:文件的组和主人发生变化,谁修改,变成谁
- 修改一个没有读权限的文件,强制写入,强制保存。结果:原先的内容覆盖。
- shell脚本让文件执行。
shell脚本:linux内部的编程技术,就是linux系统指令的集合
。
#!/bin/bash
cd /home/mm
ls -al > a.txt
目录的,读,写,执行
- 目录的读权限,规定是否可以查看文件内部信息。
- 目录的写权限,规定用户是否可以给目录增,减文件。
- 目录的执行权限,规定用户是否可以切换到该目录。
- 如果用户对当前文件有写权限,就可以执行,不受上级目录权限限制。(明确保护一些文件,那么就把这些文件的上级目录权限设置禁止其他用户查看,切换进该目录)
系统常用指令
信息匹配
> grep 关键字 路径名 // 将文本中指定的信息匹配出来
> grep own ./newpasswd
> grep own /etc/passwd
查看进程
任务管理器,查看系统进程及所占资源
> top
退出进程q
查看活跃进程
> ps // 查看系统活跃进程process
> ps -A // 查看所有进程
查看内存使用情况
> free
> free -m // 查看内存情况
显示文件占据磁盘大小
> du -h filenname // 以K,M,G为单位显示或文件占据磁盘空间大小(硬盘中最小的`block`是4k)
时间
> date // 查看系统时间
> date -s "2017-1-15 16:06:06" // 给系统设置时间
查看系统分区
> df -lh // 查看系统分区信息
杀死进程
> kill -9 pid // 杀死指定进程号的进程
> kill -9 1922
管道
管道(pipe):前者的输出是后者的输入
> ls -al | wc // 查看当前目录下一共的文件数目
> ls -al | grep 关键词
> ls -al | head -10
> cat newpasswd | grep 'nologin'
> ls -al | less | head -10
递归使用管道
> ls -al | grep mm | wc // 查看当前目录下有多少文件。
文件查找
find
文件查找
> find 目录 参数 参数值, 参数 参数值, 参数 参数值...
> find / -name passwd // 查询名字
> find /etc -name passwd
> find / -maxdepth 3 -name passwd // 指定查询文件层次
> find / -mindepth 3 -maxdepth 3 -name passwd
参数:
- -maxdepth n 查找目录最深层次
- -mindepth n 查找目录最浅层次
- -name filename 根据文件名称
- -size 大小 根据文件大小进行查找 (大小单位默认:512字节[半k])
> find ./ -size 10c // 修改单位 (1c=1字节)
> find ./ -size 10k // 修改单位
> find ./ -size +5000c // 大于指定值
> find ./ -size -10c // 小于指定值
- -perm 根据权限查找
> find ./ -perm 666
- -type f/d 根据文件还是目录查找
> find ./ -maxdepth 1 -type d // 查找当前一级目录
- -user -uid -nouser 当前用户
- -group -gid -nogroup 当前组
软链接和硬链接
软链接link
定义:就是windows系统的快捷方式
作用:可以对硬盘空间进行合理分配
具体设置:
ln -s 源文件 软链接
定义:就是windows系统的快捷方式
作用:可以对硬盘空间进行合理分配
> ln -s 源文件 软链接
> ln -s a.txt b.txt
如果源文件不在同一级目录中,需要使用绝对路径
> ln -s /home/mm/xixi.txt /home/mm/run/hh.txt
软链接使用注意:
- 设置软链接,如果软链接和源文件不在同一级目录,原文件需要设置为绝对路径方式
- 普通文件和目录都可以设置软链接。
- 源文件被删除,对应的软链接变为“无效链接”,如果再创建一个同名源文件,软链接恢复为有效连接。
硬链接
与PHP中的引用复制一样。
作用:防止特殊文件被删除。
定义:系统里边文件的名称/目录(引用)就是硬连接。
给文件增加名称(应用)的过程就是创建“硬连接”(一个文件有多个名字,它们互为硬连接)
> ln [-d] 源文件 硬连接
硬链接使用注意:
- 设置硬链接的时候,原文件不需要使用绝对路径
- 只有普通文件可以设置硬链接,目录不可以
- 同一个原文件的所有硬链接文件必须在同一个硬盘、同一个分区里边
查看目录或文件的标识id
> ls -li 文件名/目录名
使用硬连接的好处:
- 防止重要的文件被误删除
- 如果有多人需要操作同一个文件,就给他们创建许多硬链接即可。
任务调度指令
任务调度指令:规定系统在指定时间完成指定任务。
开启任务调度指令
> crontab -e
执行指令之后,打开文件。
参数: 分钟 小时 日期 月份 日期 执行命令
00 23 15 * * /home/mm/pin.sh // 每个月的15号23点执行
M:分钟(0-59)
H:小时(0-23)
D:天 (1-31)
m:月(1-12)
d: 一星期内的天(0-6,0为星期天)
查看任务调度指令
> crontab -l
文件属组
修改文件的主人 change owner
> chown 主人 filename // 需要超级管理员来执行
> chown -R 主人.组 filanem // 同时修改的主人和组
> chown root.mayday filenam
> chown -R 主人 filanem // 递归修改目录和目录底下文件的全部所属
> chown mm pink.html
修改组 change group
> chgrp .组 filename
> chgrp .mayday a.txt
配置网络
- virtualbox配置网卡,接网线 (连接模式:桥接网卡,混杂模式:全部允许)
- 配置ip,子网掩码,静态设置,开机启动ONBOOT网卡
/etc/sysconfig/network-scripts
编辑:ifcfg-eth0
- 重启网络
- 本机子网掩码与linux掩码一致。
- 测试是否可以与本机对话,设置
ping ip
(ping 一去一会)
编辑ifcfg-eth0
文件(提前备份文件)
BOOTPROTO=static # 设置静态目录
IPADDR=192.168.56.1 # 设置静态ip
ONBOOT=yes # 开机自动启动
NETMASK=255.255.255.0 # 子网掩码
子网掩码
192.168.5.100 --- 192.168.5.1 为了搜寻对方比较快捷,只寻找最后一位 1 即可。
如何判断只寻找最后一位,因为有子网掩码在做比较。(255.255.255.0)。 ip地址和子网掩码分别&&运算(二进制做与运算),如果得到结果一致,说明是同一网段。
启动网络
> service network restart
secureCRT
终端软件secureCRT/putty
连接服务器及简单配置
secureCRT
是ssh
协议,端口22
类似apache是http
协议,端口80
配置
在选项-会话选项
- 回滚次数
- 配置界面
- 乱码设置(外观:字符编码,字体设置)
光驱的挂载和卸载
光驱挂载
光驱挂载mount
光驱硬件位置:/dev/cdrom
.
在系统寻找一个目录,让其与光驱硬件挂载,进而使用光驱。
选择目录:/mnt
目录. 自定义目录也行。
> mount 硬件设备(绝对路径) 挂载点
> mount /dev/cdrom ./rom // 自定义挂载目录 // 会出现挂载失败
> mount -t ext3 /dev/cdrom /home/rom
> mount -t auto /dev/cdrom /home
光驱卸载
- 可以卸载硬件设备
- 卸载挂载点
> unmount ./rom
> unmout /dev/cdrom
软件安装
rpm 安装
类似windows软件的安装(该软件安装软件的本质,就是把许多二进制文件复制到系统指定目录)
源码编译安装
比rpm
方式更灵活,可以灵活配置需要安装各种软件.
-
configure
检查配置 (软件安装目录配置) -
make
编译软件(c语言程序-->机器语言程序) -
make install
安装软件, 与rpm
方式类似。把二进制复制到系统指定目录.
智能yum方式
yum php
. 一键安装方式。要求服务器需要有网络。
Ftp服务
安装
Ftp
文件传输协议.
协议:ftp
,端口:21
安装:vsftpd
在/home/mm/rom/Packages
底下安装vsftpd
> rpm -ivh 文件名
> rpm -ivh vsftpd-2.2.2-11.el6_4.1.i686.rpm
查看软件是否安装成功:
> rpm -q 软件名 (q:query)
> rpm -q vsftpd
卸载软件:
> rpm -e 软件名
> rpm -e vsftpd
查看全部软件
> rpm -qa
模糊查询软件
> rpm -qa | grep 'ftpd'
升级已有软件
> rpm -u 文件名
文件名:软件名 + 版本号 + 后缀
软件名:是一个软件在系统运行过程中,对其直接操作名字。例如:fvstpd
使用
启动vsftpd服务器
> service vsftpd start // 启动
> service vsftpd stop // 停止
> service vsftpd restart // 重启
通过客户端ftp(winscp)软件使用服务器的ftp服务。
首次连接失败,原因,需要让linux服务器放开对21号端口的保护。
修改iptables
vi /etc/sysconfig/iptables
将
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT (允许80端口)添加到22端口配置的下面
root用户需要登陆ftp需要修改:user_list
和ftpusers
文件,开放权限。 在 /etc/vsftpd
文件夹中.
ftp只允许访问用户自己的家目录
ftp使用普通用户,不要使用系统根目录.
在vsftp.conf
打开配置项:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
创建chroot_list
设置访问的用户。
作用:用户的使用会把家目录设置成根目录。
gcc编译器
安装gcc:
gcc-4.4.7-4.el6.i686.rpm
gcc-c++-4.4.7-4.el6.i686.rpm
需要安装依赖.
error: Failed dependencies:
cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.i686
cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.i686
glibc-devel >= 2.2.90-12 is needed by gcc-4.4.7-4.el6.i686
libgomp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.i686
libgomp.so.1 is needed by gcc-4.4.7-4.el6.i686
A软件依赖B软件,B软件依赖C软件,C软件依赖D软件。
A软件安装的时候,需要B,C,D软件的支持。 先安装D,安装C,安装B,安装A。
卸载C软件的时候,需要先卸载B软件。卸载B软件会提示先卸载A软件。 卸载A,卸载B,卸载C
部分依赖:
mpfr-2.4.1-6.el6.x86_64.rpm
ppl-0.10.2-11.el6.x86_64.rpm
测试gcc安装是否成功:
#include
main() {
printf('hello world\n');
}
编译:
> gcc filename
zlib
zlib-1.2.5.tar.gz
安装
> tar –zxvf zlib-1.2.5.tar.gz
> cd zlib-1.2.5
> ./configure //这个配置编译命令不要加目录参数
> make && make install
软件解压缩
后缀:tar.gz
--> tar zxvf 压缩包
后缀:tar.bz2
--> tar jxvf 压缩包
> tar zxvf 压缩包名字
安装zlib软件(源码配置方式安装)
- 检查配置软件的依赖关系 configure
检查软件依赖关系
设置软件安装路径
软件参数配置
configure指令,作为配置.
> ./configure --help
> ./configure --prefix // 设置软件安装目录
zlib
软件安装的时候做配置configure
,不需要设置额外的参数,系统会把其它安装在默认的目录,以便其它软件可以找寻其配置 。
检查配置
> ./configure
- 编译软件 make
例如:把c语言的二进制文件编译成可执行 二进制代码。
> make
- 安装软件 make install
把编译后的二进制文件复制到系统指定目录
> make install
安装软件三步:
- 检查配置:
./configure
- 编译软件:
make
- 安装软件:
make install
Apache编译安装
安装顺序:apache
-> php
-> mysql
解压文件
> ./configure --prefix=/usr/local/http2 \
> --enable-modules=all \
> --enable-mods-shared=all \
> --enable-so
apache软件里边有许多功能模块modules,与软件本身是两部分内容,--enable-mods-shared=all
,参数作用是把modules模块的代码也编译进软件的本身里边。缺点:本身物理体积变大,优点:运行速度快.
不把模块编译进软件内,这样软件体积可以小巧,如果需要那个模块就立刻include
进来使用.
编译和安装
> make && make install
启动apache
> /usr/local/http2/bin/apachectl start
通过setup指令开放防火墙的80端口
通过浏览器请求apache服务
apache配置虚拟主机
打开httpd.conf
打开httpd-vhosts.conf辅助配置文件
修改配置httpd-vhost.conf
文件
DocumentRoot "/home/mm/1111"
Servername local.com
重启apache ./apachectl restart
windows下的host文件需要配置dns域名解析
192.167.1.10 local.com
访问权限问题
提示:Forbidden
- 开启apache配置文件的目录访问权限
Options FollowSymLinks
AllowOverride all
Order deny,allow
Allow from all
- 没有默认索引文件
> touch /home/mm/1111/index.html
- 文件目录权限
文件的执行权限必须要有。
安装PHP
php有许多依赖包程序:libxml
,gd
,jpeg
,png
等等.
解压文件
安装libxml2
shell> cd /home/mm/tar
shell> tar zxvf libxml2-2.7.2.tar.gz
shell> cd libxml2-2.7.2
shell>./configure --prefix=/usr/local/libxml2
shell> make && make install
安装jpeg8
shell> cd /home/mm/tar
shell> tar -zxvf jpegsrc.v8b.tar.gz
shell> cd jpeg-8b
shell>./configure --prefix=/usr/local/jpeg \
--enable-shared --enable-static
shell> make && make install
安装libpng
shell> cd /home/mm/tar
shell> tar zxvf libpng-1.4.3.tar.gz
shell> cd libpng-1.4.3
shell>./configure # 不要带参数,让它默认安装到相应目录
shell> make && make install
安装freetype
shell> cd /home/mm/tar
shell> tar zxvf freetype-2.4.1.tar.gz
shell> cd freetype-2.4.1
shell>./configure --prefix=/usr/local/freetype
shell> make && make install
安装GD库
shell> cd /home/mm/tar
shell> tar -zvxf gd-2.0.35.tar.gz
shell> mkdir -p /usr/local/gd
shell> cd gd-2.0.35
shell>./configure --prefix=/usr/local/gd \
--with-jpeg=/usr/local/jpeg/ \
--with-png --with-zlib \
--with-freetype=/usr/local/freetype
shell> make && make install
安装PHP
shell> cd /home/mm/tar
shell> tar -jxvf php-5.3.6.tar.bz
shell> cd php-5.3.6
shell>./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/http2/bin/apxs \ // 对apache的支持。 与apache结合使用,在httpd.conf里面会自动引入PHP模块,也会自动创建对应的apache,php模块
--with-mysql=mysqlnd \ // 数据库支持 mysql native driver
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-freetype-dir=/usr/local/freetype \
--with-gd=/usr/local/gd \
--with-zlib --with-libxml-dir=/usr/local/libxml2 \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir \
--enable-mbstring=all \ // 宽字节函数库支持(mb_substr())
--enable-mbregex \ // PHP中的表达式支持
--enable-shared // PHP的函数库编译到本身软件中
shell> make && make install
shell> cp php.ini-development /usr/local/php/lib/php.ini // 复制`php.ini-development` 系统指定目录。
注意点:
软件安装失败,需要重新安装:
- 直接删除对应的程序文件。例如:/usr/local/http2. 删除
http2
目录。 - 删除解压后的文件。
- 重新解压,重新配置configure,重新编译make,重新安装make install
配置Apache使其支持PHP
修改配置文件httpd.conf
> vi /usr/loca/http2/conf/httpd.conf
- 在httpd.conf(Apache主配置文件)中增加:
AddType application/x-httpd-php .php
- 找到下面代码
DirectoryIndex index.html
在index.html前面index.php
- 建立php测试网页
> vi /home/mm/index.php
输出内容:
- 重启apache
> /usr/local/http2/bin/apchectl restart
- 访问到浏览器
http://虚拟机IP
看到PHP信息,完成。
注意:
PHP模块安装后重启apache如果提示语法错误,Syntax error on line on 105 of
作用:告知系统创建了一个PHP模块.
解决办法:
> echo '/usr/local/lib' >> /ect/ld.so.conf
> ldconfig
让系统重新识别模块信息
安装Mysql
编译安装Mysql
shell> cd /home/mm/tar
shell> tar -xzvf mysql-5.1.58.tar.gz
shell> cd mysql-5.1.58
shell> ./configure --prefix=/usr/local/mysql \
--with-charset=utf8 \ // mysql 对字符集的支持
--with-extra-charsets=gbk,gb2312,binary // mysql额外字符集支持
shell> mount // .....挂载光盘 安装依赖.
shell> rpm -ivh libtermcap-devel-2.0.8-46....
shell> make && make install
配置并初始化MySQL
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf // mysql配置文件拷贝系统指定目录,并修改文件名
shell> cd /usr/local/mysql
shell> chown -R mysql.mysql . // 递归修改组和文件的主人 为当前目录`.`
shell> bin/mysql_install_db --user=mysql \
--datadir=/usr/local/mysql/var
// 创建mysql测试数据库和系统的数据库。 把数据存放到var目录下. (在mysql的bin目录下执行)
shell> chown -R root .
// 把当前目录文件的主人都改为root,避免数据库恢复为出厂设置。 (在mysql的bin目录下执行)
shell> chown -R mysql var
shell> bin/mysqld_safe --user=mysql &
// 启动mysql,`&`表示在后台运行mysql服务
搜寻进程
> ps -A | grep 'mysql'
登陆mysql
> ./mysql // 在bin目录
设置密码:
通过数据表的形式修改密码
> use mysql
> desc user
> seelct User,Password,Host from user
> update user set Password=password(Pass1234) // 设置密码并加密
刷新mysql权限,(无论是设置密码,还是增减权限都需要刷新mysql权限)是密码生效
> flush privileges
注意:
- 安装完之后,gnome已经奔溃,不要使用桌面模式.
> cd /etc
> vi inittab
- apache 和 mysql 启动方式不同
设置系统自动启动
配置文件路径:
在 /etc/rc.d/rc.local
文件中增加启动apache的命令
/usr/local/http2/bin/apachectl start
/usr/local/mysql/bin/mysqld_safe --user=mysql &
> vi /etc/rc.d/rc.local
系统重启
reboot
关机
poweroff