LEMP构建高性能WEB服务器
更新时间:2023-08-05 23:40:01 阅读量: 实用文档 文档下载
- lemp是什么意思推荐度:
- 相关推荐
123
LEMP构建高性能WEB服务器
平台搭建环境 :
CentOS5.2 32/x86_64 GNU/Linux (32/64操作系统均通过,推荐使用 64位操作系统 )
目标: 构建高性的 LEMP环境提供 WEB服务
一、系统安装
1. 系统分区建议
/boot 100M ( 大约 100 左右 )
SWAP 物理内存的 2 倍 ( 如果你的物理内存大于 4G ,分配 4G 即可 )
/ 分区 15~20G
/usr/local 20G ( 用于安装软件 )
/data 剩余所有空间 .
【注】具体分区请根据相关业务划分,具体安装本文不作介绍安装过程中选择最少的包, 采用文本模式安装请不要安装图形。
2. 系统初始化
系统初始化脚本 (根据具体需求关闭不需要的服务 )
# shinit_network.sh //下载本文提供的 scripts.tar.gz包,即可找到此脚本 .
二、编译安装基本环境
1. 安装准备
1.1 系统软件包安装规范
系统约定
软件源代码包存放位置 /usr/local/src
源码包编译安装位置 (prefix) /usr/local/software_name
脚本以及维护程序存放位置 /usr/local/sbin
MySQL 数据库位置 /data/mysql/data(可按情况设置)
网站根目录 /data/www/wwwroot(可按情况设置)
虚拟主机日志根目录 /data/logs(可按情况设置)
Nginx运行账户 www:www
install_software_name.sh //存放编译参数脚本习惯将所有编译脚本存放 在 install_software_name.sh便于升级和更新软件 .
创建网站账号及相关存放目录
#add_user.sh
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data/www/wwwroot
chmod +w /data/www/wwwroot
chown www:www /data/www/wwwroot -R
复制代码
1.2 系统环境部署及调整
检查系统是否正常
#tail -n100 /var/log/messages(检查有无系统级错误信息)
#dmesg (检查硬件设备是否有错误信息)
#ifconfig(检查网卡设置是否正确)
#ping http://www.77cn.com.cn (检查网络是否正常)
1.3 使用 yum 程序安装所需开发包 (以下为标准的 RPM 包名称)
添加国内镜像源加速软件安装下载速度请参照 :http://www.77cn.com.cn/thread- 158-1-1.html
yum -y install ntp vim-enhanced gcc gcc-c++gcc-g77 flex bison autoconf automake bzip2-devel \
ncurses-devel openssl-devel libtool*zlib-devel libxml2-devel libjpeg-devel libpng-devel libtiff-devel \
fontconfig-devel freetype-devel libXpm-develgettext-devel curl curl-devel pam-devel \
e2fsprogs-devel krb5-devel libidnlibidn-devel
复制代码
1.4 定时校正服务器时钟 ,定时与中国国家授时中心授时服务器同步
#crontab -e
加入一行:
15 3 * * * /usr/sbin/ntpdate 210.72.145.44> /dev/null 2>&1
复制代码
1.5 下载编译相关的源码包 .
#vi list 在 list文件里填入以后下载地址列表 .
官方下载软件包名
:
#nginx
ftp://ftp.csx.
123
cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz
http://sysoev.ru/nginx/nginx-0.7.30.tar.gz
#PHP-GD-LIB
http://www.77cn.com.cn/releases/gd-2.0.35.tar.bz2
http://www.77cn.com.cn/pub/gnu/libiconv/libiconv-1.12.tar.gz
http://www.77cn.com.cn/sourceforge/mcrypt/libmcrypt-2.5.8.tar.bz2
http://www.77cn.com.cn/mhash/mhash-0.9.9.9.tar.gz?modtime=1228695303&big_mirror=0
http://www.77cn.com.cn/sourceforge/mcrypt/mcrypt-2.6.7.tar.gz
#MySQL
http://www.77cn.com.cn/get/Downloads/MySQL-5.1/mysql-5.1.30.tar.gz/from/http://mysql.cdpa.nsysu.edu.tw/
#php
http://www.77cn.com.cn/get/php-5.2.8.tar.bz2/from/http://www.77cn.com.cn/mirror
http://www.77cn.com.cn/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
#PHP-EXT
http://www.77cn.com.cn/get/memcache-2.2.4.tgz
http://www.77cn.com.cn/get/PDO_MYSQL-1.0.2.tgz
http://www.77cn.com.cn/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
复制代码
#wget -i list
2. 编译安装软件包
源码编译安装所需包 (Source)
1.1 编译安装 Nginx
tar zxvf pcre-7.8.tar.gz
cd pcre-7.8
./configure && make && makeinstall
复制代码
tar zxvf nginx-0.7.30.tar.gz
cd nginx-0.7.30
./configure --user=www --group=www--prefix=/usr/local/nginx/ --with-http_stub_status_module
--with-openssl=/usr/lib
make && make install
复制代码
1.2 编译安装 GD 及相关的 LIB.
tar jxvf gd-2.0.35.tar.bz2
cd gd-2.0.35
./configure --prefix=/usr/local/gd2&& make && make install
tar zxvf libiconv-1.12.tar.gz
复制代码
cd libiconv-1.12
./configure --prefix=/usr && make&& make install
tar jxvf libmcrypt-2.5.8.tar.bz2
复制代码
cd libmcrypt-2.5.8
./configure --prefix=/usr && make&& make install
复制代码
tar zxvf mhash-0.9.9.tar.gz
cd mhash-0.9.9
./configure --prefix=/usr && make&& make install
复制代码
# vi /etc/ld.so.conf
添加 /usr/lib
include ld.so.conf.d/*.conf
/usr/lib
复制代码
# ldconfig
【 注】 ldconfig 命令的用途 ,主要是在默认搜寻目录 (/lib和 /usr/lib)以及动态库配置文件 /etc/ld.so.conf内所列的目录 , 而当用户安装了一个新的动态链接库时 ,就需要手工运行这个命令。
tar zxvf mcrypt-2.6.7.tar.gz
[code]
cd mcrypt-2.6.7
./configure --prefix=/usr && make&& make install
复制代码
1.3 编译安装 MySQL
#sh install_mysql.sh
//具体脚本如下
:
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O3 -pipe"
CXXFLAGS="${CFLAGS}"
./configure \
"--prefix=/usr/local/mysql" \
"--localstatedir=/data/mysql/data" \
"--with-comment=Source" \
"--with-server-suffix=http://www.77cn.com.cn" \
"--with-mysqld-user=mysql" \
"--without-debug" \
"--with-big-tables" \
"--with-charset=gbk" \
"--with-collation=gbk_chinese_ci" \
"--with-extra-charsets=all" \
"--with-pthread" \
"--enable-static" \
"--enable-thread-safe-client" \
"--with-client-ldflags=-all-static" \
"--w
123
ith-mysqld-ldflags=-all-static" \
"--enable-assembler" \
"--with-plugins=all" \
"--without-ndb-debug"
make
make install
useradd mysql -d /data/mysql -s/sbin/nologin
/usr/local/mysql/bin/mysql_install_db--user=mysql
cd /usr/local/mysql
chown -R root:mysql .
mkdir -p /data/mysql/data
chown -R mysql /data/mysql/data
cp share/mysql/http://www.77cn.com.cnf /etc/http://www.77cn.com.cnf
cp share/mysql/mysql.server/etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
/etc/rc.d/init.d/mysqld start
cd /usr/local/mysql/bin
for i in *; do ln -s /usr/local/mysql/bin/$i/usr/bin/$i; done
复制代码
【注】编译 mysql前请正确配置好主机名,否则不能正常启动 .
例如 :
[root@lempmysql-5.1.30 ]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomainlocalhost
192.168.1.104 http://www.77cn.com.cn
复制代码
【注】将本文提供下载的 scripts.tar.gz包中的 http://www.77cn.com.cnf替换你的 /etc/http://www.77cn.com.cnf,并根据你的硬件参数做相关调整 ,并可以利用包中的 tuning-primer.sh 做初步性能调优。
1.4 编译安装 PHP-FastCGI
tar jxvf php-5.2.8.tar.bz2
gzip -cd php-5.2.8-fpm-0.5.10.diff.gz| patch -d php-5.2.8 -p1
cd php-5.2.8
复制代码
#sh install_php.sh
//具体脚本如下
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott-O3 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
./configure \
"--prefix=/usr/local/php-fcgi" \
"--enable-fastcgi" \
"--enable-fpm" \
"--enable-discard-path" \
"--enable-force-cgi-redirect"\
"--with-config-file-path=/usr/local/php-fcgi/etc" \
"--enable-zend-multibyte" \
"--with-mysql=/usr/local/mysql" \
"--with-libxml-dir" \
"--with-xmlrpc" \
"--with-gd=/usr/local/gd2" \
"--with-jpeg-dir" \
"--with-png-dir" \
"--with-bz2" \
"--with-freetype-dir" \
"--with-iconv-dir" \
"--with-zlib-dir" \
"--with-curl" \
"--with-curlwrappers" \
"--with-openssl" \
"--with-mcrypt" \
"--with-mhash" \
"--enable-pcntl" \
"--enable-sockets" \
"--enable-sysvsem" \
"--enable-inline-optimization" \
"--enable-soap" \
"--enable-gd-native-ttf" \
"--enable-ftp" \
"--enable-mbstring" \
"--enable-exif" \
"--disable-debug" \
"--disable-ipv6"
#sed -i 's#-lz -lm -lxml2-lz -lm -lxml2 -lz -lm -lcrypt#& -liconv#' Makefile
makeZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist/usr/local/php-fcgi/etc/php.ini
复制代码
1.5 编译安装 PHP 扩展
tar zxvf memcache-2.2.4.tgz
cd memcache-2.2.4
/usr/local/php-fcgi/bin/phpize
./configure--with-php-config=/usr/local/php-fcgi/bin/php-config
make && make install
复制代码
tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
/usr/local/php-fcgi/bin/phpize
./configure --enable-eaccelerator=shared--with-php-config=/usr/local/php-fcgi/bin
123
/php-config
make && make install
复制代码
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php-fcgi/bin/phpize
./configure --with-php-config=/usr/local/php-fcgi/bin/php-config--with-pdo-mysql=/usr/local/mysql
make && make install
复制代码
1.6 配置 php.ini
#sh init_php.sh
//执行 PHP配置脚本
【注】下载包中提供了此脚本 .主要是添加自动添加 PHP扩展及 PHP安全相关设置,用户可以编辑此文件根据具体情况做调整。
#vi /usr/local/php-fcgi/etc/php.ini //在最后加上
[eAccelerator]
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/cache_tmpfs/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
http://www.77cn.com.cnpress="1"
http://www.77cn.com.cnpress_level="9"
复制代码
1.7 安装 ZendOptimizer-3.3.3
tar zxvf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-x86_64
./install
复制代码
解压后进入目录 ./install,安提示选择相关的目录及配置文件存放目录即可 .
1.8 配置 php-fpm.conf
rm -rf /usr/local/php-fcgi/etc/php-fpm.conf
将本文提供的 php-fpm.conf文件上传此目录 .
/usr/local/php-fcgi/sbin/php-fpm start //启动服务查看是否报错 ,不报错继续。
1.9 配置 nginx/conf
#cd /usr/local/nginx
#mv conf conf_old
#mkdir -p conf/{vhost,conf_example}
复制代码
# 将本文提供的 conf 目录替换成当前 conf 目录 . 在下载的 scripts.tar.gz 包里 .
目录结构介绍 :
/usr/local/nginx/conf //存放主配置文件
/usr/local/nginx/conf/vhost //存放虚拟主机配置文件 .
/usr/local/nginx/conf/conf_example //存放一些经典的配置示例 {虚拟主机,防盗链,访问控制 ,重定向,负载均衡等 }
[root@lempmysql]# /usr/local/nginx/sbin/nginx –t //验证是否有配置语法错误 .
2009/01/06 09:36:12 [info] 23353#0: the configuration file/usr/local/nginx//conf/nginx.conf syntax is ok
2009/01/06 09:36:12 [info] 23353#0: the configuration file/usr/local/nginx//conf/nginx.conf was tested successfully
复制代码
#chmod a+x /etc/init.d/nginx //将文本提供的 nginx脚本上传至 /etc/init.d/目录下
【注】此脚本已经含有 php-fpm的管理 .直接利用此脚本即可管理所有服务
.
# /etc/init.d/nginx stop //停止nginx服务
# /etc/init.d/nginx start //启动nginx服务
复制代码
2.0 验证服务环境
配置完成虚拟主机以后,编辑 php.ini把 disable_functions里的 phpinfo去掉,仍后重启服务,利用 Phpinfo函数查看环环配置。
编写 phpinfo.php
<?php
phpinfo();
?>
复制代码
http://ip/
123
phpinfo.php
即可查看当前配置环境 . 查看完成后出于安全考虑请再将此函数禁掉 .
三、服务器简单优化
1. 简单优化磁盘 I/O
# vi /etc/fstab //加入notaime
LABEL=/date /data ext3 defaults,noatime 0 2
复制代码
#mount -oremount /data //重新挂载/data分区.
2. 简单优化 Linux 内核参数 (更多的请根据服务器状况做相关调整)
#vi/etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
复制代码
#sysctl –p
复制代码
3. 其它优化根据具体情况还有硬件情况做调整 .
更多的优化请参考 : http://www.77cn.com.cn/forum-31-1.html 或联系我们 .
四、相关参考及介绍 .
1.Nginx Tips(Nginx 应用技巧含优化 ) http://www.77cn.com.cn/thread-1241-1-1.html
2.LEMP构建高性能 WEB服务器(第二版) http://www.77cn.com.cn/thread-123-1-1.html
3. 如果你想构建可用集群方案请参考 http://www.77cn.com.cn/thread-1402-1-1.html
4.如果你想学习服务器监控请参考 http://www.77cn.com.cn/forum-20-1.html
五、相关软件包及脚本下载
http://www.77cn.com.cn/lemp/scripts.tar.gz 文中所有脚本及配置范例。
http://www.77cn.com.cn/lemp/lemp.tar.gz 所有软件包如果发现不能下载请去官方下载。
六、常见错误(疑问)解答 [ 守住每一天 ] 补充 :
1、eaccelerator 与 xcache 差在那?
当缓存的 PHP二进制文件太多,以至于超过 shm_size后, eAccelerator在性能方面要高于 Xcache
2、按文档安装完成了结果出 502Bad Gateway ?
请查看 http://www.77cn.com.cn 相关版块
3、 nginxstatus 解释
active connections -- 对后端发起的活动连接数
server accepts handled requests -- nginx 总共处理了 43629083 个连接 , 成功创建 43629083 次握手
(证明中间没有失败的 ), 总共处理了 259552136 个请求
reading -- nginx 读取到客户端的 Header信息数
writing -- nginx 返回给客户端的 Header信息数
waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading +writing),意思就是 Nginx已经处理完成,
正在等候下一次请求指令的驻留连接。在访问效率高,请求很快被处理完毕的情况下, Waiting数比较多是正常的。
如果 reading + writing数较多,则说明并发访问量非常大,正在处理过程中。
4、 EA 或 xcache和 zend 能一起使用?
可以
5、按脚本执行 sed -i -e 's/^LANG=.*/LANG="en"/' /etc/sysconfig/i18n 后。
可能会遇到如下错误:
perl: warning: Please checkthat your locale settings:
LANGUAGE =
123
(unset),
LC_ALL = (unset),
LANG ="en_US.UTF-8:en_US:en_US.ISO-8859-1"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
解决办法:
LC_ALL=C;exportLC_ALL ; LC_CTYPE=C ; export LC_CTYPE;
正在阅读:
LEMP构建高性能WEB服务器08-05
医院感染试题题库及答案04-07
穿越时空作文600字06-20
研究生自然辩证法概论05-23
梁根林讲座01-28
美丽的内蒙古作文350字07-07
钳工实际操作考试题06-06
采购质量管理制度06-05
20XX护理部工作计划01-13
应收账款管理例题03-03
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 高性能
- 构建
- 服务器
- LEMP
- WEB