LNMPlinux+nginx+mysql+php服务器环境配置.docx
- 文档编号:24029796
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:18
- 大小:49.61KB
LNMPlinux+nginx+mysql+php服务器环境配置.docx
《LNMPlinux+nginx+mysql+php服务器环境配置.docx》由会员分享,可在线阅读,更多相关《LNMPlinux+nginx+mysql+php服务器环境配置.docx(18页珍藏版)》请在冰豆网上搜索。
LNMPlinux+nginx+mysql+php服务器环境配置
LNMP(linux+nginx+mysql+php)服务器环境配置
一、简介
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engineX”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器.Nginx是由俄罗斯人IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过三年了。
IgorSysoev在建立的项目时,使用基于BSD许可。
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。
Nginx同时也可以作为7层负载均衡服务器来使用。
Nginx0.8.46+PHP5.2.14(FastCGI)可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
Nginx超越Apache的高性能和稳定性,使得国内使用Nginx作为Web服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道,六间房、等视频分享网站,Discuz!
官方论坛、水木社区等知名论坛,盛大在线、金山逍遥网等网络游戏网站,豆瓣、人人网、YUPOO相册、金山爱词霸、迅雷在线等新兴Web2.0网站。
为什么Nginx的性能要比Apache高得多?
这得益于Nginx使用了最新的epoll(Linux2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。
目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。
下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:
假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。
select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。
而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。
如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。
同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。
Nginx的官方中文维基:
http:
//wiki.nginx.org/NginxChs
二、系统环境
系统平台:
RHEL5.4(系统要求:
Linux2.6+内核)
Nginx版本:
nginx/1.0.15
Mysql版本:
5.1.35-logSourcedistribution
Php版本:
php-5.2.10
三、安装准备
1、获取相关开源程序并安装
RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包RedHat可以直接利用CentOS的RPM包安装。
可以用rpm安装以下包,如有关联包,安装时一起安装。
gccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fsprogse2fsprogs-develkrb5krb5-devellibidnlibidn-developensslopenssl-developenldapopenldap-develnss_ldapopenldap-clientsopenldap-servers
以上包如果安装了的话,不需要再安装了。
2、RPM包搜索网站
3、nginx软件包准备
Nginx所需要的软件包可以从下面位置获取,也可以记住名字在google中搜索。
nginx-0.7.61.tar.gz
php-5.2.10.tar.gz
php-5.2.10-fpm-0.5.11.diff.gz
mysql-5.1.35.tar.gz
libiconv-1.13.tar.gz
libmcrypt-2.5.8.tar.gz
mcrypt-2.6.8.tar.gz
memcache-2.2.5.tgz
mhash-0.9.9.9.tar.gz
pcre-7.9.tar.gz
eaccelerator-0.9.5.3.tar.bz2
PDO_MYSQL-1.0.2.tgz
ImageMagick.tar.gz
imagick-2.2.2.tgz
四、安装PHP5.2.10(FastCGI模式)
编译安装PHP5.2.10所需的支持库:
1.安装libiconv
对文本进行编码间的转换,用它来处理中文各种编码之间的转换。
#tarzxvflibiconv-1.13.tar.gz
#cdlibiconv-1.13/
#./configure--prefix=/usr/local
#make
#makeinstall
cd../
2.安装libmcrypt实现加密功能的库。
#tarzxvflibmcrypt-2.5.8.tar.gz
#cdlibmcrypt-2.5.8/
#./configure
#make
#makeinstall
#/sbin/ldconfig
#注:
这里不要退出去了。
#cdlibltdl/
#./configure--enable-ltdl-install
#make
#makeinstall
#cd
3.安装mhash(哈稀函数库)
#tarzxvfmhash-0.9.9.9.tar.gz
#cdmhash-0.9.9.9/
#./configure
#make
#makeinstall
#cd../
ln-s/usr/local/lib/libmcrypt.la/usr/lib/libmcrypt.la
ln-s/usr/local/lib/libmcrypt.so/usr/lib/libmcrypt.so
ln-s/usr/local/lib/libmcrypt.so.4/usr/lib/libmcrypt.so.4
ln-s/usr/local/lib/libmcrypt.so.4.4.8/usr/lib/libmcrypt.so.4.4.8
ln-s/usr/local/lib/libmhash.a/usr/lib/libmhash.a
ln-s/usr/local/lib/libmhash.la/usr/lib/libmhash.la
ln-s/usr/local/lib/libmhash.so/usr/lib/libmhash.so
ln-s/usr/local/lib/libmhash.so.2/usr/lib/libmhash.so.2
ln-s/usr/local/lib/libmhash.so.2.0.1/usr/lib/libmhash.so.2.0.1
4.安装mcrypt
#tarzxvfmcrypt-2.6.8.tar.gz
#cdmcrypt-2.6.8/
#/sbin/ldconfig
#./configure
#make
#makeinstall
#cd../
注:
DG库所需要安装包,可以采用rpm包来安装,减少时间,由于php已经集成GD库,但前提支持包应事先安装,如zlib,png,jpeg,freetype等。
如果完全想采用tar包安装的话,请参考lamp相关内容。
五、编译安装MySQL
建立mysql组,建立mysql用户并且加入到mysql组中
#groupaddmysql
#useraddmysql-gmysql
[root@linuxlnmp]#tarzxvfmysql-5.1.35.tar.gz
[root@linuxlnmp]#cdmysql-5.1.35
#./configure--prefix=/usr/local/mysql
--without-debug
--with-extra-charsets=gbk
--with-extra-charsets=all
--enable-assembler
--with-pthread
--enable-thread-safe-client
--with-mysqld-ldflags=-all-static /*不带共享库的形式编译mysqld*/
--with-client-ldflags=-all-static
--with-big-tables
--with-readline /*要采用rpm方式安装ncurses或tar包安装*/
--with-ssl /*要采用rpm方式安装openssl*/
--with-embedded-server
--enable-local-infile
--with-plugins=innobase
#make&&makeinstall
#/usr/local/mysql/bin/mysql_install_db--user=mysql
#以mysql身份初始化数据库
#cp./support-files/mysql.server/etc/init.d/mysql
#复制Mysql启动服务至系统
#cp./support-files/my-f/etc/f
#chmod755/etc/init.d/mysql
#cd/usr/local/mysql/ #切换到cd/usr/local/mysql/目录下
#chown-Rmysql. #改变当前目录下的所有者为mysql用户
#chown-Rmysqlvar #修改数据库目录的权限
#chgrp-Rmysql. #改变当前目录下的mysql用户的文件为mysql组
#/usr/local/mysql/bin/mysqld_safe--user=mysql&
#/usr/local/mysql/bin/mysqladmin-urootpassword'admin'#设置管理员密码
[root@linuxhtml]#/usr/local/mysql/bin/mysql-uroot-p #测试密码输入
Enterpassword:
WelcometotheMySQLmonitor. Commandsendwith;or\g.
YourMySQLconnectionidis5
Serverversion:
5.1.35-logSourcedistribution
Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.
mysql>\q /*退出mysql*/
#chkconfig--addmysql #添加mysqld服务到系统
#chkconfigmysqlon #打开myslqd服务
#servicemysqlstart #启动Mysql
#/usr/local/mysql/bin/mysqladminshutdown #关闭数据库
#查看mysql端口的打开情况
#netstat-tunlp
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddress ForeignAddress State PID/Pname
tcp 0 00.0.0.0:
3306 0.0.0.0:
* LISTEN 2936/
#查看是否启动:
#ps-ef|grepmysql
注:
在配置过程中,整体的配置思路从上往下,其中的一些功能可以用在实际的配置过程中,主要用于测试环节中。
Mysql的优化部分这里没有给出,需要参考其它资料。
六、编译安装PHP
这个地方是最重要的,因为默认情况下Nginx和PHP他俩之间是一点感觉没有的。
在之前搭建过Apache+PHP,Apache+PHP编译后生成的是模块文件,而Nginx+PHP需要PHP生成可执行文件才可以,所以要利用fastcgi技术来实现Nginx与PHP的整合,这个只要我们安装时启用FastCGI即可。
此次我们安装PHP不仅使用了FastCGI,而且还使用了PHP-FPM这么一个东东,PHP-FPM说白了是一个管理FastCGI的一个管理器,它作为PHP的插件存在,在安装PHP时要想使用PHP-FPM就需要把PHP-FPM以补丁的形式安装到PHP中,而且PHP要与PHP-FPM版本一致,这是必须的,切记!
#tarzxvfphp-5.2.10.tar.gz
#gzip-cdphp-5.2.10-fpm-0.5.11.diff.gz|patch-dphp-5.2.10-p1
#将php-5.2.10-fpm-0.5.11.diff.gz以补丁形式加到php-5.2.10里面
#cdphp-5.2.10/
#./configure--prefix=/usr/local/php
--with-config-file-path=/usr/local/php/etc
--with-mysql=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
--with-iconv-dir=/usr/local
--with-freetype-dir
--with-jpeg-dir
--with-png-dir
--with-zlib
--with-gd
--enable-gd-native-ttf
--with-libxml-dir=/usr
--enable-xml
--disable-rpath
--enable-discard-path
--enable-safe-mode
--enable-bcmath
--enable-shmop
--enable-sysvsem
--enable-inline-optimization
--with-curl
--with-curlwrappers
--enable-mbregex
--enable-fastcgi
--enable-fpm
--enable-force-cgi-redirect
--enable-mbstring
--with-mcrypt
--with-openssl
--with-mhash
--enable-pcntl
--enable-sockets
--with-ldap
--with-ldap-sasl
--with-xmlrpc
--enable-zip
--enable-soap
--without-pear
注:
Nginx+PHP整合,在安装时必须启用-–enable-fastcgi和--enable-fpm,这两个选项是做什么的上面已经描述。
执行完后系统会提示-–enable-fastcgi是一个未知选项,我们不必理会。
#注:
make的时候一定要加上后面的参数,才能成功。
#makeZEND_EXTRA_LIBS='-liconv'
#makeinstall
#cpphp.ini-dist/usr/local/php/etc/php.ini
#cd../
注:
在安装过程中采用了tar包与rpm混合安装的情况,对于库的指定确实出现了很大的麻烦。
如果采用rpm安装的话,不需要指定支持包的位置就可以了,tar安装的话,需要指定安装位置。
七、编译安装PHP5扩展模块
1.安装memcache
#tarzxvfmemcache-2.2.5.tgz
#cdmemcache-2.2.5/
#/usr/local/php/bin/phpize
#./configure--with-php-config=/usr/local/php/bin/php-config
#make
#makeinstall
#说明:
memcache库的位置
Installingsharedextensions:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
#cd..
2.安装eacceleratorphp加速
#tarjxvfeaccelerator-0.9.5.3.tar.bz2
#cdeaccelerator-0.9.5.3/
#/usr/local/php/bin/phpize
#./configure--enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
#make
#makeinstall
Installingsharedextensions:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
#cd../
3.安装PDO_MYSQL(数据库连接的支持)
#tarzxvfPDO_MYSQL-1.0.2.tgz
#cdPDO_MYSQL-1.0.2/
#/usr/local/php/bin/phpize
#./configure--with-php-config=/usr/local/php/bin/php-config
--with-pdo-mysql=/usr/local/mysql
#make
#makeinstall
Installingsharedextensions:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
#cd../
4.安装ImageMagick是Linux下非常强大的图象处理函数与GD类似.
#tarzxvfImageMagick.tar.gz
#cdImageMagick-6.5.1-2/
#./configure
#make
#makeinstall
#cd../
5.安装imagick(连接PHP和ImageMagick的通道)
#tarzxvfimagick-2.2.2.tgz
#cdimagick-2.2.2/
#/usr/local/php/bin/phpize
#./configure--with-php-config=/usr/local/php/bin/php-config
#make
#makeinstall
Installingsharedextensions:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
#cd../
6.修改php.ini文件,已使php支持扩展的功能
vi/usr/local/php/etc/php.ini
查找
extension_dir="./"
修改为
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
并在此行后增加以下几行,然后保存:
extension="memcache.so"
extension="pdo_mysql.so"
extension="imagick.so"
再查找output_buffering=Off
修改为output_buffering=On
7.配置eAccelerator加速PHP:
mkdir-p/usr/local/eaccelerator_cache
vi/usr/local/php/etc/php.ini
到配置文件的最末尾,粘上以下内容:
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
press="1"
press_level="9"
八、PHP-fpm配置
1.创建php-fpm配置文件
php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi:
在/usr/local/php/etc/目录中创建php-fpm.conf文件,也可以在原有的基础上进行修改。
如果您安装Nginx+PHP用于程序调试
请将以下的
说明:
创建www用户与组,这里创建了下面就不用创建了。
#/usr/sbin/groupaddwww-g48
#/usr/sbin/useradd-u
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LNMPlinux nginx mysql php 服务器 环境 配置