资讯专栏INFORMATION COLUMN

Linux基础

Honwhy / 726人阅读

摘要:动态分配本身,虚拟硬盘,本身电脑磁盘会根据虚拟磁盘存放文件大小情况动态分配磁盘空间。虚拟磁盘最多占据大小。磁盘的区分是通过磁柱,盘符与物理磁盘建立联系的过程称之为挂载。主人,同组,其他组。设置同组读写权限,主人和其它组没有权限。

操作系统

Win

unix/Linux 服务器 (php apache mysql)

安装虚拟机

需要一台裸机电脑,可以使用虚拟机(VM[大小500M], VirtualBox[大小100M])

VirtualBox下载地址

过程中:存储在物理硬盘,选择固定大小。
动态分配:本身500G ,虚拟硬盘8G,本身电脑磁盘会根据虚拟磁盘存放文件大小情况动态分配磁盘空间。虚拟磁盘最多占据8G大小。
固定大小:本身500G, 虚拟硬盘8G,本身电脑一次性把8G磁盘都分配出来。该方式执行速度非常快。

需要将CentOS镜像文件,操作系统磁盘放入光驱(在存储栏操作).

虚拟机释放扑捉鼠标:ctrl.

linux磁盘文件类型:ext2ext3swap(交换分区).
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 组名 用户名

创建用户指定giduidhome_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 删除光标所在位置

权限

文件(目录)权限本身划分: 读:readr写:writew执行:executex

权限从用户角度划分:主人权限: useru同组用户权限:groupg其它组用户权限: othero

首个字母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连接服务器及简单配置

secureCRTssh协议,端口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_listftpusers 文件,开放权限。 在 /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
");
}

编译:

> 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有许多依赖包程序:libxmlgdjpegpng等等.

解压文件
安装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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9518.html

相关文章

  • Linux课程适合0基础学吗?要学习哪些内容?

    摘要:课程从基础入门开始教学,学习难度循序渐进,由浅入深,即使是零基础的学习者也可以完全能够听懂。   想要从事IT行业,但是有不想要学习编程该选择哪门技术合适呢?当然是Linux运维了。Linux是市场上非常受欢迎的技术,应用范围广泛,就业前景好,受到了很多人的喜欢。那么问题来了,Linux运维零基础可以学习吗?  在服务器市...

    高胜山 评论0 收藏0
  • CIP宣布推出新的超长期支持Kernel,推动自动化、机器学习和人工智能

    摘要:新内核扩展了对位的架构支持,使开发者能够在各种用例中使用它,包括楼宇自动化机器学习和人工智能。和大会日期会议日程通告日期年月日会议活动举办日期年月至日和赞助方案和多元化奖学金现正接受申请和即将首次合体落地中国和购票窗口,立即购票 作者:maemalynn 新的CIP SLTS Kernel扩展了支持架构以包含ARM64 showImg(https://segmentfault.com/...

    Jacendfeng 评论0 收藏0
  • CIP宣布推出新的超长期支持Kernel,推动自动化、机器学习和人工智能

    摘要:新内核扩展了对位的架构支持,使开发者能够在各种用例中使用它,包括楼宇自动化机器学习和人工智能。和大会日期会议日程通告日期年月日会议活动举办日期年月至日和赞助方案和多元化奖学金现正接受申请和即将首次合体落地中国和购票窗口,立即购票 作者:maemalynn 新的CIP SLTS Kernel扩展了支持架构以包含ARM64 showImg(https://segmentfault.com/...

    chemzqm 评论0 收藏0
  • 【Summer-LinuxLinux基础

    摘要:碎碎念这几天在上基础的暑校比较细的笔记还是手写整理了感觉这种方式比较适合我理解记忆这里记一些相对来说比较重要的东西大多应该也是记忆性的,操作性的东西还是直接通过操作来熟悉更新考完了,我枯了,我是个什么学术垃圾,来整理了的主要应用领域服务器安 碎碎念:这几天在上linux基础的暑校比较细的笔记还是手写整理了感觉这种方式比较适合我理解记忆这里记一些相对来说比较重要的东西(大多应该也是记忆性...

    warmcheng 评论0 收藏0
  • linux基础知识点

    摘要:文章目录根目录下相关的数据目录结构树形结构获取命令行界面命令行提示标识的含义查看及切换目录查看文本文件内容列出处理器信息列出内存信息查看主机名和信息列出当前系统的主机名称列出以激活的网卡连接信息创建目录创建文档文本内容 ...

    Cc_2011 评论0 收藏0
  • 剖析开源云和基础架构技术

    摘要:云计算剖析本文将从云架构的核心抽象开始讨论从基础架构即服务,然后是构建块,最后是高度集成的解决方案。核心开源技术领域经历着以虚拟化管理和大规模云软件包集成的虚拟基础架构为中心的开发浪潮。 对分布式系统也就是 Internet 使用云作为一种抽象是十分普遍的,但在过去的几年中,这个抽象已经扩展,并入了高度虚拟化的可伸缩基础架构,这些基础架构可以很容易地被作为一个(本地的或远程的,或者本地和远...

    MoAir 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<