APP下载

架构LAMP系统的参数配置优化

2016-10-19钱红雷

中国管理信息化 2016年6期

钱红雷

[摘 要]LAMP(Linux+Apache+MySQL+PHP)网站架构是性能非常稳定的Web框架,该框架包括:Linux操作系统、Apache网络服务器、MySQL数据库、PHP编程语言。本文描述的是LAMP搭建过程中如何编译软件的参数和配置文件设置,从而达到LAMP性能优化的目的。

[关键词]Linux;Apache;PHP;Mysql;httpd

doi:10.3969/j.issn.1673 - 0194.2016.06.120

[中图分类号]TP393.05 [文献标识码]A [文章编号]1673-0194(2016)06-0-01

本文从Linux系统、Mysql数据库、安装Apache和php三个方面入手,分别描述了LAMP系统是如何进行参数配置和性能优化的。

1 Linux系统优化

1.1 关闭无用的后台守护进程

运行ntsysv选择启动哪些服务,从而节省物理内存消耗。

1.2 减少终端连接数

根据自己的实际需求,运行vi /etc/inittab修改。

1.3 编译内核启动配置文件

#vi /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1 //防范少量SYN攻击

net.ipv4.tcp_tw_reuse = 1 //将TIME-WAIT sockets重新用于新的TCP连接

net.ipv4.tcp_tw_recycle = 1 //开启TIME-WAIT sockets的快速回收

net.ipv4.tcp_keepalive_time = 1200 //TCP发送keepalive消息的频度

net.ipv4.ip_local_port_range = 1024 65000 //表示用于向外连接的端口范围

net.ipv4.tcp_max_syn_backlog = 8192 //容纳更多等待连接的网络连接数

2 设置Mysql数据库

2.1 修改数据库最大连接数和查询缓存

#vi /etc/my.cnf

max_connections=20000 //设置mysql数据库最大连接数

query_cache_size=32M //取决于查询的实际情况,但最好设置为1024的倍数

query_cache_type=1 //将会缓存所有的结果

2.2 禁止远程连接数据库

确认Mysql数据库的host设置为localhost。

2.3 用户目录权限限制

确保mysqld运行时,只使用对数据库目录具有读或写权限的linux用户来运行。

# chown -R root /usr/local/mysql/ //mysql主目錄给root

# chown -R mysql.mysql /usr/local/mysql/var //确保数据库目录权限所属mysql用户

3 优化编译Apache和PHP

使用DSO动态编译

3.1 编译Apache

因为Apache是1.3.*的版本非常稳定,所以用这个版本编译,编译前把Apache的最大连接数修改为2000(linux默认256)

#vi httpd.h

define HARD_SERVER_LIMIT 50000

#./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max --enable-module=most

#make

#make install

3.2 编译Apache的限制IP并发数的模块

#/usr/local/apache/bin/apxs –c –i –a mod_limitipconn.c

3.3 编译PHP

#./configure --prefix=/usr/local/php --with-mysql --with-apxs=/usr/local/apache/bin/apxs --with-xml --enable-ftp --enable-force-cgi-redirect --enable-trans-sid --enable-track-vars --enable-url-includes --enable-sockets --with-gd=/usr/local/gd --with-zlib-dir=/usr/lib --with-gdbm-dir=/usr/lib

#make

#make install

3.4 编辑httpd.conf文件

查找

#Options Indexes FollowSymLinks MultiViews //去掉"Indexes"

查找

在此范围添加

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

把#ExtendedStatus On这一行注释掉

添加

#this is my new mod

MaxConnPerIP 1(每个IP用户的最大连接数)