1.CentOS5.8 x86_64位 采用最小化安装,系统经过了基本优化篇
2.apache版本:httpd-2.2.29
3.源码包存放位置:/home/oldboy/tools
4.源码包编译安装位置:/application/

一.设置日志轮循
    1.下载并安装cronolog

[root@ser200 tools]# cd /home/oldboy/tools
    [root@ser200 tools]# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
    [root@ser200 tools]# tar zxf cronolog-1.6.2.tar.gz
    [root@ser200 tools]# cd cronolog-1.6.2
    [root@ser200 cronolog-1.6.2]# ./configure
    [root@ser200 cronolog-1.6.2]# make&&make install

2.配置apache使用cronolog
    [root@ser200 cronolog-1.6.2]# vi /application/apache/conf/extra/httpd-vhosts.conf

CustomLog "|/usr/local/sbin/cronolog /app/logs/access_%Y%m%d.log" combined
    ErrorLog "|/usr/local/sbin/cronolog /app/logs/error_%Y%m%d.log"

3.更多日志格式参考:
    按天轮询(生产环境常见用法,推荐使用):
        CustomLog "|/usr/local/sbin/cronolog /app/logs/access_www_%Y%m%d.log" combined
    按小时轮询(生产环境较常见用法):
        CustomLog "|/usr/local/sbin/cronolog  /app/logs /access_www_ %Y%m%d%H.log" combined

二.设置404页面
    为了提升网站的用户体验和SEO优化需要.强烈建议设置404跳转页面
    第一种:在apache的主配置文件httpd.conf中的<Directory></Directory>标签内添加ErrorDocument配置。
    第二种:在apache的虚拟主机配置文件httpd-vhost.conf中的<VirtualHost*:80></VirtualHost>中添加ErrorDocument配置。
    
    [root@ser200 cronolog-1.6.2]# vi /application/apache/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
        ServerAdmin 1968023646@qq.com
        DocumentRoot "/data/www/blog
        ServerName www.test.com
        ServerAlias test.com
        CustomLog "|/usr/local/sbin/cronolog /app/logs/access_%Y%m%d%_www.log" combined
        ErrorLog "|/usr/local/sbin/cronolog /app/logs/error_%Y%m%d.log"
        ErrorDocument 404  /404.html
    </Directory>

ErrorDocument的命令格式如下:
        ErrorDocument 错误代码 跳转到的页面或文件

三.安装压缩模块deflate

网站随着用户访问量的增加和内容量的增加,网站的带宽会不断的增加,随之就是网站成本的增加。并且当内容量增大的时候,客户端如果带宽小,就会影响用户的体验。因此从这两方面考虑,网站的某些内容必须经过压缩之后再传给用户,然后在用户客户端进行解压,来实现双方共赢的效果。

apache的压缩要用到mod_deflate模块,该模块提供了DEFLATE输出过滤器,允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。它的核心思想就是把文件先在服务器进行压缩,然后再进行传输,这样可以显著减少文件传输的大小。当传输完毕后,客户端游览器会重新对压缩过的内容进行解压缩。如果没特殊情况的话,所以的文本内容都应该能被gzip压缩,例如:html(php),js,css,xml,txt等。特殊情况就是像一些首页上有很多广告投放的js代码,由于需要每次加载进而进行来访信息统计,所以这些广告代码拥有者网站的js不会经过gzip压缩,

1、mod_deflate模块检查及安装

[root@ser200 /]# /usr/local/apache/bin/apachectl -M | grep deflate
        deflate_module (static)  #此种结果为编译安装时装的
    [root@ser200 /]# /usr/local/apache/bin/apachectl -M | grep deflate
        deflate_module (shared)  #此种结果为DSO方式安装的

2.安装
      a.编译时安装方法

编译的时候跟上--enable-deflate即可实现安装

b.DSO方式安装
        [root@ser200 /]# cd /server/tools/httpd-2.4.6/modules/filters/  #切到apache源码包mod_deflate所在的目录下
        [root@ser200 filters]# /usr/local/apache/bin/apxs -c -i -a mod_deflate.c  #以dso的方式编译安装到apache中
        [root@ser200 filters]# ll /usr/local/apache/modules/mod_deflate.so   #检查mod_deflate是否安装,成功安装这里会显示出该文件
        -rwxr-xr-x 1 root root 76697 11月  5 07:50 /usr/local/apache/modules/mod_deflate.so
    
      更详细的配置方法参考: apache模块defalte安装

四.设置expires缓存
    不经常改动的图片.CSS,HTML来指定长时间缓存,节省带宽

1.mod_expires模块检查及安装
        [root@ser200 apache]# bin/apachectl -M|grep expires
        expires_module (static)
    更详细的配置方法参考::apache缓存模块expires
    http://txidc.blog.51cto.com/9138217/1566047

2.虚拟主机设置单独的目录expire缓存
      <Directory "/data/www/blog/wp-content">
        ExpiresActive on
        ExpiresByType image/jpeg "access plus 12 months"
        ExpiresByType image/jpg "access plus 12 months"
     
     </Directory>

[root@ser200 apache]# curl -I http://www.test.com/wp-content/uploads/2014/10/2.jpg
    HTTP/1.1 200 OK
    Date: Tue, 21 Oct 2014 03:03:29 GMT
    Server: Apache/2.2.29 (Unix) DAV/2 PHP/5.3.29
    Last-Modified: Sun, 19 Oct 2014 13:39:02 GMT
    ETag: "10e-1a548-505c6b8952980"
    Accept-Ranges: bytes
    Content-Length: 107848
    Cache-Control: max-age=31104000
    Expires: Fri, 16 Oct 2015 03:03:29 GMT
    Vary: Accept-Encoding
    Content-Type: image/jpeg
五.修改apache运行用户
    1.apache的默认用户,可以提升apache的安全性。这样,即使apache服务被攻破,黑客拿到apache普通用户也不会对系统和其他应用造成破坏
    useradd -M -s /sbin/nologin txidc #创建apache用户

[root@server /]# vi /usr/local/apache/conf/httpd.conf
    User txidc  #更改默认的daemon用户为apache用户
    Group txidc  #更改默认的daemon用户为apache用户

六.使用worker模式,提升并发数

七.屏蔽apache版本信息
    1.在apache主配置文件httpd.conf中,找到包含httpd-default.conf的行,并解开注释
        #Include conf/extra/httpd-default.conf
    2.尽管配置文件

1.[root@sunsky /]# grep Server conf/extra/httpd-default.conf|grep -v "#"
        ServerTokens full
        ServerSignature Off

修改为
 
ServerTokens Prod
ServerSignature Off

经过上面的修改,当你在curl-I的时候,还是会出现下面的信息

[root@ser200 apache]# curl -I www.test.com             
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2014 04:32:53 GMT
Server: Apache/2.2.29 (Unix) DAV/2 PHP/5.3.29
X-Powered-By: PHP/5.3.29
X-Pingback: http://www.test.com/xmlrpc.php
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8

=====================================================

[root@ser200 apache]# curl -I www.test.com                                                                      
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2014 04:36:17 GMT
Server: Apache
X-Powered-By: PHP/5.3.29
X-Pingback: http://www.test.com/xmlrpc.php
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8

彻底让版本等敏感信息消失

如果你需要彻底将版本之类的信息进行改头换面,你就需要在编译之前做准备或者进行从新编译了
。在重新编译时,修改源码包下include目录下的ap_release.h文件

#define AP_SERVER_BASEVENDOR "Apache Software Foundation" #服务的供应商名称
#define AP_SERVER_BASEPROJECT "Apache HTTP Server"  #服务的项目名称
#define AP_SERVER_BASEPRODUCT "Apache"        #服务的产品名
#define AP_SERVER_MAJORVERSION_NUMBER 2  #主要版本号
#define AP_SERVER_MINORVERSION_NUMBER 4  #小版本号
#define AP_SERVER_PATCHLEVEL_NUMBER  6  #补丁级别
#define AP_SERVER_DEVBUILD_BOOLEAN  0  #

上述列出的行,我已经给出了注释,大家可以修改成自己想要的,
然后编译安装之后,再对httpd-default.conf文件进行修改,对方就彻底不知道你的版本号了。

九、启用worker模式,提升并发数(可以达到2000-5000)

apache有两个模式,默认的模式是prefork模式。那么我们为什么要使用worker模式呢?这两种模式又有什么区别呢?

1、prefork模式

prefork使用的是多个子进程,而每个子进程只有一个线程,每个进程在某个确定的时间只能维持一个连接。

工作原理:控制进程最初建立若干个子进程,为了不在请求到来时再生成子进程,所以要根据需求不断的创建新的子进程,最大可以达到每秒32个直到满足需求为止。

安装方法:在编译的过程中,加入参数--with-mpm=frefork,不加也可以,因为默认的话,会采用prefork模式。

优点:效率高,稳定,安全。对于线程调试困难的平台来说,调试更加容易些。

缺点:与worker模式相比消耗资源多。

配置参数说明:

1.<IFModule mpm_prefork_module>
2.StartServers               5     #最初建立的子进程
3.MinSpareServers       5      #最小空闲进程数,如果空闲的进程小于设定值,Apache会自动建立进程,如果服务器并发及负载大的话,可以考虑加大。
4.MaxSpareServers      10    #最大空闲进程数,如果空闲的进程大于设定值,Apache会自动kill掉多余的进程,如果服务器负载大的话,可以考虑加大。
5.MaxClients               
150    
#设定的是apache可以同时处理的请求,是对apache性能影响最大的参数,就是apache可以同时处理的请求数,就是说,如果有150个用户在访问,那么第151个用户就要等之前的访问结束后才能访问。
6.MaxRequestsPerChild   
0   
#每个子进程可处理的请求数,每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。0以为着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设置成非0值也有两点重要的好处。(1)可防止意外的内存泄露(2)在服务器负载下载的时候会自动减少子进程数。
7.</IFModule>

生产环境配置实例1:

1.</IFModule mpm_prefork_module>
2.StartServers               10
3.MinSpareServers            10
4.MaxSpareServers            15
5.ServerLimit                2000
6.MaxClients                 1000
7.MaxRequestsPerChild        5000
8.</IFModule>

2、worker模式

worker模式是apche2.x新引进来的模式,是线程与进程的结合,在worker模式下会有多个子进程,每个子进程又会有多个线程。每个线程在某个确定的时间只能维持一个连接。

工作原理:由主控制进程生成若干个子进程,而每个子进程中又包含固定的线程数,各个线程独立处理请求,同样为了不在请求到来时再生成线程,在配置文件中设置了最小和最大的空闲线程数及所有子进程中的线程总数,如果现有子进程中的线程总数不能满足并发及负载,控制进程将派生新的子进程。

安装方法:在配置编译的工程中,加入参数--with-mpm=worker,如果不加的话系统会采用默认prefork模式。

优点:内存占用比prefork模式低,适合高并发高流量HTTP服务。

缺点:假如一个线程崩溃,整个进程就会连同其任何线程一起“死掉”。由于线程共享内存空间,所以一个程式在运行时必须被系统识别为“每个线程都是安全的”。服务稳定性不如prefork模式。

配置参数说明:

1.</IFModule mpm_worker_module>
2.StartServers                    2  #最初建立的子进程
3.MaxClients                     150   #所有子进程中的线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。
4.MinSpareThreads           25    #最小空闲线程数,如果空闲的线程小于设定值,apache会自动建立线程,如果服务器负载大的话,可以考虑加大此参考值。
5.MaxSpareThreads            75    #最大空闲线程数,如果空闲的线程大于设定值,apache会自动kill掉多余的线程,如果服务器负载大的话,可以考虑加大此参考值。
6.ThreadsPerChild              
25   
#每个进程包含固定的线程数,此参数在worker模式中,是影响最大的参数,ThreadsPerChild的最大缺省值是64,如果负载较大,64是不够的。这时要显式使用threadlimit指令,它的最大缺省值是20000.
7.MaxRequestsPerChild    0    #功能同prefork模式
8.</IFModule>

常用配置参考:

生产环境配置实例1:

view sourceprint?
01.</IFModule mpm_worker_module>
02.StartServers             3
03.MaxClients               2000
04.ServerLimit              25
05.MinSpareThreads          50
06.MaxSpareThreads          200
07.ThreadLimit              200
08.ThreadsPerChild          100
09.MaxRequestsPerChild      0
10.</IFModule>

生产环境配置实例2:
 
view sourceprint?
01.</IFModule mpm_worker_module>
02.StartServers              5
03.MaxClients                9600
04.ServerLimit               64
05.MinSpareThreads           25
06.MaxSpareThreads           500
07.ThreadLimit               200
08.ThreadsPerChild           150
09.MaxRequestsPerChild       0
10.</IFModule>

生产场景配置实例3:

01.</IFModule mpm_worker_module>
02.StartServers               2
03.MaxClients                 500
04.ServerLimit                25
05.MinSpareThreads            25
06.MaxSpareThreads            75
07.ThreadsPerChild            25
08.MaxRequestsPerChild        0
09.</IFModule>

生产场景配置实例4:

01.</IFModule mpm_worker_module>
02.StartServers              3
03.MaxClients                1600
04.ServerLimit               25
05.MinSpareThreads           50
06.MaxSpareThreads           200
07.ThreadLimit               200
08.ThreadsPerChild           64
09.</IFModule>

worker模式下所能同时处理的请求总数是由子进程总数乘以Threadsperchild值决定的,应该大于等于maxclients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,如需加大时也需要显示声明serverlimit的值(最大值是20000)

特别说明:如果显示声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则apache将会自动调节到一个相应值(可能是个非期望值)。

数学表达:

1.MaxClient&lt;=总的进程数(ServerLimit)x线程数(ThreadsPerChild)
2.MaxClient%ThreadsPerChild=0

生产环境中我们需要开启httpd-mpm.conf配置行,这样才能实现并发链接数的增加。

1、开启httpd-mpm.conf配置行

这里我们要apache的主配置文件httpd.conf,找到包含httpd-mpm.conf的行,并解开注释

1.[root@c64-web /]# grep "httpd-mpm.conf" /usr/local/apache/conf/httpd.conf
2.#Include conf/extra/httpd-mpm.conf
3.[root@c64-web
/]# sed -i 's#\#Include conf/extra/httpd-mpm.conf#Include
conf/extra/httpd-mpm.conf#g' /usr/local/apache/conf/httpd.conf

注意:编译安装的,只有此行解开注释了,后面的修改才能生效。

2、修改httpd-mpm.conf配置

1)如果你的apache服务为worker模式,那么生产环境中可以选择上面worker模式的生产环境配置实例1的配置。

2)如果你的apache服务为prefork模式,那么生产环境中可以参考上面prefork模式的生产环境配置实例1的配置。

生产环境中,这里我建议大家选择worker模式。

十、开启防盗链

一些小网站为了盈利,通过盗链来实现对自己网站内容的丰富,这无疑加大了企业的空间和流量的成本,因此我们需要对apache进行防盗链的配置。

由于我们要用到mod_rewrite模块,因此我们需要先检测该模块是否安装,检测和安装方法与上面mod_deflate和mod_expires的一样,这里不多讲了。

防盗链配置:

一般我们都是将防盗链的配置,配置在虚拟主机里面,配置如下:

01.<VirtualHost *:80>
02.ServerAdmin 274546888@qq.com
03.DocumentRoot "/www/html"
04.ServerName www.sunsky.pw
05.ServerAlias sunsky.pw
06.CustomLog "|/usr/local/sbin/cronolog /app/logs/www_access_%Y%m%d.log" combined
07.ErrorLog "|/usr/local/sbin/cronolog /app/logs/www_error_%Y%m%d.log"
08.<IfModule rewrite_module>
09.RewriteEngine On
10.RewriteCond %{HTTP_REFERER} !^http://sunsky.pw/.*$ [NC]
11.RewriteCond %{HTTP_REFERER} !^http://sunsky.pw$ [NC]
12.RewriteCond %{HTTP_REFERER} !^http://www.sunsky.pw/.*$ [NC]
13.RewriteCond %{HTTP_REFERER} !^http://www.sunsky.pw$ [NC]
14.RewriteRule .*\.(gif|jpg|swf)$ http://www.sunsky.pw [R,NC]
15.</IfModule>
16.</VirtualHost>

如上配置之后,我们重启apache服务即可生效。

十一、禁止目录浏览

由于开启目录浏览会让我们整个目录下的内容全部都暴露到外面,因此我们必须要禁止目录浏览功能。当然一些目录开放给客户做下载的,可以忽略此项优化。我的http://down.sunsky.pw就是范例。

我们通过修改apache主配置文件httpd.conf中的<Directory></Directory>标签内的Options选项参数来实现禁用目录浏览。

实现方法有三种:

第一种:

1.<Directory /www/html>
2.AllowOverride None
3.Options FollowSymLinks   #不填写Indexes项,默认即为关闭。
4.Require all granted
5.</Directory>

第二种:
1.<Directory /www/html>
2.AllowOverride None
3.Options -Indexes #通过在Indexes前面加-来禁用此功能
4.Require all granted
5.</Directory>

第三种:
 
1.<Directory /www/html>
2.AllowOverride None
3.Options None    #禁用所有选项
4.Require all granted
5.</Directory>

十二、禁用AllowOverride选项,关闭.htaccess文件使用

首先是性能考虑,如果AllowOverride启用了.htaccess文件,则apache需要在每个目录中查找.htaccess文件。因此,无论是否真正用到,启用.htaccess都会导致服务器性能的下降。另外,对于每一个请求,都需要读取一次.htaccess文件。

其次是安全考虑,这样会允许用户自己修改服务器的配置,这可能会导致某些意想不到的修改,所以请认真考虑是否应当给予用户这样的特权。

1、禁用AllowOverride选项

我们通过修改apache主配置文件httpd.conf中的<Directory></Directory>标签内的AllowOverride选项参数来实现禁用目录浏览。

1.<Directory /www/html>
2.Options none
3.AllowOverride None    #禁止该选项,防止用户重复载入
4.Require all granted
5.</Directory>

通过该设置加快了服务器响应速度,因为它不再让每个请求去寻求每个目录的访问控制文件(.htaccess)

2、关闭.htaccess文件使用

默认在Unix平台下能够使用.htaccess来对目录权限进行规则定义,但是这是不安全的,建议关闭,默认的选项:

1.AccessFileName .htaccess

这里我们将它关闭注释掉

1.#AccessFileName .htaccess

全部目录权限定义使用httpd.conf中的定义,不使用.htaccess进行定义。

十三、apache的安全模块

我们需要对apache站点增加一些扩展的安全模块,如:mod_evasive20防DDOS、mod_limitipconn(针对单站点)配置、mod_security2防SQL注入等等之类的工具。

另外,下面是推荐给大家的几个工具。

1、makejail http://www.floc.net/makejail/

它是一个自动把建立jail所需要的程序放到jail内的软件,使用python编写,他有debian和openbsd的版本。

2、mod-security http://www.modsecurity.org/

它是apche的一个模块,它不仅可以实现过滤请求和日志审计等功能,而且可以防止SQLInjection和跨站脚本攻击等是个很不错的安全模块。

十四、apache目录及文件权限设置

在生产环境的网站架构中,我们应把资源文件,例如用户上传的图片及附件等和程序做好分离,最好是把上传程序也分离开来。这样才能更方便我们做好授权,保证apache服务和整个服务器安全。

这里我们设置apache的网站目录属主和属组是root,权限是755,文件的权限为644。

1.lrwxr-xr-x  1 root root   23 11月  5 02:04 apache -&gt; /usr/local/apache-2.4.6
2.drwxr-xr-x 14 root root 4096 11月  5 12:37 apache-2.4.6

并且,在对日志的授权商,我们要将属主和属组都设置为root,权限设置为700。

1.drwx------ 2 root root 4096 11月  5 02:46 logs

由于apache日志的记录是由apache的主进程进行操作的,而apache的主进程又是root用户启动的,所以这里设置700是不影响日志记录了。这也是日志记录的最安全的方法。

十五、禁止PHP解析指定站点的目录

企业的站点有时会提供用户进行上传操作,而用户上传文件的存放目录,我们是不能给php的解析权限的,否则会对apache服务和系统造成危害。

十六、使用tmpfs文件系统替代频繁访问的目录

tmpfs是一种基于内存的文件系统。它最主要的两个优势就是动态文件系统大小和速度快。因为典型的tmpfs文件系统会完全驻留在RAM中,读写几乎可以是瞬间的。即使用了一些交换分区,性能仍然是卓越的。因此对于那些频繁访问的目录,建议使用tmpfs文件系统进行替代。

十七、尽可能减少HTTP请求数

http请求是要开销的,想办法减少请求数自然可以提高网页速度。常用的方法,合并css,js(将一个页面中的css和js文件分别合并)以及Imagemaps和csssprites等。当然或许将css,js文件拆分成多个是因为css结构,共用等方面的考虑。阿里巴巴中文站当时的做法是开发时依然分开开发,然后在后台对js,css进行合并,这样对于游览器来说依然是一个请求,但是开发时仍然能还原成多个,方便管理和重复引用。yahoo甚至建议将首页的css和js直接写在页面文件里面,而不是外部引用。因为首页的访问量太大了,这么做可以减少两个请求数。而事实上国内的很多门户都是这么做的。

其中csssprites是指只用将页面上的背景图合并成一张,然后通过css的background-position属性定义不过的值来取他的背景。淘宝和阿里巴巴中文站目前都是这样做的。http://www.csssprites.com/这是个工具网站,它可以自动将你上传的图片合并,并给出对应的background-position坐标。并将结果以png和gif的格式输出。

十八、apache网站架构优化

好的网站架构是网站性能强大关键,更是网站安全的关键。

在生产环境中建议将程序页面服务器、图片附件服务器和上传服务器三者的功能尽量分离。

那么如何实现分离呢?

1、分离最佳方式是分别使用独立的服务器(需要程序支持)

2、次选方案在前端负载均衡器通过haproxy/nginx来根据用户请求的目录或扩展名来对后端的服务器发出请求。

本文出自 “蜘蛛侠” 博客,请务必保留此出处http://txidc.blog.51cto.com/9138217/1566436

apache配置文件参数优化的更多相关文章

  1. php.ini配置文件参数优化

    用于生产环境中的PHP需要对其进行优化,让PHP自身发挥更好的性能,除了写好PHP代码,还要配置好php-fpm以及php.ini调优.本文从内存.OPcache.上传.会话以及安全等方面讲解php. ...

  2. apache配置文件详解与优化

    apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...

  3. Linux中MySQL配置文件my.cnf参数优化

    MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的.MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的 ...

  4. MySQL配置文件my.cnf参数优化和中文详解

    Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...

  5. apache性能配置优化

    最近在进行apache性能优化设置.在修改apache配置文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯.以下的apache配置调优均是在red had的环境下进行的. httpd相关 ...

  6. Linux(Centos )的网络内核参数优化来提高服务器并发处理能力【转】

    简介 提高服务器性能有很多方法,比如划分图片服务器,主从数据库服务器,和网站服务器在服务器.但是硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题 ...

  7. Apache配置压缩优化时报错——undefined symbol: inflateEnd

    Apache配置压缩优化时报错——undefined symbol: inflateEnd 环境:CentOS 6.4 软件版本:httpd-2.4.6 apr-1.4.8 apr-util-1.5. ...

  8. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)

    按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...

  9. (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)

    LAMP搭建之二:apache配置文件详解(中英文对照版) # This is the main Apache server configuration file. It contains the # ...

随机推荐

  1. 关于mybatis 的mapper namespace 作用及解析

    因为语言惯性,大部分的namespace 在语言级别*来说是作为一种限定性标识来用,起到唯一或一类的标识.来看看语言(以PHP语言为例)上的namespace的作用实例 一.namespace 在PH ...

  2. java Servlet+mysql 调用带有输入参数和返回值的存储过程(原创)

    这个数据访问的功能,我在.NET+Mysql .NET+Sqlserver  PHP+Mysql上都实现过,并且都发布在了我博客园里面,因为我觉得这个功能实在是太重要,会让你少写很多SQL语句不说,还 ...

  3. psql 命令行使用

    如果觉得直接打开数据库修改繁琐,那么使用终端命令行是方便而又高大上的.下面来看看有哪些命令行: 说明:如果是正式的服务器则需要进行一个操作在执行下面的命令 ssh name @主机地址 -- name ...

  4. 简单可用好实现的 HA 高可用设计

    本文为作者原创,如需转载请注明出处. 1. 实现的功能 一主多备,自动选主 启动记录可查询 2. 前置需求 一台数据库用以记录,如 MySQL.Redis.MongoDB 等.关键是设计中的思想,用啥 ...

  5. 用css计算选中的复选框有几个

    上代码: <!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>计数< ...

  6. Node.js Web 开发框架大全《路由篇》

    这篇文章与大家分享优秀的 Node.js 路由(Routers)模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  7. 学习zepto.js(对象方法)[1]

    zepto也是使用的链式操作,链式操作:函数返回调用函数的对象. 但并不是所有的对象方法都可以进行链式操作,举几个例子:.size(),.html()|.text()//不传参数的情况下; 若非特殊说 ...

  8. 从angularJS看MVVM

    javascript厚积薄发走势异常迅猛,导致现在各种MV*框架百家争雄,MVVM从MVC演变而来,为javascript注入了全新的活力.我工作的业务不会涉及到angularJS[ng]这么重量级的 ...

  9. Java学习心得之 Linux下搭建Java环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建Java环境 1.前言2.JDK安装3.配置环境变量4. ...

  10. Object-c字符串操作

    字符串操作: -(void) testString{ NSString *str1 = @"some string"; NSLog(@"%@", str1); ...