设置iptables之后不能正常访问ftp解决方法

设置了iptables的禁止所有的端口,只容许可能访问了策略后大部分情况下会出现ftp不能正常访问的问题,因为ftp有主动和被动连接两种模式,少添加一些策略就会出问题。
在这里我就相信的说明下解决方法:
首先加载:
#modprobe ip_conntrack_ftp

#modprobe ip_nat_ftp
然后加载策略
#iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
#iptables -I INPUT -p tcp –dport 21 -j ACCEPT
#iptables -I OUTPUT -p tcp –dport 21 -j ACCEPT

如果不想每次都加载模块的话请在 /etc/sysconfig/iptables-config
添加

FAQ
保存之后皆可。
来源:http://mcshell.blog.51cto.com/803455/396125

Linux命令行操作

Shell简介

shell 是用户和Linux 操作系统之间的接口。Linux 中有多种shell,其中缺省使用的是bash。

Linux 系统的shell 作为操作系统的外壳为用户提供使用操作系统的接口,它是一个命令语言解释器拥有自己内建的shell 命令集。shell 也能被系统中其他应用程序所调用,用户在提示符下输入的命令都由shell 先解释然后传给Linux 核心。

Linux 中的shell 有多种类型其中最常用的几种是Bourne shell (sh), C shell(csh 和Korn shell ksh), 三种shell 各有优缺。

Bourne shell 是UNIX 最初使用的shell,并且在每种UNIX 上都可以使用。Bourne shell 在shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。 Linux 操作系统缺省的shell 是Bourne Again shell。它是Bourne shell 的扩展,简称bash 。与Bourne shell 完全向后兼容,并且在Bourne shell 的基础上增加增强了很多特性,它还包含了很多C shell 和Kornshell 中的优点,有灵活和强大的编程接口同时又有很友好的用户界面。

C shell 是一种比Bourne shell 更适于编程的shell, 它的语法与C 语言很相似。Linux 为喜欢使用C shell 的人提供了Tcsh。 Tcsh 是C shell 的一个扩展版本。Tcsh 包括命令行编辑可编程单词补全、拼写校正历史命令替换、作业控制和类似C语言的语法。它不仅和Bash shell 是提示符兼容而且还提供比Bashshell 更多的提示符参数。

Korn shell 集合了C shell 和Bourne shell 的优点并且和Bourne shell 完全兼容Linux 系统提供了pdksh (ksh 的扩展),它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序,

Redhat Linux 系统默认的shell 是bash, 对普通用户用$作提示符,对超级用户root 用#作提示符,一旦出现了shell 提示符就可以键入命令名称及命令所需要的参数。

我们来实习一下 shell 是如何工作的,在shell 提示符下输入以下命令:

$ ls –al
该命令可以列出当前目录下的所有文件和子目录。

用户在登录到 Linux 时,由/etc/passwd 文件来决定要使用哪个shell。 例如,

该文件中含有类似如下一行:

myself:x:500:500:Linux User:/home/myself:/bin/bash

用户使用的 shell 被列每行的末尾(/bin/bash)。

由于 bash 是Redhat Linux 上缺省的shell,本文将主要介绍bash 及其相关知识。

Shell 控制台使用方法

首先介绍一个名词 “控制台(console) ”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos 。我们说控制台命令就是指通过字符界面输入的可以操作系统的命令。例如dos 命令就是控制台命令。我们现在要了解的
是基于Linux 操作系统的基本控制台命令。

Linux 是一个真正的多用户操作系统,这表示它可以同时接受多个用户登录。Linux 还允许一个用户进行多次登录,这是因为Linux和许多版本的UNIX 一样提供了“虚拟控制台”的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。

虚拟控制台的选择可以通过按下 Alt 键和一个功能键来实现,通常使用F1-F6。例如用户登录后按一下Alt-F2 键,用户又可以看到”login:”提示符,说明用户看到了第二个虚拟控制台;然后只需按Alt-F1 键就可以回到第一个虚拟控制台。一个新安装的Linux 系统允许用户使用Alt-F1 到Alt-F6 键来访问前六个虚拟控制台。

Linux常用命令使用

登录和退出Linux 系统

用户登录系统时 ,为了使系统能够识别自己必须输入用户名和密码经系统验证无误后方能进入系统。

说明:
在系统安装过程中可以创建两种帐号: 超级用户帐号和普通用户帐号,Linux使用者一般为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作.如果只需要完成一些由普通用户帐号就能完成的任务,建议不要使用超级用户帐号以免无意中破坏系统。

用户登录分两步进行 ,第一步输入用户的登录名,系统根据该登录名来识别用户;第二步输入用户的口令该口令是用户自己选择的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。

1. 启动和登录系统
超级用户的用户名为 root, 密码在安装系统时已设定,系统启动成功后屏幕显示下面的提示:

localhost login:

这时输入超级用户名”root”, 然后键入回车键此时用户会在屏幕上看到输入口令的提示:

localhost login:root
Password:

这时需要输入口令, 输入口令时,口令不会在屏幕上显示出来,如果用户输入了错误的口令,就会在屏幕上看到下列信息。

login incorrect.

这时需要重新输入 。当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:

[root@loclhost/root] #

此时说明用户已经登录到系统中,可以进行操作了。这里”#”是超级用户的系统提示符。普通用户在建立了普通用户帐号以后就可以进行登录了。

不论是超级用户还是普通用户需要退出系统时, 在shell 提示符下键入exit 命令即可。还有其他退出系统的方法但上面一种是最安全的。

2. 重新启动系统

以 root 用户登录Linux 操作系统后执行reboot 命令可以重新启动linux 系统:
[root@loclhost/root] # reboot

3. 关闭系统

shutdown 命令可以安全地关闭或重启Linux 系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间。也可以是从现在开始的一个时间段。精确时间的格式是“hh:mm”, 表示小时和分钟,时间段由“+” 和分钟数表示、系统执行该命令后会自动进行数据同步的工作、该命令的一般格式:

shutdown [选项] [时间] [警告信息]

命令中各选项的含义为:

– k 并不真正关机而只是发出警告信息给所有用户

– r 关机后立即重新启动

– h 关机后不重新启动

– f 快速关机重启动时跳过fsck

– n 快速关机不经过init 程序

– c 取消一个已经运行的shutdown

需要特别说明的是该命令只能由超级用户使用

例 1 系统在十分钟后关机并且马上重新启动

  1. # shutdown –r +10

例 2 系统马上关机并且不重新启动

  1. # shutdown –h now

文件和目录操作命令

1. ls 命令

这个命令就相当于 dos 下的dir 命令一样,也是Linux 控制台命令中最为重要几个命令之一.ls 最常用的参数有三个:-a、 -l 、和–F。

  1. ls -a

Linux 系统上的文件以.开头的文件被系统视为隐藏文件,仅用ls 命令是看不到他们的。而用ls –a ,除了显示一般文件名外,连隐藏文件也会显示出来。

  1. ls –l (这个参数是字母 L 的小写不是数字1)

这个命令可以使用长格式显示文件内容。 如果需要察看更详细的文件资料就要用到ls -l 这个指令。

  1. ls –F

在列出的文件 (目录)名称后加一符号,例如可执行文件加”*”, 目录则加 “/”。

2. cd 命令

cd 这个命令是用来进出目录的,它的使用方法和在dos 下没什么两样,但和dos 不同的是Linux 的目录对大小写是敏感的,如果大小写拼写有误,你的cd操作是成功不了的。另外,cd 如果直接输入,cd 后面不加任何东西会回到使用者自己的Home 目录。假设如果是root 那就是回到/root, 这个功能同cd~是一样的。

3. mkdir rmdir

mkdir 命令用来建立新的目录,如输入如下命令:

  1. mkdir work

将在当前目录下新建一个 work 目录。

rmdir 用来删除已建立的目录,如输入如下命令:

  1. rmdir work

将删除已存在的空目录work

4. cp

cp 这个命令相当于dos 下面的copy 命令。具体用法是:

cp -r 源文件(source) 目的文件(target)

参数 r 是指连同源文件中的子目录一同拷贝。

5. rm

rm 这个命令是用来删除文件的,rm命令常用的参数有三个-i,-r,-f。

比如我现在要删除一个名字为 text 的一个文件,输入如下命令:

  1. rm –i test

系统会询问我们是否要删除test 文件,敲了“y/n” 确认是否要删除test 文件:

rm –r 目录名:这个操作可以连同这个目录下面的子目录都删除,功能比上面讲到的rmdir 更强大,不仅可能删除指定的目录,而且可以删除该目录下所有文件和子目录。

rm –f 文件名这个操作可以不经确认强制删除文件。
6. mv

mv 这个命令的功能是移动目录或文件,引申的功能是给目录或文件重命名,

比如:

  1. mv /tmp/xxx.tar /root

该命令将/tmp 目录下的xxx.tar 文件移动到/root 目录下。

而:

  1. mv aaa.tar bbb.tar

则是将当前目录下的文件 aaa.tar 更名为bbb.tar。

7. cat
cat 这个命令是linux 中非常重要的一个命令,它的功能是显示或连结一般的ascii 文本文件、它的用法如下:

  1. cat text

该命令显示text 这个文件的内容。

  1. cat file1 file2

该命令依顺序显示file1,file2 的内容。

  1. cat file1 file2>file3

该命令把file1,file2 的内容结合起来再重定向>到file3 文件中。

8. more

more 是显示一般文本文件的指令。如果一个文本文件太长了超过一个屏幕的画面,用cat 来看实在是不理想,就可以试试more ,用法如下:

  1. more file1

9. pwd

pwd 这个命令的作用是显示用户当前的工作路径,直接输入pwd 即可。

用户及用户组管理命令

1. useradd

useradd 命令可以创建一个新的用户帐号,其最基本用法为:

useradd 用户名

如输入以下命令:

  1. useradd newuser

系统将创建一个新用户 newuser,该用户的Home 目录为/home/newuser。

useradd 命令的参数较多,常用的组合为:

useradd 用户名 -g 组名–G 组名-d Home 目录名-p 密码

其中:-g 指定该用户的首要组

-G 指定该用户的次要组

-d 指定该用户的Home 目录

-p 指定该用户的密码

如输入以下命令:

  1. useradd oracle –g oinstall –G dba –d /home/oracle –p ora123

系统将创建一个用户 oracle oracle 用户的首要组为oinstall ,次要组为dba,Home 目录为/home/oracle ,密码为ora123。

2. userdel

userdel 命令用于删除一个已存在的帐号,其用法为:

userdel 用户名

3. groupadd

groupadd 命令可以创建一个新的用户组,其最基本用法为:

groupadd 组名

如输入以下命令:

  1. groupadd newgroup

系统将创建一个新的用户组 newgroup。

4. groupdel

groupdel 命令用于删除一个已存在的用户组,其用法为:

  1. groupdel 组名

5. passwd

出于系统安全考虑, Linux 系统中的每一个用户除了有其用户名外还有其对应的用户口令,用户可以随时用passwd 命令改变自己的口令。该命令的一般格式为:

passwd

输入该命令后, 按系统提示依次输入密码和密码确认后,即可完成用户密码的修改。

此外, 超级用户还可以修改其他用户的口令,命令如下:

  1. passwd 用户名

6. su

su 命令这个命令非常重要,它可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令。如要离开当前用户的身份,可以键入exit 命令,su 命令的一般形式为:

su – 用户名

7. chmod

chmod 命令是非常重要的,用于改变文件或目录的访问权限。该命令有两种用法:一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定法。

由于数字设定法不太直观 ,本文不做介绍。文字设定法的用法如下:

  1. chmod [who] [+ | – | =] [mode] 文件名

命令中各选项的含义为:

1 、操作对象who 可以是下述字母中的任一个或者它们的组合:

u 表示用户(user) ,即文件或目录的所有者

g 表示同组(group)用户,即与文件属主有相同组ID 的所有用户

o 表示其他(others)用户

a 表示所有(all)用户,它是系统默认值。

2 、操作符号可以是:

+ 添加某个权限

– 取消某个权限

= 赋予给定权限,并取消其他所有权限

3 mode 表示权限常用的参数有

r 可读

w 可写

x 可执行

举例:

1 、将文件 script 的权限设为可执行。命令如下:

chmod =rx text

执行成功后 ,用ls -l script 命令查看文件属性的结果如下:

-r-xr-xr-x 1 user group 0 Feb 10 09:42 script

2 、将文件 text 的权限设为:文件属主可读、可写、可执行,与文件属主同组的用户可读,其他用户不可读。命令如下:

chmod u=rwx,g=r,o= text (注意,后无空格o=后有空格)

执行成功后 ,用ls –l text 命令查看文件属性的结果如下:

-rwxr—– 1 user group 0 Feb 10 09:42 text

8. chown

chown 用于更改某个文件或目录的属主和属组,这个命令也很常用。例如root 用户把自己的一个文件拷贝给用户oracle ,为了让用户oracle 能够存取这个文件,root 用户应该把这个文件的属主设为oracle ,否则用户oracle无法存取这个文件。chown 的基本用法为:

chown [用户:组] 文件

举例:

  1. chown oracle:dba text

该命令将 text 文件的属主和属组分别改为oracle 和dba。

进程及任务管理命令

Linux 系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程都可以称之为进程。Linux 用分时管理方法使所有的任务共同分享系统资源。以下将介绍一些常用的查看和控制进程的命令。

1. ps

ps 命令是最基本同时也是非常强大的进程查看命令。使用该命令可以查看有哪些进程正在运行以及运行的状态,进程是否结束,进程有没有僵死,哪些进程占用了过多的资源等等。

该命令的基本用法如下

ps [选项]

其中常用的选项有:

-e 显示所有进程

-f 全格式

-l 长格式

举例:

1、在控制台输入 ps 命令,得到类似如下的输出:

PID TTY TIME CMD

12039 pts/0 00:00:00 bash

18710 pts/0 00:00:00 ps

该命令显示当前登录用户的执行进程。 显示的项目共分为四项,依次为PID(进程ID)、 TTY(终端名称) 、TIME(进程执行时间)、 CMD(该进程的命令行输入)。

2、 在控制台输入以下命令:

  1. ps –ef

UID PID PPID C STIME TTY TIME CMD

root 1 0 0 Jan14 ? 00:00:05 init

root 2 1 0 Jan14 ? 00:00:00 [keventd]

root 3 1 0 Jan14 ? 00:00:00 [kapmd]

…………………..

该命令将显示所有执行进程的信息。 显示的项目依次为UID (执行进程的用户ID) PID(进程ID)、 PPID(父进程ID) 、TTY(终端名称) 、STIME(进程启动时间) 、TIME(进程执行时间) 、CMD(该进程的命令行输入)。

该命令的输出较多 ,可以使用grep 命令进行过虑,以方便查看,如:

  1. ps –ef|grep oracle

将只显示出包含 oracle 的输出行,可以查询执行进程的用户为oracle 的所有进程。

2、top

top 命令和ps 命令的基本作用是相同的,显示系统当前的进程和其他状况。但是top 是一个动态显示过程,即可以通过用户按交互来不断刷新当前状态。top 的命令参数并不重要,简单的输入top 命令即可查看系统运行状态。

top 命令执行过程中可以使用交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,常用的命令有:

立即刷新显示

h 或者? 显示帮助画面给出一些简短的命令总结说明

m 切换显示内存信息

t 切换显示进程和CPU状态信息

c 切换显示命令名称和完整命令行

M 根据驻留内存大小进行排序

P 根据CPU使用百分比大小进行排序

q 退出

3、 kill

kill 命令可以用于终止后台进程。kill 命令是通过向进程发送指定的信号来结束进程的。kill 命令的语法格式很简单,大致有以下两种方式:

(1) kill [-s 信号] 进程号

其中 ,发出的信号既可以是信号名也可以对应数字。

如 :kill -9 1234 命令,将终止PID(进程号)为1234 的进程。

(2)、 kill -l

该命令显示信号列表

4. cron

cron 命令用来实现定时任务的完成,如每日执行一次的任务(进程)。cron 命令是不应该手工启动的。一般情况下,cron 命令在系统启动时就由一个shell 脚本自动启动。启动后 ,cron 命令会搜索/var/spool/cron 目录,寻找以/etc/passwd 文件中的用户名命名的crontab 文件,被找到的这种文件将载入内存。例如一个用户名为user 的用户它所对应的crontab 文件就应该是/var/spool/cron/user 。也就是说,以该用户命名的crontab 文件存放在/var/spool/cron 目录下面。cron 命令还将搜索/etc/crontab 文件,这个文件是用不同的格式写成的cron 启动以后它将首先检查是否有用户设置了crontab,文件如果没有就转入休眠状态释放系统资源它每分钟醒过来一次查看当前是否有需要运行的命令。

可以使用crontab –l 命令查看目前已经存在的cron 任务。

磁盘及文件系统管理命令

管理文件系统其实是相当复杂的工作, 本文将只介绍日常维护需要的一些管理命令,主要内容有:挂装和卸载硬盘分区等。

1. df

df 命令可以显示目前磁盘剩余的磁盘空间,常用的参数为-k ,如:

  1. df –k

该语句将显示各分区的磁盘空间使用情况。

2. mount 和umount

mount 命令有很多参数,其中大多数都不会在日常工作中用到。mount 命令最常见的用法如下所示:

mount [选项] 设备目录

其中 最常用的选项是

– a 把/etc/fstab 文件中列出的文件系统都挂装上。

挂装软驱和光驱的命令比较简单, 直接输入以下命令即可:

  1. mount /mnt/cdrom
  2.  
  3. mount /mnt/floppy

umount 命令用于卸载一个文件系统,命令的格式如下:

umount [ -f ] directory

其中, directory 是准备卸载的目录名。

umount 命令有一个不足之处:如果文件系统正在使用中(也就是说有人在那个分区上打开了文件),就无法把这个文件系统卸载下来这时可以使用和- f参数强制执行卸载操作,当然这种操作可能会造成用户数据的丢失,如:

  1. umount -f /mnt/cdrom

该命令将强制卸载挂装在/mnt/cdrom 目录下的文件系统。

软件安装命令

1. tar

tar 命令用于把多个文件合并于一个档案文件中,并提供分解的合并后的档案文件的功能.它独立于压缩工具,因此可以选择在合并前是否压缩.tar 命令的基本用法为:

tar [选项] 文件名

常用的选项包括

-c 创建一个新的档案文件

-t 查看档案文件的内容

-x 分解档案文件的内容

-f 指定档案文件的名称

-v 显示过程信息

-z 采用压缩方式

举例:

  1. (1)、 tar -czf oracle.tar.gz /u01/app/oracle /etc/oratab /home/oracle

该 命 令 将/u01/app/oracle 目录下的所有文件、/etc/oratab 文件和/home/oracle 目录下的所有文件合并到oracle.tar 文件中,并采用压缩方式。

  1. (2)、 tar -tzf oracle.tar.gz

该命令列出归档文件 oracle.tar 中的所有文件列表。

  1. (3)、 tar –xzvf oracle.tar.gz

该命令将归档文件分解并解压缩到原有文件的路径中。

2. rpm

rpm 命令的功能有很多,在这里我们只介绍如何利用rpm 安装和查询已安装的软件。

1 安装

rpm 安装软件包的基本语法如下:

rpm -i rpm 包名

例如:

  1. rpm -i tomcat4.rpm

该命令将安装 Tomcat 软件并进行相关系统配置。

2 升级

rpm 升级软件包的基本语法如下:

rpm -U rpm 包名

例如:

  1. rpm –U tomcat4.rpm

该命令将升级 Tomcat 软件并进行相关系统配置。

3 、查看已安装的软件

有的时候, 了解系统中都已经安装了哪些软件包以及它们的用途是很有用的, R P M 的查询参数就可以做到这一点。

要想列出已经安装的全部软件包 ,可以通过以下命令:

  1. rpm -qa

可以使用 grep 命令指定软件包的名称(或者部分名称)如下所示:

  1. rpm -qa | grep ‘tomcat’

该命令将列出包名中包含 tomcat 的软件包。

此外: 要想找出某个特定的文件到底是属于哪个软件包的,可以输入:

  1. rpm -qf filename

其中 filename 是准备要查找其归属的文件名称。

要想查出某个已经安装的软件包的功能 ,可以用如下命令:

  1. rpm -qi packagename

其中, packagename 是要查找其用途的软件包名称。

4 、删除已安装的软件

使用 RPM删除软件包就像安装它们一样简单。大多数情况下,用户只需要输入命令:

  1. rpm -e packagename

其中 ,ackagename 是要查删除的软件包名称。

FTP出现500 OOPS: cannot change directory

cannot change directory:/home/***
ftp服务器连接失败,错误提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
解决方法:
在终端输入命令:

  1. setsebool -P ftpd_disable_trans 1
  2. service vsftpd restart

就OK了!
原因:这是因为服务器开启了selinux,这限制了FTP的登录。

Linux安装PHP加速器Xcache

XCache 是一个又快又稳定的 PHP opcoolcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 并支持线程安全/Windows. 与同类 opcoolcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本.下面介绍如何安装配置。
1、安装xcache

  1. wget http://xcache.lighttpd.net/pub/Releases/1.3.2/xcache-1.3.2.tar.gz
  2. tar -zxvf xcache-1.3.2.tar.gz
  3. cd xcache-1.3.2
  4. phpize
  5. ./configure –enable-xcache
  6. make
  7. make install

2、配置xcache
打开php.ini文件,增加如下代码:

  1. [xcache-common]
  2. ; change me – 64 bit php => /usr/lib64/php/modules/xcache.so
  3. ; 32 bit php => /usr/lib/php/modules/xcache.so
  4. zend_extension = /usr/lib64/php/modules/xcache.so
  5.  
  6. [xcache.admin]
  7. xcache.admin.auth = On
  8. xcache.admin.user = "mOo"
  9. ; xcache.admin.pass = md5($your_password)
  10. xcache.admin.pass = ""
  11.  
  12. [xcache]
  13. xcache.shm_scheme =        "mmap"
  14. xcache.size  =               32M
  15. xcache.count =                 1
  16. xcache.slots =                8K
  17. xcache.ttl   =              3600
  18. xcache.gc_interval =         300
  19.  
  20. ; Same as aboves but for variable cache
  21. ; If you don’t know for sure that you need this, you probably don’t
  22. xcache.var_size  =            0M
  23. xcache.var_count =             1
  24. xcache.var_slots =            8K
  25. xcache.var_ttl   =             0
  26. xcache.var_maxttl   =          0
  27. xcache.var_gc_interval =     300
  28.  
  29. ; N/A for /dev/zero
  30. xcache.readonly_protection = Off
  31.  
  32. xcache.mmap_path =    "/dev/zero"
  33.  
  34. xcache.cacher =               On
  35. xcache.stat   =               On

注意修改zend_extension = /usr/lib64/php/modules/xcache.so为正确的路径。
详情的配置说明:http://xcache.lighttpd.net/wiki/XcacheIni

eAccelerator 配置参数详解

  1. eaccelerator.shm_size="32"

eAccelerator 可以使用的共享内存的数量 (以兆为单位) . “0” 是指操作系统的默认值. 默认值是 “0”.可根据服务器的实际情况来调整,16,32,64,128都是可以的。

  1. eaccelerator.cache_dir="/home/php/tmp"

这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 “/tmp/eaccelerator”.

  1. eaccelerator.enable="1"

开启或关闭 eAccelerator。”1″ 为开启,”0″ 为关闭。默认值为 “1”。

  1. eaccelerator.optimizer="1"

启或关闭内部优化器,可以提升代码执行速度。”1″ 为开启,”0″ 为关闭。默认值为 “1”。
eaccelerator.check_mtime=”1″
打开或者关闭 PHP 的文件修改检查. “1” 是指打开, “0” 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 “1”. 默认值是 “1”.

  1. eaccelerator.debug="0"

开启或关闭调试日志记录。”1″ 为开启,”0″ 为关闭。默认值为 “0”。会将缓存命中得记录写入日志。

  1. eaccelerator.filter=""

判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等)
如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件都将被缓存。

  1. eaccelerator.shm_max="0"

当使用 ” eaccelerator_put() ” 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。”0″ 为不限制。默认值为 “0”。

  1. eaccelerator.shm_ttl="0"

当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 “shm_ttl” 秒内没有存取的脚本缓存。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

  1. eaccelerator.shm_prune_period="0"

当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于”shm_prune_period” 秒的缓存脚本。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

  1. eaccelerator.shm_only="0"

允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 “0”,即:使用磁盘和共享内存进行缓存。

  1. eaccelerator.compress="1"

允许或禁止压缩内容缓存。默认值为 “1”,即:允许压缩。

  1. eaccelerator.compress_level="9"

指定内容缓存的压缩等级。默认值为 “9”,为最高等级。

  1. eaccelerator.keys = "disk_only"
  2. eaccelerator.session = "disk_only"
  3. eaccelerator.content = "disk_only"

设置内容缓存的存放的地方,可以设置为:
shm_and_disk 在共享缓存和硬盘(默认值)
shm 默认存在共享内存,如果共享内存已满或大小超过 “eaccelerator.shm_max” 的值,就存到硬盘
shm_only 只存放在共享内存
disk_only 只存放在硬盘
none 不缓存数据

  1. eaccelerator.allowed_admin_path = "/var/www/html/21andy.com/eaccelerator"

这是控制面板的地址
安装包里有个control.php,你把它复制到网站的任意目录,可以用它查看和管理,这个必须指定,否则查看缓存内容的时候会出错
最后,来看一下我的 eAccelerator 设置

  1. ; eaccelerator
  2. [eaccelerator]
  3. zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
  4. eaccelerator.shm_size="128"
  5. eaccelerator.cache_dir="/tmp/eaccelerator"
  6. eaccelerator.enable="1"
  7. eaccelerator.optimizer="1"
  8. eaccelerator.check_mtime="1"
  9. eaccelerator.debug="0"
  10. eaccelerator.filter=""
  11. eaccelerator.shm_max="0"
  12. eaccelerator.shm_ttl="3600"
  13. eaccelerator.shm_prune_period="3600"
  14. eaccelerator.shm_only="0"
  15. eaccelerator.compress="1"
  16. eaccelerator.compress_level="9"
  17. eaccelerator.keys = "disk_only"
  18. eaccelerator.sessions = "disk_only"
  19. eaccelerator.content = "disk_only"
  20. eaccelerator.allowed_admin_path = "/var/www/html/21andy.com/eaccelerator"

另外,再说下 eAccelerator 的安装

  1. # wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
  2. # tar -jxvf eaccelerator-0.9.6.tar.bz2
  3. # cd eaccelerator-0.9.6
  4. # /usr/local/php/bin/phpize
  5. # ./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
  6. # make && make install

文章来源:http://www.21andy.com/blog/20100207/1646.html

CentOS-6 64位安装PHP5.2出现error: libjpeg.(a|so),error: libpng.(a|so) not found

昨天测试lamp一键安装脚本时,出现error: libjpeg.(a|so),error: libpng.(a|so) not found等两个错误,根据错误提示,是找不到libjpeg和libpng库文件的意思,找了一下,发现这两个文件在目录/usr/lib64下,而php并不查找这个位置,而是去/usr/lib搜索库文件,所以只能建立两个软链接。

  1. ln -s /usr/lib64/libjpeg.so /usr/lib/libjpeg.so
  2. ln -s /usr/lib64/libpng.so /usr/lib/libpng.so

同是64位,CentOS-5就没有这种问题。