2015-09-06虚拟机网络设置.wmv: curl 获取在命令行显示的网页 dhclient 分配ip地址 ifdown eth0 关闭网卡eth0 ifup eh0 开启网卡eth0 ifconfig -a 查看所有网卡设备 service network restart dhclient 获取ip命令 rout -n 查看网关 命令行光标移动快捷键: Ctrl+a 移动光标到行首 Ctrl+e 移动光标到行尾 linux里面root为最高权限用户 centos 进入命令行 ctrl+alt+f2 在命令行下 Ctrl+Alt+F2进入图形界面admin管理员组文章数量:1530518
安装php时缺少的库: yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel curl-devel libjpeg-devel
linux系统运行级别
命令:init[0123456] 运行级别 0:关机 1:单用户 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault:这一行中的数字通过历史记录简化操作:
!! 重复前一个命令 !字符 重复前一个以“字符”开头的命令 !?abc 重复之前包含abc的命令 !-n 重复n个命令之前的那个命令 linux配置ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 配置如下内容 DEVICE=eth0 HWADDR=00:0C:29:16:08:DD TYPE=Ethernet UUID=0884c1cf-6613-4c57-9a81-fa27b9723fb1 ONBOOT=no NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.177 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 保存退出,service network restart 重启网络命令。 Centos普通用户设置sudo权限 登陆root用户执行visudo命令 找到 root ALL=(ALL) ALL下 在下面增加: centos ALL=(ALL) ALL 查看centos版本 登陆root帐户,输入 cat /etc/redhat-release,即可显示系统版本 输入 uname -r ,可以查询内核版本。 查看安装的软件包 输入 cat -n /root/install.log,可显示系统安装时所安装的软件包列表。(需要root权限) 获取搜狐源 http://mirrors.sohu/mysql/ http://mirrors.sohu/php/ http://mirrors.sohu/apache/ wget 基本的语法是:wget [参数列表] URL wget -r http://place.your.url/here 这个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址 同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l number参数来指定下载的层次。例如只下载两层,那么使用-l 2。 要是您想制作镜像站点,那么可以使用-m参数,例如:wget -m http://place.your.url/here 这时wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行。 wget -c http://the.url.of/incomplete/file 使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。 3、批量下载。如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,然后用命令:wget -i download.txt 这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页) 原文地址: http://blog.csdn/richardysteven/article/details/4565931 经验:执行系统服务时,需要使用root权限才能执行成功如:service network restart 搭建lamp环境 linux jobs fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的 一。& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行 二。ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停 三。jobs 查看当前有多少在后台运行的命令 四。fg 将后台中的命令调至前台继续运行,如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) 五。bg 将一个在后台暂停的命令,变成继续执行,如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) jobs -l 查看后台任务详细信息 kill PIDnumber 杀掉进程 jobs命令执行的结果,+表示是一个当前的作业,减号表是是一个当前作业之后的一个作业,jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息; 进程的挂起
后台进程的挂起: 在solaris中通过stop命令执行,通过jobs命令查看job号(假设为num),然后执行stop %num; 在redhat中,不存在stop命令,可通过执行命令kill -stop PID,将进程挂起; 当要重新执行当前被挂起的任务时,通过bg %num 即可将挂起的job的状态由stopped改为running,仍在后台执行;当需要改为在前台执行时,执行命令fg %num即可; 前台进程的挂起:ctrl+Z 进程的终止 后台进程的终止: 方法一: 通过jobs命令查看job号(假设为num),然后执行kill %num 方法二: 通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid 前台进程的终止: ctrl+c kill的其他作用 kill除了可以终止进程,还能给进程发送其它信号,使用kill -l 可以察看kill支持的信号。 SIGTERM是不带参数时kill发送的信号,意思是要进程终止运行,但执行与否还得看进程是否支持。如果进程还没有终止,可以使用kill -SIGKILL pid,这是由内核来终止进程,进程不能监听这个信号。 kill -SIGKILL pid kill -SIGKILL pid kill -SIGKILL pid 一、linux系统初讲 2.0单用户模式 reboot 重启 3秒后按任意键 e 移动光标,e键进入编辑模式 选中第二行 按e后,将光标移至最后添加 1 或s 或single。然后回车,最后按b启动,就进入了单用户模式 runlevel 输入命令 runlevel显示单用户模式 passwd 修改root用户密码 reboot 重启root密码已修改 2.1救援模式 将虚拟机启动设置为:虚拟机>电源>启动时进入bios。保存退出 然后设置启动顺序 将boot 里cdrom 设为第一项 进入centos 启动模式选择第三项 rescue installed system 回车 选择语言 选择键盘模式 us默认 是否设置网络 2.3ls命令 ls 查看当前目录下的文件 ll 查看当前目录下的文件详细信息 ll -h 查看当前目录下的文件详细信息以M为单位显示文件大小 二、系统精讲 1.1创建和删除目录 mkdir -pv /tmp/1/2/3 创建父目录 -p: parents 父目录 -v: 可视化 rmdir 234 (非空目录不能删) rmdir /tmp/1/2/3 tree /tmp/1 查看tmp/1 目录的结构 tree查看目录结构 rmdir -pv /tmp/1/2/3 删除目录(支持删除子目录非空的) -p: parents 父目录 -v: 可视化 1.2rm命令 rm -f 强制 -i 安全位 提示 是否删除 -r 删除目录加上-r(如果不加-r删除目录内有目录,提示会略过目录,不会删目录,只会删目录里的文件) -v可视化 常用 -i -r -f rm -fr 123 删除目录没有提示 rm -rfv 123 不会提示 1.3cp命令 cp 拷贝文件 (在同一目录下需改变文件名) cp -rv 111 222 (拷贝目录加-r选项) -v:可视化 df -h 查看分区 1.4移动和重命名mv rename 重命名 mv 123 -i:安全位 -v:可视化 没有-r选项 1.5文件查看命令 cat 查看文件从头开始内容 -A:查看文件中隐藏的符号 tac 从尾部开始读取内容。 more 从头开始显示,一屏一屏的往下翻(空格键),一行一行的往下翻(Enter);但不可以往上翻 less 从头开始显示,一屏一屏的往下翻(空格键),一行一行的往下翻(Enter);按方向键可以一行一行往上往下翻,按pageup ,pagedn,可以一屏一屏往上或往下翻。小j键可以往下行翻。小k键可以往上行翻。Ctrl+b 往上翻屏 ,Ctrl+f 往下翻屏,小g最前一行,大G最后一行。/搜索关键词 小n键往后跳,往前找大写N。?搜索关键词 小n往上跳,大N往下跳。 head 查看一个文件的前十行 -2:表示查看文件的前二行 tail 查看文件的末尾十行 -3:表示只看最后三行 tail -f 动态查看后十行 不退出,按Enter键往下行翻(当被查看文有变化时,动态的显示出来) 1.6文件和目录属性 - 表示普通文件 d 表示目录 c 字符设备 b 块设备 l 软连接(快捷方式) s socket p 管道 所有者,所属组,其他人 rwx rwx rwx 421 421 421 ls -i 印出每个文件的 inode 号 第二字段 文件硬链接数或目录子目录数 第三个字段 文件所有者 第四个字段 文件所属组 第五个字段 文件大小(如果是文件夹则表示文件夹大小) 第六字段 文件创建 月 日 时 第九字段 文件名 1.7chmod命令 chmod 更改文件权限 r=4 w=2 x=1 chmod u=rwx,g=r--,o=r-- 1.txt (分别代表所有者,所属组,其他人) chmod u-x 1.txt 将1.txt 文件的所有者执行权限去掉 chmod u+x,g+w,o-r 1.txt 将1.txt文件所有者加执行,所属组加写,其他去掉可读 chmod a+r 1.txt 将1.txt的所有人加上可读 chmod -R 700 111 -R:将111目录下的所有子目录子文件继承111目录的权限711 umask 用来规定默认文件的权限 0022 后三位表示 --- -w- -w- 新建目录755 文档 644 linux下的目录必须有x权限;目录为777权限,减umask得到目录默认755权限;文档没有执行权限为666权限,减umask得到文档默认为644权限。 计算权限 1.8chown命令 chown 全称 change owner。 更改文件的所有者或所属组 chown ken 111.txt 更改111.txt所有者为ken chown :users 111.txt 更改111.txt所属组为users chown ken:users 111.txt 更改111.txt所有者为ken,所属组为users chown ken.users 111.txt 更改111.txt所有者为ken,所属组为users(和上面效果一样) chown -R ken:users 111/ 将当前目录111下的所有的目录和文件的所有者和所属组改为ken users 1.9chattr文件隐藏属性 lsattr 查看特殊属性(特殊权限) lsattr -R 可以把当前目录下的子文件子目录列出来,子目录下的子文件子目录都列出来(逐层查看文件的隐藏属性) lsattr -d 只查看目录本身特殊属性 chattr +a 12.txt +a:表示该文件只能追加,不能修改删除,也不能更改文件名 chattr -a 12.txt -a:表示解除该12.txt文件的限制 chattr +i 12.txt 比+a更严谨,不能追加,不能修改删除,也不能更改文件名 (不能做任何操作) chattr -i 12.txt 解除该12.txt的限制 2.0特殊权限之suid set_uid 限制于可二进制格式 可执行文件,注意给普通非二进制文件加setuid不起作用 命令:chmod u+s 可执行二进制文件名 which passwd chmod u+s /tmp/ls 给普通用户添加ls的临时root 权限, 该文件user属主对应的 rwx 有x权限 就显示小s ,没有x权限就显示大S 2.1特殊权限之sgid set_gid sgid可以让执行该文件的用户临时以该文件属组身份去执行,于set_uid不同是可作用于目录与文件 set_uid=4 set_gid=2 stick_bit=1 2.2特殊权限之sticky stick_bit 防删除位 一个文件是否可更改,不在于文件本身的属性,而在于文件的父目录属性是否可rwx 更改文件后,所属组和所有者都改变为被更改者 当一个目录的权限为其他人可读可写可执行的时候,那么其他人就可以删除这个目录下的任何文件,包括root chmod o+t . 把当前目录改为其他用户不可删除 小t的时候,其他用户可读可写可执行,大T的时候其他用户可读可写不可执行 2.3find搜索命令 which 搜索一个命令的位置 find /root/dir/ -name "ken" 在/root/dir/下搜索ken文件 find /root/dir/ -type f 在/root/dir/下搜索文件 find /root/dir/ -type d 在/root/dir/下搜索目录 find /root/dir/ -type b 在/root/dir/下搜索Blok find /root/dir/ -type c 在/root/dir/下搜索字符设备 find /tmp/ -mtime +10 大于十天 (单位是天) find /tmp/ -mtime -10 小于十天 find /tmp/ -mtime -365 一年以内 find /tmp/ -mmin -5 5分钟以内 find /tmp/ -mmin +5 大于五分钟 find /tmp/ -atime find /tmp/ ctime find /tmp/ -type f -name ken 在/tmp/下查找文件ken ls -li 查看文件inode find / -inum inode_number 用inode号码查找文件 find /var/log/ -type f -mtime +30 |xargs rm 将三十天以前的日志删掉 find /tmp/ -type f |xargs -i mv {} {}.bak 2.4三个时间属性 mtime 创建和修改时间 atime 访问时间 ctime 更改文件所有者或所属组时更改文件编号(inode改变这个时间就会变) stat filename 可以查看文件的三个时间 touch filename 更新三个时间 当更改ctime时 atime 和mtime不一定会改变, 用vim修改了一下文件,那么三个time都会变(修改后要保存) 使用命令echo "111111" >> 1.txt 会更改1.txt ctime 和mtime、 2.5软链接和硬链接 find /etc/ -type l in -s 软链接,目录和文件都可以做,可跨分区 in 硬链接,inode号不变,不可跨分区(只能在同一各分区下做),目录硬链接不可以做 实例1:给文件创建软链接 命令: ln -s log2013.log link2013 输出: [root@localhost test]# ll -rw-r--r-- 1 root bin 61 11-13 06: 03 log2013.log [root@localhost test]# ln -s log2013.log link2013 [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16: 01 link2013 -> log2013.log -rw-r--r-- 1 root bin 61 11-13 06: 03 log2013.log
说明: 为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效 2.6用户名文件 cat /etc/passwd/ root:x:0:0:root:/root:/bin/bash 每字段代表: 用户名 密码 uid gid 说明 家目录 shell 将一个用户设置为不能登录 2.7密码文件 cat /etc/shadow root:$6$alMmEBkwlbfl2J/h$F/QEcBOuE0yjI4WV5Lw4BHJz8w0EoE9zh.MLx4dEg6yUGQKFCdaLBPf4C.8EBFqkVOM0QTZ3qrOiH3dp18gyB0:16719:0:99999:7::: bin:*:15980:0:99999:7::: *:表示该用户锁定 sshd:!!:16719:::::: !!:表示该账户还没有密码 每字段代表: 用户名 密码 上次更改密码的天数(从1970年的1月1日到更改密码时的那一天) 还需过几天才可以改密码 密码要过多少天后到期(默认99999天) 密码到期前多少天发警告 账号的实效期限(到期后过多少天锁定账号 默认为空) 账号的生命周期(账号可以用多久) 保留值 2.8增加和删除用户组 groupadd ken 添加用户组 tail /etc/group 查看组文件 ken:x:500: 每个字段表示: 组名 组密码 组id tail /etc/gshadow 查看组密码 !!表示无密码 (组默认没密码) groupadd -g 512 ken 设置组id groupdel 删除组 2.9增加和删除用户 useradd ken tail /etc/passwd useradd -u 505 -g grp2 user1 创建用户添加用户id和组id id user1 查看user1的用户id,组id, useradd -u 508 -g 500 -d /home/user3 -s /sbin/mologin user3 给用户添加家目录,和shell useradd -M -s /sbin/nologin user3 userdel user3 删除这个用户的时候并不会删除这个用户的家目录 userdel -r user1 删除用户并且删除用户家目录 useradd -s /sbin/nologin mysql 创建用户 linux在创建用户是将用户默认的shell指定为/sbin/nologin即可阻止用户登录,命令为 useradd user -s /sbin/nologin,其中-s指定用户的默认shell 如果用户已经存在于系统,用root身份修改/etc/passwd文件,将要阻止的用户的shell改为/sbin/nologin,如下所示 user:x:502:502::/home/user:/sbin/nologin 3.0usermod修改用户属性 usermod 更改用户组 usermod -g 512 ken 将ken的用户组更改为512 useradd -u 506 -g 502 -G 512 user3 -G:指定用户扩展组 usermod -L ken 锁定用户不让登陆 usermod -U ken 解锁用户 3.1passwd修改用户密码 passwd root登陆时后面没有参数为更改root密码 passwd username 更改普通用户密码 yum install -y expect mkpasswd 生成密码随机字符串 mkpasswd -l 12 passwd --stdin ken 更改ken的密码 echo "1"|passwd --stdin ken 设定ken密码 3.2su切换用户 id 查看当前用户 whomi 查看当前用户 su 切换用户 su ken 切换至ken ,环境变量并没有切换 echo $PATH su -ken 环境变量切换 su - 切换至root su - -c "mkdir /tmp/321432" ken 临时以ken的身份执行某个命令 su - -c "ls -ld /tmp/321432" ken 3.3sudo详解 sudo 命令在权限不够的情况下切换用户 visudo 编辑可以执行sudo的用户 sudo passwd 更改root密码 3.4df命令 df 查看系统分区,-h:自动容量单位显示,-K:以k为单位显示,-m:以M为单位,-i:查看inode free 查看交换分区 3.5du命令 du 查看目录大小 du -m /etc du -h /etc -h:自动容量单位显示,-sh:查看一个文件的大小 du -sh filename 查看一个文件占用磁盘空间的大小 du -sh * 查看当前目录所有文件大小 ls -lb filename 查看一个文件本身的大小 3.6fdisk命令 fdisk -l 查看磁盘所有分区状况 fdisk 磁盘名 磁盘分区 一块硬盘最多可分4个主分区,如果想分第五个区,可把其中一个主分区换成扩展分区,然后在扩展分区内建逻辑分区。扩展分区+主分区≤4 n 新建分区 w 保存退出 3.7磁盘格式化mke2fs cat /etc/filesystems 查看文件系统 mkfs. 按Tab键补全 mkfs.ext4 /dev/sdb5 格式化sdb5为ext4文件系统 3.8磁盘挂载与卸载 mount /dev/sdb5 /mnt/ 挂载/dev/sdb5/到/mnt下 umount /home/ ls /home/ 3.9分区表fstab cat /etc/fstab vi /etc/fstab UUID 分区标识 blkid 获取磁盘分区标识 defaults 挂载选项 /etc/rc.local 开机加载配置文件 mount -a 自动加载配置文件的所有配置 mount 查看挂载的选项 三、linux系统提高 1.1vim介绍 yum install -y vim-enhanced 安装vim vi与vim的区别:打开shell文件后vim显示颜色区分,vi只是全黑色 sut nu 显示行号 1.2vim一般模式下光标移动 vim 一般模式 编辑模式 命令模式 Ctrl+f 一屏一屏往下翻 Ctrl+b 一屏一屏往上翻 pgup pgdn gg 光标跳到文档第一行 shift+g 光标跳到文档最后一行 ^ 光标跳到行首(或者数字0) $ 光标跳到行尾(或者数字1) number + G 将光标跳到指定行 number + 光标方向命令键 向指定方向移动number个位置 1.3vim一般模式下复制剪切粘贴 x 向后一个一个删除 shift+x 向前一个一个删除 number + x 向后删number个字符 dd 删除一行(剪切) p 粘贴在光标的下面 shift+p 粘贴在光标的上面 u 撤销(最多回退50次) Ctrl+r 前进 yy 复制 v 可视 1.4vim编辑模式 i 在光标之前插入模式 I 光标到行首插入 a 在光标之后插入模式 A 光标到行尾插入 o 在光标下一行插入 O 在光标上一行插入 1.5vim命令行模式 :wq 保存退出 :w 保存 :q 退出 :q! 强制退出 :set nu 显示行号 :set nonu 不显示行号 :/ (?) 搜索关键词 n 进入搜索后下(上)跳 N 进入搜索后上(下)跳 :/1,20s/IPTABLES/iptables/g g:全局替换 :/1,$s/IPTABLES/iptables/g 1-$:全文 :/%s/IPTABLES/iptables/g :noh1 取消高亮显示 1.6gzip讲解 gzip filename 压缩文件 du -sh filename 查看文件大小 gzip -1 压缩级别,压缩比例最小,压缩速度最快 gzip -9 压缩比例最大,压缩最慢。(默认是gzip -6) gzip -d filename.gz 解压缩 zcat filename.gz 查看gzip压缩文件内容 1.7bzip2讲解 大多数情况下bzip2压缩的文件更小些 bzip2 filename 压缩文件bzip2 bzip2 filename.bz2 解压bz2压缩文件 gzip bzip2 都不能压缩目录 bzcat filename.bz2 查看bzip2压缩文件内容 bzcat 默认压缩级别是9 1.8zip和unzip yum install zip unzip 安装zip压缩和解压缩工具 yum install xz bzip2 gzip zip filename 压缩文件 unzip filename.zip 解压文件(在压缩后不会删除原文件,可以同时压缩多个目录和文件) zip -r 可以压缩目录 1.9xz压缩和解压缩 xz gzip bzip2 三者相差不大 xz filename 压缩文件 xz -d filename.xz 解压缩 xzcat filename.xz 查看xz压缩文件内容 xz 压缩级别和bzip2一样(1-9) 2.0tar打包工具详解 tar -cvf c:create创建;v:可视化 ;f:file tar -cvf 1.tar 111 222 123.gz 打包多个文件(打包不会改变文件大小) du -sh 1.tar 查看文件大小 du -sh 111 222 123.gz 查看多个文件大小 tar -xvf 1.tar 解包 tar -C /tmp/ xvf 1.tar 解包到指定目录 2.1tar打包和压缩并用 tar 支持 gzip bzip2 xz 三种格式进行打包 tar -zcvf 1.tar.gz 111 222 打包并压缩多个文件 du -sh 1.tar.gz 查看文件大小 tar -zxvf 1.tar.gz 解压打包压缩文件(压缩包不会删除) tar -tf 1.tar.gz 查看打包压缩文件列表 tar -C /tmp/ -zxvf 1.tar.gz 指定打包压缩路径 tar -jcvf 1.tar.bz2 111 222 打包使用bz2格式压缩 tar -Jcvf 1.tar.xz 111 222 打包使用xz格式压缩 tar -jxvf 1.tar.bz2 解包bz2压缩格式 tar -Jxvf 1.tar.xz 解包xz压缩格式 tar -tf 1.tar.bz2 查看打包bz2压缩文件内容 tar -tJf 1.tar.xz 查看打包xz压缩文件内容 tar --exclude 12.txt -cvf 111.tar 111 打包一个目录下所有文件,排除单个文件(12.txt) tar --exclude 12.txt --exclude aming -cvf 111.tar 111 打包一个目录下所有文件,排除多个文件 2.2rpm安装和卸载 rpm == RedHat package manager mount /dev/cdrom /mnt/ cd /mnt/ ls cd packages/ ls 包名 版本号1主版本,5次版本 el6:红帽企业版6;i686:32位 noarch:表示不区分32位64位 rpm -ivh 包名 i:install v:可视化 h:进度 rpm -e 包名 卸载rpm rpm -ivh --nodeps 包名 强制安装RPM包(忽略依赖关系) rpm -Uvh 包名 升级包 2.3rpm查询 rpm -qa 查询已安装rpm包 rpm -q 包名 把一个包全部显示出来(包名不可以简写) rpm -qa |grep 'vim*' 查询已安装是否包含vim rpm -qi 包名 i:info 查看一个包详细信息 rpm -ql 包名 l:list 查看一个包安装的文件列表 rpm -qf 文件路径 f:file 查看一个文件是哪个rpm包安装 which vim 查看vim是在哪个目录 rpm -qf /usr/bin/vim 查看vim路径是哪个包安装的 rpm -qf `which vim` 反引号:显示引号内执行的结果 rpm -ivh 'http://xxxxxx.xxxx.xxx' 远程安装rpm包 2.4yum工具详解 yum list 列出yum源中的所有RPM包(网络资源) vim /etc/yum.repos.d/CentOS-Base.repo 修改源配置文件 yum list |grep vim 查询yum仓库中的vim包(搜索rpm包),已安装过包前显示@ yum list |grep -i mcrypt 查询yum仓库中的mcrypt包(-i:不区分大小写),搜索yum扩展源epel yum install 包名 使用yum安装rpm包 yum search 'vim' 在yum源中搜索一个rpm包 yum install -y vim-enhanced 安装vi省略问答默认是 yum remove vim-enhanced yum卸载rpm包 yum update 包名 yum升级rpm包 yum update;yum upgrade 升级系统中所有的rpm包 yum grouplist 列出已安装过和未安装套件 LANG=en 将语言设置成英文 LANG=zh_CN.UTF-8 将语言设置成中文 yum groupinstall 套件名 yum groupremove 套件名 2.5搭建本地yum仓库 cp -r yum.repos.d/ yum.repos.d.bak 备份yum配置文件 cd yum.repos.d;ls rm -rf Centos-Base.repo yum list 显示本地yum源 vim CentOS_Media.repo 做本地yum源 gpgcheck:是否检测 enabled:是否生效 gpgkey:不要 2.6yum如何下载rpm包到本地 yum install -y yum-plugin-downloadonly 安装yum下载rpm包工具 yum list |grep download 搜索 yum install vim-enhanced --downloadonly --downloaddir=/tmp/ (适用于未安装过) yum reinstall vim-enhanced --downloadonly --downloaddir=/tmp/ reinstall:重新安装(适用于已安装过) 首先查看本机安装的yum包都有哪些? [root@test~]# rpm -qa |grep yum 如果安装了此包:yum-utils-1.1.30-14.el6.noarch 那么就可以执行yumdownloader 假如要下载samba安装包,执行如下命令: [root@localhost ~]# yumdownloader samba 2.7源码编译安装 源码包安装时先看INSTALL 和 README /usr/local/src/ 源码包下载存放路径 tar -jxvf http*.bz2 ./configure --prefix=/usr/local/apache2 /usr/local/:常用安装源码包路径 echo $? make echo $? make install ls /usr/local/apache/ apache下载地址 http://mirrorsnic/apache/httpd/ 四、Shell编程入门 1.1shell特性 history 命令历史(默认只保存1000条) echo $HISTSIZE 输出1000(此变量为history保存条数) !! 上一条命令 !$ 前一个命令历史的参数 !c 命令历史中以c开头离得最近的命令 alias 查看取别名的命令 alias aaa='cat 1.txt' unalias wc 取行数 > 正向重定向(覆盖写) >> 追加写 < 反向重定向 2> 错误重定向,把错误信息重定向到文件里 2>> 追加错误重定向 Ctrl+z 暂停掉 jobs 查看运行的任务 + 优先级高 fg 2(1) bg 后台 1.2shell变量 env 系统相关变量 set 系统环境变量(比env多,包含env) `` 反引号:使用一个命令的结果 export 声明全局变量 a=lskd unset $a 销毁变量 1.3系统和用户的环境变量配置文件 /etc/profile 环境变量文件HOSTSIZE,HISTSIZE,PATH,HOME,SHELL (系统相关环境变量) /etc/bashrc (系统相关环境变量) /etc/profile.d/ (自定义环境变量脚本.sh存放位置) 用户家目录 家目录环境变量配置文件 .bash_logout 用户退出时执行脚本 .bash_profile 和/etc/profile 大致一样,针对用户自身定义的环境变量 .bashrc 定义命令别名,当用户打开新bash或者登陆时执行的文件 export 全局声明 vim /etc/profile.d/path.sh /etc/bashrc /etc/profile.d/path.sh source /etc/profile 自动加载/etc/profile.d/下的所有.sh文件 1.4shell中的特殊符号 *| 通配符 # 注释符 ; 结束符 & 后台运行 \[] 中括号[]:或 例:ls [12].txt ;ls [1-3].txt 1.5cut命令 cut -d: -f 3,4,5 /etc/passwd -d:指定分隔符 -f:取段 cut -c 1-10 /etc/passwd cut -d: -f -c 1.6sort命令 sort filename 按照ascll码表排序 sort -t: -k3 -n /etc/passwd -t:指定分隔符 sort -u filename 排序去重复 sort -n filename 按数字从小到大排序 sort -nr filename 按数字从大到小排序 sort -un filename 去重复且把多个字符串显示一个(去掉-n选项后可全部显示) 1.7wc命令 wc -l filename 查看一个文件的行数 wc -l filename filename 查看多个文件的行数 wc -w filename 统计单词数,以空格为分隔符 wc -m filename 查看文件字符数 wc -l filename 查看文件的行数 1.8uniq和tee命令 uniq 去重复 uniq -c 可计算重复的次数 sort filename | uniq -c 先排序,再去重 | tee filename(空文件) 覆盖重定向,并在屏幕输出,需搭配管道命令使用 1.9tr和split命令 tr 替换字符 ls *.txt | tr 'a-z' 'A-Z' 将小写文件后缀替换为大写 echo 'dfsfsafsdf' |tr 'a-f' 'A-F' 将小写转换为大写a-f A-F(tr后面替换的字符一 一对应) split 切割大文件 split -b 50m filename 按大小分割文件(指定50m分割文件) split -b 100 filename 按大小分割文件(指定100b分割文件,默认单位为b) split -l 10 filename 按行数分割文件(指定10行分割文件) split -b 100 filename word_ 为分割出的文件指定前缀 2.0shell中连接符(并且、和、或者) ls a && ls b (逻辑与,如果前面的命令为真,才会执行后面命令,如为假,则不会执行后面的命令) ls a || ls b (逻辑或,如果前面的命令为真,则不会执行后面的命令;如为假,才会执行后面的命令) 2.1grep过滤-1 grep egrep sed awk grep 过滤除指定行 grep 'root' /etc/passwd grep --color 'root' /etc/passwd 将查找字符以红色标出 grep -c word filename 查询所有行包含指定字符出现的行数 grep -v word filename 查询所有行不包含指定字符出现的行数 grep -n word filename 显示行号 grep -n -A 2 word filename 显示匹配行,并显示匹配行下指定行数(2行) grep -n -B 2 word filename 显示匹配行,并显示匹配行上指定行数(2行) grep -n -C 2 word filename 显示匹配行,并显示匹配行上下指定行数(2行) grep -r word dirname 遍历目录文件查找指定字符 grep -rh word dirname 不显示文件名,匹配文件 2.2grep过滤-2 grep '[aN]' filename 查找包含a或N的行 grep '[0-9]' filename 查找包含数字的行 grep -v '[a-zA-Z]' filename 查找不包含大小写的行 grep '^[a-z]' filename 匹配小写字母开头的行 grep '[^a-z]' filename 匹配不包含字母的行 grep '[^$]' filename 匹配空行 grep -v '[^$]' filename 匹配空行以外的行 grep '[r.o]' filename 匹配r(任一字符 )o的行 grep '[r*o]' filename 匹配r(一个或多个)o的行 待补充(正则) 2.3grep过滤-3 grep -E === egrep 待补充(正则) 2.4sed命令-1 sed 比grep强大,但是不能颜色显示 sed -n '10'p filename 打印第n行,p:print sed -n '1-10'p filename 打印第一到10行 sed -n '/root/'p filename 打印包含'root'的行 sed -n '/r.o/'p filename 匹配r(任一字符 )o的行 sed -n '/r*o/'p filename 匹配r(一个或多个)o的行 2.5 2.6 2.7 2.8 五、linux平台运维管理 1.1查看系统负载命令 w load average:1分钟之内系统的平均负载(1分钟进程数),5分钟(5分钟平均进程数),15分钟内 uptime 获取负载值 1.2vmstat详解 vmstat -1 1s显示一次 vmstat 1 5 1.3top动态查看负载 top 3s一次动态显示出当前主机运行情况,前一行与vmstat一样 pid 进程编号(ls /proc;此目录里目录名对应进程号) user 用户 PR NI 进程优先级 VIRT 虚拟内存 top -bn1 一次性显示出来(静态显示) SHR 共享内存 top -d 1 -c 1s刷新一次,COMMAND显示的更全点 1.4sar命令 sar -n DEV 查看网卡流量 sar -n DEV 1 10 1s显示一次,一次显示10次 yum install -y sysstat 安装sar命令 ls /var/log/sa/ 查看网络流量历史(18天) sar -n DEV -f /var/log/sa/sa22/ 查看具体某天的流量历史文件 sar -q 查看系统历史负载 sar -b 1 10 可以查看当前的磁盘io状态 sar -p 1 10 可以查看cpu的使用情况 1.5free查看内存 free 查看内存状况kb free -m 以M为单位 buffers 数据将要写到磁盘中去的,还在内存占用 cached 从磁盘取出放到内存,这部分空间 free第二行 = buffer + cached 1.6ps查看进程 VSZ 虚拟内存大小 RSS 实际内存大小(内存使用量) TTY 启动地方 STAT S:表示休眠; s:表示主进程; <:优先级高;N:表示次进程低优先级;+:前台运行的进程;R:runing运行中;L:在内存锁定;l:多线程进程;Z:僵尸进程;x已死掉进程;T:暂停进程;D:不能中断的进程 START 启动时间 TIME 占用cpu时间 CANMAND 进程名称 1.7netstat查看端口 netstat -lnp 查看监听端口 netstat -an tcpip,socket都显示出来 netstat -an|grep -ic estab 查看某一时刻服务器的连接数(并发数) 1.8抓包工具tcpdump和tsshark yum install tcpdump tcpdump -nn (待补充) 1.9防火墙selinux cat /etc/selinux/config 查看selinux配置 (待补充) 2.0iptables详解-1 netfilter----iptables iptables -nvL 查看有那些规则 iptables -F 清除规则 表 列 规则 iptables -t filter -nvL 指定表名,filter表下的规则(filter[较常用],nat,mangle。三个表) filter INPUT OUTPUT 列 iptables -t filter -I INPUT -p tcp --dport 80 -s 192.168.1.177 -j REJECT 插入规则不允许192.168.1.177访问 (-I:在表上面增加) iptables -t filter -nvL 在不指定标明的时候默认是filter表 iptables -t filter -D INPUT -p tcp --dport 80 -s 192.168.1.177 -j REJECT 删除规则 iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.1.177 -j REJECT 添加规则(-A:在表下面增加) 相同规则的时候表上面的规则先生效 2.1iptables详解-2 iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.1.177 -j DROP 不接收包 iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.1.177 -j ACCEPT iptables -z 清空规则计数器 iptables -F 清空规则(只针对filter表) iptables -t nat -nvL 查看nat下的所有表 iptables -t filter -A INPUT -p tcp --dport 80(端口号可省略) -s 192.168.1.177 -j REJECT service iptables restart; 重启iptables服务(重启后新添加的iptables会失效) service iptables save; 保存新添加的iptables cat /etc/sysconfig/iptables; iptables配置保存路径 iptables-save > 1.ipt 防火墙规则备份 iptables -F service iptables save; 清空规则并保存 2.2iptables详解-3 我们现在用的比较多个功能有3个: 1.filter 定义允许或者不允许的 2.nat 定义地址转换的 3.mangle功能:修改报文原数据 这五个位置也被称为五个钩子函数(hook functions),也叫五个规则链。 1.PREROUTING (路由前) 2.INPUT (数据包流入口) 3.FORWARD (转发管卡) 4.OUTPUT(数据包出口) 5.POSTROUTING(路由后) 这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。 对于filter来讲一般只能做在3个链上:INPUT ,FORWARD ,OUTPUT 对于nat来讲一般也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING 而mangle则是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 注意:规则的次序非常关键,谁的 规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的。 input 进来 output 出去 FORWARD (转发。iptables中有几个表,分别针对不同的目的,有本地输入、本地产生的输出、转发等。。。FORWARD这个表,用于控制转发行为,也就是说根据定义的规则,决定对从外边来到 另一个地方去的包是丢弃、PASS还是怎么处理。) filter 指定来源ip拒绝 iptables -t filter -nvL 查看所有规则 nat 网络地址转换 iptables -t nat -nvL PREROUTING 改变的是数据包过来的的时候目标ip地址 POSTROUTING 在数据包出去之前改变原ip(私网ip) mangle 给数据包打标记 iptables -t mangle -nvL 2.3iptables详解-4 filter 表 INPUT OUTPUT iptables -A INPUT 增加input iptables -D INPUT 删除input iptables -P -P的作用是定义链的默认规则 四:详解COMMAND: 1.链管理命令(这都是立即生效的) -P :设置默认策略的(设定默认门是关着的还是开着的) 默认策略一般只有两种 iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的 比如: iptables -P INPUT DROP 这就把默认规则给拒绝了。并且没有定义哪个动作,所以关于外界连接的所有规则包括Xshell连接之类的,远程连接都被拒绝了。 -F: FLASH,清空规则链的(注意每个链的管理权限) iptables -t nat -F PREROUTING iptables -t nat -F 清空nat表的所有链 -N:NEW 支持用户新建一个链 iptables -N inbound_tcp_web 表示附在tcp表上用于检查web的。 -X: 用于删除用户自定义的空链 使用方法跟-N相同,但是在删除之前必须要将里面的链给清空昂了 -E:用来Rename chain主要是用来给用户自定义的链重命名 -E oldname newname -Z:清空链,及链中默认规则的计数器的(有两个计数器,被匹配到多少个数据包,多少个字节) iptables -Z :清空 2.规则管理命令 -A:追加,在当前链的最后新增一个规则 -I num : 插入,把当前规则插入为第几条。 -I 3 :插入为第三条 -R num:Replays替换/修改第几条规则 格式:iptables -R 3 ………… -D num:删除,明确指定删除第几条规则 3.查看管理命令 “-L” 附加子命令 -n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名。 -v:显示详细信息 -vv -vvv :越多越详细 -x:在计数器上显示精确值,不做单位换算 --line-numbers : 显示规则的行号 -t nat:显示所有的关卡的信息 五:详解匹配标准 1.通用匹配:源地址目标地址的匹配 -s:指定作为源地址匹配,这里不能指定主机名称,必须是IP IP | IP/MASK | 0.0.0.0/0.0.0.0 而且地址可以取反,加一个“!”表示除了哪个IP之外 -d:表示匹配目标地址 -p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP) -i eth0:从这块网卡流入的数据 流入一般用在INPUT和PREROUTING上 -o eth0:从这块网卡流出的数据 流出一般在OUTPUT和POSTROUTING上 2.扩展匹配 2.1隐含扩展:对协议的扩展 -p tcp :TCP协议的扩展。一般有三种扩展 --dport XX-XX:指定目标端口,不能指定多个非连续端口,只能指定单个端口,比如 --dport 21 或者 --dport 21-23 (此时表示21,22,23) --sport:指定源端口 --tcp-fiags:TCP的标志位(SYN,ACK,FIN,PSH,RST,URG) 对于它,一般要跟两个参数: 1.检查的标志位 2.必须为1的标志位 --tcpflags syn,ack,fin,rst syn = --syn 表示检查这4个位,这4个位中syn必须为1,其他的必须为0。所以这个意思就是用于检测三次握手的第一次包的。对于这种专门匹配第一包的SYN为1的包,还有一种简写方式,叫做--syn -p udp:UDP协议的扩展 --dport --sport -p icmp:icmp数据报文的扩展 --icmp-type: echo-request(请求回显),一般用8 来表示 所以 --icmp-type 8 匹配请求回显数据包 echo-reply (响应的数据包)一般用0来表示 2.2显式扩展(-m) 扩展各种模块 -m multiport:表示启用多端口扩展 之后我们就可以启用比如 --dports 21,23,80 六:详解-j ACTION 常用的ACTION: DROP:悄悄丢弃 一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表 REJECT:明示拒绝 ACCEPT:接受 custom_chain:转向一个自定义的链 DNAT SNAT MASQUERADE:源地址伪装 REDIRECT:重定向:主要用于实现端口重定向 MARK:打防火墙标记的 RETURN:返回 在自定义链执行完毕后使用返回,来返回原规则链。 (policy ACCEPT 804K packets,402M bytes) 接受的包数据量 ACCEPT (接受) DROP (落下,丢下) REJECT (拒绝,驳回) iptables -P INPUT DROP (危险:请注意这条语句的参数,是-P ,-P的作用是定义链的默认规则,也就是通过所有规则后还没有匹配到的数据包,将按照默认规则来执行。 -P DROP后,只有满足定义了ACCEPT规则的包才能通行,其他的包都按照默认的DROP干掉了。) http://blog.chinaunix/uid-26495963-id-3279216.html 2.4cron计划任务 2.5系统服务 yum install -y ntsysv 安装系统管理服务软件 ntsysv 打开管理界面,设置完后需重启系统才能生效 chkconfig --list 查看所有系统服务 chkconfig -- 0-6 0:关机;1:单用户模式;23;4:6重启 chkconfig 服务名 off 关闭服务,控制级别2、3、、4、5 chkconfig 服务名 on 开启服务,控制级别2、3、、4、5 chkconfig --level 34 服务名 on 将某服务的34级别开启 chkconfig --add 添加系统服务 chkconfig --del 删除系统服务 /etc/init.d 系统服务所在目录 2.6linux日志 /var/log/messages /etc/logrotate.conf 日志切割文件 kill pid 杀死进程 kill -9 强制杀死进程 dmesg 查看某个硬件出现问题 2.7xargs和exec详解 find /var/log/ -type f -mtime +10 查看10天以前的日志 find /var/log/ -type f -mtime +10 -exec cp {} {}.bak \; 重命名一些文件以.bak后缀(-exec是find的一个选项) find /var/log/ -type f -mtime +10 | xargs -i cp {} {}.1 重命名一些文件以.1后缀(使用管道达到效果) 2.8screen命令 nohup yum install -y screen screen 新窗口执行命令,ctrl+a+d(展示退出)(虚拟终端) screen -ls 查看screen screen -r screenid 进入screen某一进程 2.1curl命令 curl -I 网站地址 不看源代码,查看状态 curl -x 代理 curl -IV 网址 显示详细信息 curl -O 文件网址 下载文件 (文件名为下载的名称) curl -o 文件名 文件网址 下载文件需重命名 3.0rsync格式 rsync 拷贝数据(可增量拷贝) rsync -av ip地址:/tmp/1.txt /tmp/ 将远程文件拉到本地 rsync -av /tmp/1.txt ip:/tmp/ 将本地文件推到远程 (待补充) 3.1rsync常用选项 rsync -a 3.2rsync选项详解 六、LAMP架构搭建与优化 1.1Mysql安装 cat /usr/local/mysql/bin/mysqlbug|grep configuore mysql查看编译参数 1、安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list mysql* 安装mysql客户端: yum install mysql 安装mysql 服务器端: yum install mysql-server mysql-devel 2、启动&&停止 数据库字符集设置 mysql配置文件/etc/myf中加入default-character-set=utf8 启动mysql服务: service mysqld start或者/etc/init.d/mysqld start 开机启动: chkconfig -add mysqld,查看开机启动设置是否成功chkconfig --list | grep mysql* mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 停止: service mysqld stop 3、登录 创建root管理员: mysqladmin -u root password 123456 如果root已经设置过密码,采用如下方法 ./mysqladmin -u root password oldpass ‘123456’ 登录: mysql -u root -p输入密码即可。 忘记密码: service mysqld stop mysqld_safe --user=root --skip-grant-tables mysql -u root use mysql update user set password=password("new_pass") where user="root"; flush privileges; 4、远程访问 开放防火墙的端口号 mysql增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”。 5、Linux MySQL的几个重要目录 数据库目录 /var/lib/mysql/ 配置文件 /usr/share /mysql(mysql.server命令及配置文件) 相关命令 /usr/bin(mysqladmin mysqldump等命令) 启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录) 编译安装二进制包安装mysql 修改mysql的root用户密码,root初始密码为空的:执行命令:./bin/mysqladmin -u root password '密码' 1.2Apache编译安装 cat /usr/local/apache2/build/config.nice 查看apache编译参数 apachectl -v 查看apache版本 apachectl -l 查看apache运行模式 q tar jxf httpd-2.2.31.tar.bz2 ./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre (apache配置选项) make make install 配置参数详解: --with-included-apr (httpd软件依赖的包,能够跨平台运作linux win unix mac) --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared (动态共享的模式安装) --with-pcre (正则相关的库) /usr/local/apache2/bin/apachectl start 启动apache /usr/local/apache2/modules/ apache动态模块加载路径 /usr/local/apache2/bin/apachectl -M 查看apache加载模块(动态和静态模块) /usr/local/apache2/bin/apachectl -l 查看apache加载模块(静态) /usr/local/apache2/bin/apachectl -t 查看apache配置文件有无错误 /usr/local/apache2/bin/apachectl graceful 重新加载配置文件 然后为Apache添加服务脚本: # cp /usr/local/apache/bin/apachectl /etc/init.d/httpd 如果想把apache服务加入到开机自启,可以修改服务启动脚本: # vim /etc/init.d/httpd 在第二行下添加:# chkconfig:235 85 15 # description: This is apache server! 编辑配置文件: # vim /etc/httpd/httpd.conf 添加 ServerName localhost 安装Apache2.4.7版本。 下载地址为:http://mirrors.sohu/apache/ tar zxvf httpd-2.4.7.tar.gz #解压文件
cd httpd-2.4.7 #进入目录
./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared #编译参数 错误 configure: error:Bundled APR requested but not found at./srclib/.
tar zxvf apr-1.4.6.tar.gz #解压apr包 tar -zxvf apr-util-1.4.1.tar.gz #解压apr-util包 cp -r /lamp/apr-1.4.6 /lamp/httpd-2.4.7/srclib/apr cp -r /lamp/apr-util-1.4.1 /lamp/httpd-2.4.7/srclib/apr-util # 然后把两个包复制到httpd-2.4.7/srclib/ 里面并且取消版本号。
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre/ tar zxvf pcre-8.34.tar.gz [root@localhost lamp]# cd pcre-8.34 [root@localhost pcre-8.34]# ./configure && make && make install
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6 --with-mcrypt=/usr/local/libmcrypt/ #编译参数 错误configure: error: xml2-config not found. Please check your libxml2 installation.yum install -y libxml2-devel错误configure: error: Please reinstall the BZip2 distribution
yum install -y bzip2 bzip2-devel 错误 configure: error: jpeglib.h not found.
yum install libjpeg-devel -y 错误 configure: error: png.h not found. yum install libpng-devel -y 错误 configure: error: freetype-config not found. yum install -y freetype freetype-devel
错误 configure: error: mcrypt.h not found. Please reinstall libmcrypt.
tar zxvf mcrypt-2.6.8.tar.gz #提示mcrypt包没有安装。安装mcrypt包 又依赖依赖 libmcrypt, mhash 这两个包。 1.首先编译安装 libmcrypt, mhash, mcrypt 二进制源码包。
下载libmcrypt-2.5.8.tar.gz tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure --prefix=/usr/local/related/libmcrypt make make install 安装 libltdl,也在libmcrypt源码包里面 cd libmcrypt-2.5.8 /libltdl
./configure --enable-ltdl-install make make install 下载mhash-0.9.9.9.tar.gz tar zxvf mhash-0.9.9.9 cd mhash-0.9.9.9 ./configrue --prefix make make install
这两个包安装完。然后在安装mcrypt包。 安装mcrypt tar zxvf mcrypt-2.6.8.tar.gz LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt #编译参数
make make install #mcrypt 没有安装完成。这是php模块。需要等php安装完成之后。在继续安装。 把以上的依赖关系解决完了之后在继续安装PHP ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6 --with-mcrypt=/usr/local/libmcrypt/ make make install
#/usr/local/nginx/sbin/nginx -V
2、apache编译参数:
# cat /usr/local/apache/build/config.nice
3、php编译参数:
# /usr/local/php/bin/php -i |grep configure
4、mysql编译参数: # cat /usr/local/mysql/bin/mysqlbug|grep configure 1.6安装Discuz 下载discuz-utf-8版本 编辑 vim /usr/local/apache2/conf/httpd.conf 编辑 vim/usr/local/apache2/conf/extra/httpd-vhosts.conf ServerAdmin 管理员邮件 DocumentRoot 指定web目录 ServerName 服务器名称 ServerAlias 服务器别名 vim /etc/hosts 将 Deny from all改为Allow from all ps aux |grep httpd 查看哪个用户运行apache 更改discuz程序目录所有者和所属组 vim /etc/profile.d/path.sh source 重新加载配置文件 create databases discuz 创建数据库 grant all on discuz.* to 'ken'@'localhost' identified by 'ken'; 赋予用户权限 1.登录mysql #mysql -u root -p 2.新增用户 insert into mysql.user(Host,User,Password) values("localhost","xxx",password("***"));\ 注释:xxx为新建用户名,***为用户密码 3.执行该句后,还需要刷新权限表 flush privileges; 4.赋予用户权限 grant all on ttt.* to xxx@localhost identified by "***"; 注意:ttt为数据库名,当然你也可以填* 为所有数据库 5.赋予权限,还需要再刷新权限表 flush privileges; 6.通过sql语句查询出新增结果 select user,host,password from mysql.user; 7.mysql 查看所有用户 select * from mysql.user select * from mysql.user \G; 当表的列太多现实不正常时,\G横项显示 1.7apache用户认证
用vim打开/usr/local/apache2/conf/extra/httpd-vhosts.conf文件 <Directory /data/www/abc/> AllowoVerride Authconfig Authname "ni hao xian sheng" AuthType Basic AuthUserfile /data/.htpasswd Require valid-user </Directory> 然后从新加载一下apache就可以le 1.## 这里设置的目录为真实目录,并非虚拟目录 2. AllowOverride AuthConfig 为允许认证 3. AuthType 认证类型 Basic 由 mod_auth 提供 4. AuthName 这里定义的内容将在 web 弹出的登陆框中显示 5. AuthUserFile 定义认证文件路径 ,不要放在可能被下载到的地方 6. Require user 定义允许访问的用户 配置完这一步接下来建立验证文件 Htpsswd -c /data/.htpasswd ken(如果要在添加一个用户的话不加c选项) New password: Re-type new password: |
转载于:https://wwwblogs/zhaofuyun/p/5122332.html
版权声明:本文标题:阿铭linux笔记 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726494711a1072930.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论