Monthly Archives: 8月 2016

8月 31st, 2016

 一、Can’t connect to MySQL server on ‘localhost'(10061)?

翻译:不能连接到localhost 上的mysql?分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。?需要启动这台机器上的MySQL服务,如 果机子负载太高没空相应请求也会产生这个错误。?解决:既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的my.ini配置的 有问题。重新配置其即可。?如果觉得mysql负载异常,可以到mysql/bin 的目录下执行mysqladmin-uroot -p123 processlist来查看mysql当前的进程。

二、Unknown MySQL ServerHost ‘localhosadst’ (11001)

翻译:未知的MySQL服务器localhosadst?分析:服务器localhosasdst 不存在。或者根本无法连接?解决:仔细检查自己论坛下面的./config.inc.php找到$dbhost重新设置为正确的mysql 服务器地址。
   

三、Access denied for user:’roota@localhost’ (Using password: YES)

?翻译:用户roota 访问 localhost 被拒绝(没有允许通过)?分析:造成这个错误一般数据库用户名和密码相对mysql服务器不正确?解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbuser、$dbpw核实后重新设置保存即可。
四、Access denied for user:’red@localhost’ to database ‘newbbs’?

翻译:用户 red在localhost 服务器上没有权限操作数据库newbbs?分析:这个提示和问题三是不同的。那个是在连接数据库的时候就被阻止了,而这个错误是在对数据库进行操作时引起 的。比如在selectupdate等等。这个是因为该用户没有操作数据库相应的权力。比如select 这个操作在mysql.user.Select_priv里记录 Y 可以操作N 不可以操作。?解决:如果是自己的独立主机那么更新mysql.user 的相应用户记录,比如这里要更新的用户为red 。或者直接修改./config.inc.php 为其配置一个具有对数据库操作权限的用户?或者通过如下的命令来更新授权grantall privileges on dbname.* to ‘user’@’localhost’ identified by ‘password’?提示:更新了mysql库中的记录一定要重启mysql服务器才能使更新生效?FLUSH PRIVILEGES;
五、No Database Selected

?翻译:没有数据库被选择上?分析:产生的原因有两种?config.inc.php 里面$dbname设置的不对。致使数据库根本不存在,所以在$db->select_db($dbname); 时返回了false?和上面问题四是一样的,数据库用户没有select权限,同样会导致这样的错误。当你发现config.inc.php的设置没有任 何问题,但还是提示这个错误,那一定就是这种情况了。?解决:对症下药?打开config.inc.php找到$dbname核实重新配置并保存?同问题 四的解决方法
六、Can’t open file:’xxx_forums.MYI’. (errno: 145)

翻译:不能打开xxx_forums.MYI?问题分析:?这种情况是不能打开cdb_forums.MYI 造成的,引起这种情况可能的原因有:?1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。?2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。?解决方法:?1、修复数据表?可以使用下面的两种方式修复数据表:(第一种方 法仅适合独立主机用户)?1)使用 myisamchk ,MySQL自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到MySQL/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:myisamchk-r 数据文件目录/数据表名.MYI;?2)通过 phpMyAdmin 修复,phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。?注意:以上两种修复方式在执行前一定要备份数据 库。?2、修改文件的属组(仅适合独立主机用户)?1)复制数据库文件的过程中没有将数据库文件设置为MySQL 运行的帐号可读写(一般适用于 Linux和 FreeBSD 用户)。
七、Table’test.xxx_sessions’ doesn’t exist

?翻译:xxxxx表不存在?分析:在执行sql语句时没有找到表,比如:SELECT * FROMxxx_members WHERE uid=’XX’ 这里如果表xxx_members不存在于$dbname库里,那么就会提示这个错误。具体可分为以下三种情况来讨论:?安装插件或者hack时修改了程 序文件,而忘记了对数据库作相应的升级。?后台使用了不完全备份,导入数据时没有导入到已经安装了相应版本的论坛的数据库中。?解决: 同样对症下药,不同的原因不同的处理方法。?仔细对照插件作者提供的安装说明,把遗漏的对数据库的操作补上,如果仍然不能解决问题,那么应该怀疑该插件的 可用性了。去咨询一下插件作者,或者将其卸载。?不要张冠李戴,多大的脚就穿多大的鞋。总之使得程序文件和数据库配套即可.
八、Unknown column’column_name’ in ‘field list’

翻译:未知的字段名column_name?分析:在执行sql语句是出现了指定表中没有的字段名称,就会出现这个错误。具体导致的原因可分为以下两种? 安装插件或者hack时修改了程序文件,而忘记了对数据库作相应的升级。?程序文件和数据库不配套,比如d2.5的数据库配置给d4.1的程序来用肯定会 出现这个错误。?解决: 导致的原因和问题八的1和 3是相同的,所以解决方法也一样。
九、You have an error in yourSQL syntax

翻译:有一个语法错误在你的sql中?分析:论坛标准的程序是没有sql语法错误的。所以造成这个错误的原因一般就两类?安装插件或擅自修改程序。?不同 的数据库版本数据库导出导入,比如MySQL4.1的数据在导出的语句包含了MySQL4.0没有的功能,像字符集的设定,这时如果将这些sql导入到 MySQL4.0的时候就会产生sql语法错误。?解决:?仔细检查看到底是哪里的错误,将其修正,实在不行就用标准程序把出错的程序替换。?在数据库备 份的时候要留意,如果不打算倒入到其他版本的mysql中则不用特殊考虑,反之要特殊的设定。使用DZ4.1的后台数据备份,可以按照提示去设定想要的格 式。独立主机的也可以在到处的时候将其导出为mysql4.0的格式。?mysqldump -uroot -p–default-character-set=latin1 –set-charset=gbk –skip-opt databse >test.sql
十、Duplicate entry ‘xxx’for key 1

翻译:插入 xxx使索引1重复?分析:索引如果是primaryunique这两两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性。否则就会产生 这个错误。?一般发生在对数据库写操作的时候,例如Discuz!4.1论坛程序要求所有会员的用户名username必须唯一,即username的索 引是unique,这时如果强行往cdb_members表里插入一个已有的username的记录就会发上这个错误,或者将一条记录的username 更新 为已有的一个username。?改变表结构的时候也有可能导致这个错误。例如 Discuz!4.0论坛的数据库中cdb_members.username的索引类型是index这个时候是允许有相同username的记录存在 的,在升级到4.1的时候,因为要将username的索引由原来的index变 为unique。如果这时cdb_members里存在有相同的username的记录,那么就会引发这个错误。?导出数据据时有时会因为一些原因(作者 目前还不清楚)导致同一条记录被重复导出,那么这个备份数据在导入的时候出现这个错误是在所难免的了。?修改了auto_increment的值,致使 “下一个Autoindex”为一条已经存在的记录?解决: 两种思路,一是破坏掉唯一性的索引。二是把重复的数据记录干掉,只保留一条。很显然第一种思路是不可取的。那么按照二的思路我们得出以下几种解决方法,对 应上面的i iiiii?略?按照错误提示里的信息到数据库中将重复的记录删除,仅保留一条即可。之后继续执行升级操作。?这种情况发生的概率很小,可以用文本编辑器 打开备份文档,查找重复的信息。将其多余的拿掉,仅保留一条即可。?查询出表中auto_increment最大的一条记录,设置 auto_incerment比其大一即可。?PS:repaire table “表名“,可以暂时解决问题。
十一、 Duplicate key name’xxx’

?翻译:索引名重复?分析:要创建的索引已经存在了,就会引发这个错误,这个错误多发生在升级的时候。可能是已经升级过的,重复升级引起的错误。也有可能 是之前用户擅自加的索引,刚好与升级文件中的所以相同了。?解决: 看看已经存在的索引和要添加的索引是否一样,一样的话可以跳过这条sql语句,如果不一样那么现删除已存在的所以,之后再执行。
十二、 Duplicate column name’xxx’

?翻译:字段名xxx重复?分析:添加的字段xxx已经存在,多发生在升级过程中,与问题十二的产生是一样的。?解决: 看一下已经存在的字段是否和将要添加的字段属性完全相同,如果相同则可以跳过不执行这句sql,如果不一样则删除掉这个字段。之后继续执行升级程序。
十三、 Table ‘xxx’ alreadyexists

?翻译:数据表xxx已经存在?分析:xxx表已经存在于库中,再次试图创建这个名字的表就会引发这个错误。同样多发生在论坛的升级中。类似于问题十 二。?解决: 看看已经存在的表是否和将要创建的表完全一样,一样的话可以跳过不执行这个sql,否则请将存在的表先删除,之后继续执行升级文件。
十四、 Can’t create database’xxx’. Database exists

翻译:不能创建数据库xxx,数据库已经存在?分析:一个mysql下面的数据库名称必须保证唯一性,否则就会有这个错误。?解决:把已经存在的数据库改名或者把将要创建的数据库改名,总之不让他们的名称冲突。
十五、 小结(针对问题11\12\13\14\15)

此类问题错误提示中都暗藏一个关键词duplicate(重复)?那么对于mysql数据库来说什么东西是不能重复的呢??数据库 database?同一个数据库下数据表table?同一个数据表下字段 column?同一个数据表下索引 key?同一个数据表在索引唯一(UNIQUEPRIMARY)的情况下记录中的这些字段不可以重复
十六、Unknown system variable’NAMES’

?翻译:未知的系统变量NAMES?分析:Mysql版本不支持字符集设定,此时强行设定字符集就会出现这个错误。?解决: 将sql语句中的SET NAMES ‘xxx’ 语句去掉
十七、 Lost connection toMySQL server during query?

翻译:MySQL服务器失去连接在查询期间?分析:远程连接数据库是有时会有这个问题。MySQL服务器在执行一条sql语句的时候失去了连接造成的。?解决: 一般不需要怎么去处理,如果频繁的出现那么考虑改善硬件环境。
十八、User ‘red’ has exceededthe ‘max_updates’ resource (current value: 500)

翻译:msql用户red已经超过了’max_updates’(最大更新次数),’max_questions’(最大查询次 数),’max_connections’(最大连接数),当前设定为500?分析:在mysql数据库的下有一个库为mysql,它其中有一个表为 user这里面的纪录每一条都对应为一个mysql用户的授权。其中字段max_questions max_updates max_connections分别记录着最大查询次数 最大更新数 最大连接数,当目前的任何一个参数大于任何一个设定的值就会产生这个错误。?解决: 独立主机用户可以直接修改授权表。修改完之后重启mysql或者跟新授权表,进入mysql提示符下执行?FLUSH PRIVILEGES;?记得后面要有分号’;’?虚拟主机的用户如果总是出现这个问题可找空间商协商解决。
十九、Too many connections(1040)链接过多?

翻译:达到最大连接数?问题分析:?连接数超过了mysql设置的值,与max_connections和wait_timeout 都有关系。wait_timeout的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大?解决方法:?1.虚拟主机用户请联系空间商优化 MySQL 服务器的配置;?2.独立主机用户请联系服务器管理员优化MySQL 服务器的配置,可参考:?修改MySQL 配置文件 my.ini 或者 my.cnf 中的参数:?max_connections= 1000?wait_timeout = 10?修改后重启 MySQL ,如果经常性的报此错误,请做一下服务器的整体优化。
二十、There is no such grantdefined for user ‘%s’ on host ‘%s’?

错误编号:1141?问题分析:?MySQL当前用户无权访问数据库。?解决方法:?1、虚拟主机用户请联系空间商,确认给你提供的帐号是否有授权数据库的权限。?2、独立主机用户请联系服务器管理员,确认给您提供的数据库帐号是否有管理此数据库的权限。
二十一、Error on rename of ‘%s’to ‘%s’ (errno: %d)?error.:1025?

问题分析:?请检查一下您的程序是否有修改数据库表名的语句。?解决方法:?1.请检查您的程序中哪些地方需要修改数据库表名;?2.如果您的实际应用确实需要修改到数据库表名的话,请联系空间商或者服务器管理员给您开放修改库名的权限和服务器本身是否正常。
二十二、Error reading file ‘%s'(errno: %d)?error.:1023?

问题分析:?数据库文件不能被读取。?解决方法:?1.虚拟主机用户请联系空间商查看数据库是否完好。?2.独立主机用户请联系服务器管理员检查一下 MySQL 本身是否正常, MySQL 是否可以读取文件,Linux 用户可以检查一下MySQL 的数据库文件的属主是否正确以及本身的文件是否损坏。
二十三、Host ‘*****’ is blockedbecause of many connection errors; unblock with ‘mysqladmin flush-hosts’?error.:1129

问题分析:?数据库出现异常,请重启数据库。?解决方法:?1. 由于存在很多连接错误,主机’****’被屏蔽,虚拟主机用户请联系空间商处理,独立主机用户请联系服务器管理员,在MySQL 的命令控制台下执行’mysqladmin flush-hosts’解除屏蔽即可,或者重启MySQL 数据库
二十四、dropping database (can’tdelete ‘%s’, errno: %d)?error.:1009?

问题分析:?不能删除数据库文件,导致删除数据库失败。?解决方法:?1.检查您使用的数据库管理帐号是否有权限删除数据。?2.检查数据库是否存在。
二十五、Got error 28 from tablehandler?error.:1030?

问题分析:?数据库所在磁盘空间已满。?解决方法:?1.虚拟主机用户请联系空间商增加MySQL 所在的磁盘空间或者清理一些无用文件;?2.独立主机用户请联系服务器管理员增加MySQL 所在的磁盘空间或者清理一些无用文件
二十六、Can’t create a newthread; if you are not out of available memory, you can consult the manual fora possible OS-dependent bug。?error.:11/35?

问题分析:?数据库服务器问题,数据库操作无法创建新线程。一般是两个原因:?1.服务器系统内存溢出。?2.环境软件损坏或系统损坏。?解决方 法:?1.虚拟主机用户请联系下空间商数据库服务器的内存和系统是否正常。?2.独立主机用户请联系服务器管理员检查服务器的内存和系统是否正常,如果服 务器内存紧张,请检查一下哪些进程消耗了服务器的内存,同时考虑是否增加服务器的内存来提高整个的负载能力。
二十七、Error: Client does notsupport authentication protocol requested by server; consider upgrading MySQLclient?error.:1251?

问题分析:?如果你升级MySQL 到 4.1 以上版本后遇到以上问题,请先确定你的MySQL Client 是 4.1 或者更高版本(Windows下有问题你就直接跳到下面看解决方法了,因为 MySQL 在Windows 是 client 和 server 一起装上了的)。?解决方法:?1.Windows 平台?主要是改变连接MySQL 的帐户的加密方式,MySQL 4.1/5.0 是通过PASSWORD 这种方式加密的。可以通过以下两种方法得到解决:?1) mysql->SET PASSWORD FOR’some_user’@’some_host’=OLD_PASSWORD(‘new_password’);?2) mysql->UPDATE mysql.user SETPassword=OLD_PASSWORD(‘new_password’) WHERE Host=’some_host’ ANDUser=’some_user’;?2.Linux/Unix 平台?Linux平台下首先确定是否安装过 MySQL 的客户端,这个用 rpm安装很简单,Linux 代码为:?rpm -ivh MySQL-client-4.1.15-0.i386.rpm?然后在编译 php 的时候要加上:?–with-mysql=/your/path/to/mysql?一般情况下都可以解决。如果还出现这种错误,可以按照下面的方法来 做:?mysql->SET PASSWORD FOR’some_user’@’some_host’=OLD_PASSWORD(‘new_password’);?mysql->UPDATE mysql.user SET Password=OLD_PASSWORD(‘new_password’)WHERE Host=’some_host’ AND User=’some_user’;
二十八、Error: Can’t connect tolocal MySQL server through socket ‘/var/lib/mysql/mysql.sock’?error.:2002?

问题分析:?出现这个错误一般情况下是因为下面两个原因:?1.MySQL 服务器没有开启。?2.MySQL 服务器开启了,但不能找到 socket 文件。?解决方法:?1.虚拟主机用户,请联系空间商确认数据库是否正常启动。?2.独立主机用户,请检查一下 MySQL 服务是否已经开启,没有开启,请启动MySQL 服务;如果已经开启,并且是 Linux 系统,请检查一下MySQL 的 socket 的路径,然后打开 config.inc.php 找到?$dbhost = ‘localhost’; 在hostname 后面加冒号‘:’和 MySQL 的socket 的路径。?比如MySQL 服务器为 localhost?MySQL的 socket 的路径为 /tmp/mysql.sock?那么就改成如下:?$dbhost= ‘localhost:/temp/mysql.sock’;
二十九、Can’t connect to MySQLserver on ‘localhost’?error.:2003?

问题分析:?MySQL服务没有启动,一般是在异常的情况下 MySQL 无法启动导致的,比如无可用的磁盘空间,my.ini里 MySQL 的 basedir 路径设置错误等。?解决方法:?1.检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。?2.检查 my.ini 里的basedir 等参数设置是否正确,然后重新启动下 MySQL 服务。
三十、Lost connection to MySQLserver during query?error.:2013

?问题分析:?数据库查询过程中丢失了与MySQL 服务器的连接。?解决方法:?1.请确认您的程序中是否有效率很低的程序,比如某些插件,可以卸载掉插件,检查一下服务器是否正常;?2.服务器本身资源 紧张,虚拟主机用户请联系空间商确认,独立主机用户请联系服务器管理员,检查一下服务器是否正常。
三十一、Got a packet bigger than\’max_allowed_packet\’ bytes?

错误编号:1153?问题分析:调整了 Mantis 的上传附件的大小却没有调整 MySQL 的配置文件。?解决办法:?1、独立主机用户请按照以下方法调整:?查找 MySQL 的配置文件(my.cnf 或者my.ini)?在[mysqld] 部分添加一句(如果存在,调整其值就可以):?max_allowed_packet=10M?重启 MySQL 服务就可以了。这里设置的是 10MB。

TAGS:
8月 31st, 2016

1.下载解压
下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-winx64.zip
将下载的mysql解压重命名放在C:\Program Files\MySQL\MySQL Server 5.7”

2.创建目录
创建数据文件和日志文件存放目录:D:\MySQL\Data;D:\MySQL\Log

3.创建my.ini
在C盘根目录下创建my.ini文件(注意隐藏的文件后缀名),内容如下(只列出安装的一些需要的配置):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[client]
no-beep
socket =0.0
port=3306
[mysqld]
server-id=45
port=3306
character-set-server=utf8mb4
pid-file ="mysql.pid"
socket =0.0
basedir="C:\Program Files\MySQL\MySQL Server 5.7"
datadir="D:/MySQL/Data"
tmpdir="D:/MySQL/Data"
default-storage-engine=INNODB
#####==========================================================================[log]================================================================================
slow-query-log=1
long_query_time=1
slow_query_log_file="D:/MySQL/Log/mysql-slow.log"
##log-bin="D:/MySQL/Log/mysql-bin"
log-error="D:/MySQL/Log/mysql-error.log"

4.初始化安装
进入cmd命令界面,切换到”cd C:\Program Files\MySQL\MySQL Server 5.7\bin”

复制代码 代码如下:
mysqld –defaults-file=C:\my.ini –initialize –innodb_undo_tablespaces=3 –explicit_defaults_for_timestamp

 

5.配置环境变量
在环境变量中加入
C:\Program Files\MySQL\MySQL Server 5.7\bin

6.添加mysql服务
增加服务 mysqld install MySQL –defaults-file=”C:\my.ini”
移除服务 mysqld remove
注意:这里的“MySQL”是设的服务名

7.启动关闭mysql
启动 net start mysql
关闭net stop mysql

8.登入mysql
1).如果安装方式使用的是-initialize-insecure,在安装的过程中会生成一个root用户密码

2).如果使用–initialize方式安装,在mysql -u root -p 登入时在错误日志文件中会生成一个root用户密码(我这里就是采取第二种安装方法)

9.修改用户密码
SET password=PASSWORD(”);
或者
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’;

TAGS: ,
8月 31st, 2016

有很多人在装sql server的时候,稍有不慎就安装失败。sql server 2008应该是用的比较多的,很多人都遇到了安装失败的问题,什么原因造成的呢?

如图:安装失败都是因为以前的老版本未卸载干净造成的!

怎么解决?

1、停止所有跟Sql相关的服务:控制面板-〉管理工具-〉服务

2、在控制面板中卸载所有和SQL有关的一切程序或者组建

3、注册表清理():

3.1彻底删除SQL Server:

hkey_local_machine\software\microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_current_user\software\Microsoft\Microsoft SQL Server hkey_current_user\software\Microsoft\MSSQLServer hkey_local_machine\system\currentcontrolset\control\sessionmanager\pendingfileren       ameoperations

3.2注册表中的相关信息删除:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSDTC。

3.3 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目

3.4 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\setup

删除ExceptionComponents

3.5运行注册表,删除如下项:

HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer

 

8月 31st, 2016
使用Windows Server 2008简体中文语言包后,所有的地方(包括帮助)都是中文显示,这样英文不好的朋友可以很容易的学习和测试了。
【说明】:(1)可以从“[url]http://www.oovista.com/Win2008/Win2008xiazai/20080220/828.html[/url]“下载Windows Server 2008的简体中文语言包
(2)下面是安装好后的截图,英文的截图忘记抓了。
1、在英文的Windows Server 2008中,在“控制面板→区域和语言选项→键盘和语言→安装/卸载语言”,在弹出的新对话框中单击“安装语言”选项卡
2、选择下载后的lp.cab所在的目录,注意,只需要选择所在目录就可以了
在上图中,键盘与格式等地方,选择“中国”和“简体中文”
3、注销或重启后,再次进入,将全面显示中文,包括帮助,下面的web服务器的帮助
TAGS:
8月 30th, 2016

一.软件介绍(apache  lighttpd  nginx)

1. lighttpd

Lighttpd 是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。
Fastcgi的优点在于:

·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.

·从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮,

·从 性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)

·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python…)

2.apache

apache是世界排名第一的web服务器, 根据netcraft(www.netsraft.co.uk)所作的调查,世界上百分之五十以上的web服务器在使用apache.

1995 年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中.

apache 的特性:

1) 几乎可以运行在所有的计算机平台上.

2) 支持最新的http/1.1协议

3) 简单而且强有力的基于文件的配置(httpd.conf).

4) 支持通用网关接口(cgi)

5) 支持虚拟主机.

6) 支持http认证.

7) 集成perl.

8) 集成的代理服务器

9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.

10) 支持服务器端包含命令(ssi).

11) 支持安全socket层(ssl).

12) 具有用户会话过程的跟踪能力.

13) 支持fastcgi

14) 支持java servlets

3.nginx

Nginx 是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.

Nginx 以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。但是 Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。

nginx做为HTTP服务器,有以下几项基本特性:

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.

无缓存的反向代理加速,简单的负载均衡和容错.

FastCGI,简单的负载均衡和容错.

模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。
如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。

Nginx 具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启 服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存 占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处 的。就稳定性而言,nginx比lighthttpd更胜一筹。

Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

二.3种WEB服务器的比较:

server Apache Nginx Lighttpd
Proxy代理 非常好 非常好 一般
Rewriter 非常好 一般
Fcgi 不好 非常好
热部署 不支持 支持 不支持
系统压力比较 很大 很小 比较小
稳定性 非常好 不好
安全性 一般 一般
技术支持 非常好 很少 一般
静态文件处理 一般 非常好
Vhosts虚拟主机 支持 不支持 支持
反向代理 一般 非常好 一般
Session sticky 支持 不支持 不支持

注:在相对比较大 的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容易过载,这样的情况下采用 Nginx 最为合适。

建议方案:

Apache 后台服务器(主要处理php及一些功能请求 如:中文url)

Nginx  前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)

Lighttpd 图片服务器

总体来说,随着nginx功能得完善将使他成为今后web server得主流。

8月 27th, 2016

在Win8系统下老是会生成thumbs.db文件,那么,要如何阻止Win8系统生成thumbs.db文件呢?下面我们一起来看看。

首先,什么是thumbs.db文件?其实thumbs.db是一个图片缓存文件。阻止Win8系统生成thumbs.db文件的方法也很简单.

1、 Win+R键,输入gpedit.msc后回车;

2、在打开的窗口是依次找到 “用户配置-》管理模板-》Windows组件-》文件资源管理器”;

3、在右侧列表中打开“关闭隐藏的Windows文件中的缩略图缓存”,设置为“已启用”,点击确定后完成设置;

4、如果需要删除电脑中所有的“thumbs.db”文件,可以在“命令提示符”中进行以下操作;

5、直接在cmd中输入:del thumbs.db /f/s/q/a 回车。

上述便是阻止Win8系统生成thumbs.db文件的方法,其实thumbs.db文件占用的空间也不大,大家删不删都可以的。

8月 27th, 2016

1.通过RPM软件包来安装
说起RPM(REDHAT Package Management)标准的软件包,大家可能都会想起大名鼎鼎的REDHAT公司,正是RPM软件包发行方式的出现,使Linux中的应用软件安装变得 简单。如果用户想安装按RPM方式发行的软件,只需简单地输入命令“rpm -ivh xxx.rpm”即可.比如用户想安装 OpenOffice.org-1.0.1.rpm软件包,只需输入命令“rpm -ivh OpenOffice.org-1.0.1.rpm”即可。RPM软件包发行方式的另一个优点是它能够方便地对已经安装的RPM软件包进行删除,只要使用 “rpm -e OpenOffice.org-1.0.1”命令就能将刚才安装的OpenOffice.org-1.0.1.rpm从硬盘上安全永久地删除。如果你是在 X-Window环境中安装/删除软件,那便有更好的办法,如果使用的是KDE,可以使用KDE自带的Kpackage程序来对软件进行添加或删除,如果 是使用GNOME,则可以使用Gnorpm程序对软件进行管理。这两个程序都很像微软Windows中的“添加/删除程序”功能。以RPM软件包发行方式 的软件是最容易安装和管理的,建议大家以后多采用这种模式来管理软件。

2.Tar.gz(Tgz)软件包的安装
以 Tar.gz为扩展名的软件包,是用Tar程序打包并用Gzip程序压缩的软件包。要安装这种软件包,需要先对软件包进行解压缩,使用“tar -zxfv filename.tar.gz”可以对软件包进行解压缩,解压缩所得的文件在以Filename为名的目录中。进入该目录,可以看到解压缩 出来的文件了。

各种软件都有不同的安装方法,但是一般每个软件包解压缩后都有Install和Readme文件,帮助文件中会有详细 的安装指导。以Tar.gz(或Tgz)包发行的软件有一个缺点,就是一般不带自动反安装程序,如果需要对已经安装的此类程序进行删除,就不得不仔细查看 Makefile中的安装路径和文件名,这些对于初学者有一些难度。

3.Tar.bz2软件包的安装
以Tar.bz2为 扩展名的软件包,是用Tar程序打包并用Bzip2程序进行压缩的软件包。它的优点是压缩率非常高,需要使用“bunzip2 filename.tar.bz2”进行解压。但以该种方式发行的软件包与Tar.gz软件包有着同样的缺点,那就是删除非常麻烦。

8月 27th, 2016

/boot目录:

保存系统的引导相关文件:比如,内核文件,引导文件grub

 

/etc目录:

系统常用的配置文件,所以备份系统时一定要备份此目录

比如:系统管理员经常需要修改的文件,决定系统行为的配置文件

 

/bin目录:

存放用户常用的命令。注意:所有的用户都可以使用。

比如:ls,cp。。。

 

/sbin目录:

保存系统维护所使用的命令,很多命令,普通用户是不可用的,大部分只有root可用

如: fdisk:分区

mkfs:格式化

 

/lib目录:

保存系统运行所需要的库文件,安装程序时,自动把库拷贝到此处

如: C语言以.a为后缀名的静态库文件

以.so为扩展名的动态库文件

 

/dev目录:

存放系统设备文件

如: /dev/cdrom

/dev/hda

/dev/sdb

 

/var目录:

保存变化的数据,系统运行时的数据

如:日志文件:log

邮件文件:mail

脱机文件等

 

/mut目录:

系统用来安装文件系统设备的目录

为了方便,一般把设备都挂载到mut目录下

如:光盘:mut/cdrom

U盘:mut/sdb2

 

/proc目录:

系统内存/CPU的映射,虚拟的文件系统,不占空间

如:查看内存大小:vimmeminfo

查看CPU:vim cpuinfo

他删除之后,重启,则又会映射过来了

 

/tmp目录:

用来保存系统运行是产生的临时文件

如:编程时的临时数据

 

/usr目录:

系统中用来保存与用户相关的信息,是最大的

如:安装软件等。

 

/home目录:

系统中,普通用户的主目;cd默认返回自己的家目录

 

/root目录:

系统中,超级用户的主目录

 

其他的大都没啥用,很多都是空的!

8月 27th, 2016

1、查看系统在线用户

[root@testdb ~]# w

14:30:26 up 38 days, 21:22, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 162.16.16.155 14:30 0.00s 0.07s 0.05s w
root pts/1 162.16.16.155 14:30 12.00s 0.01s 0.01s -bash

root tty1 :0 05Dec13 38days 2:16 2:16 /usr/bin/Xorg :0 -nr -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-LrK8wg/database -noliste

2.查看哪个属于此时自己的终端(我开了两个连接)

[root@testdb ~]# who am i

root pts/0 2013-12-31 14:30 (162.16.16.155)

 

3.pkill掉自己不适用的终端

[root@testdb ~]# pkill -kill -t pts/1

 

4.查看当前终端情况

[root@testdb ~]# w
14:31:04 up 38 days, 21:23, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 162.16.16.155 14:30 0.00s 0.04s 0.01s w
root tty1 :0 05Dec13 38days 2:16 2:16 /usr/bin/Xorg :0 -nr -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-LrK8wg/database -noliste
[root@testdb ~]#

注意:

如果最后查看还是没有干掉,建议加上-9 强制杀死。

[root@testdb ~]# pkill -9 -t pts/1

8月 26th, 2016

—-什么是伪静态
说白了伪静态就是地址中不带”?”,也就是平常在网上看的的以.html展示的页面

—-伪静态的由来
伪静态是相对真实静态来讲的.通常我们为了更好的缓解服务器压力,和增强搜索引擎的友好面.都将文章内容生成静态页面就是展示出来的是以.html一类的静态页面形式

—-伪静态的利与弊

利:有利于被搜索引擎收录,可以防止注入,也可以防止盗链。相对于真静态而言,伪静态的应用对硬盘的损坏小。

弊:伪静态将占用一定量的CPU占有率,其原因就是伪静态应用了大量的正则表达式,举个例子,就是有一个页面为“lampPHP.php?id=2”经过 伪静态处理可以转为“lampPHP_2.html”或者“lamp_2.html”这都是可以的,所以这需要耗掉一定的内存来将其区分开的。

—-实现伪静态

Apache配置:

启用rewrite

#LoadModule rewrite_module modules/mod_rewrite.so

去除前面的 #

LoadModule rewrite_module modules/mod_rewrite.so

启用.htaccess(约150行-154行)

AllowOverride None 修改为: AllowOverride All

到这里,,,,重启apache ,伪静态就O了

TAGS: ,