您的位置:首页 > 运维架构 > Linux

Lnmp之源码搭建

2013-09-09 19:07 274 查看
Lnmp之源码搭建环境说明Lnmp就是linux +nginx+mysql+php的简称,操作系统用linux,web服务器nginx,数据库服务器是mysql,网页语言是php。有时也叫lnfmp,就是linux +nginx+mysql+fastcgi+php。Fastcgi 是nginx连接php的接口工具,Fast CGI 是web服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上,比如nginx服务器。它的运行服务程序是php-fpm,PHP-fpm 是 一个 PHP FastCGI 进程管理器,Php-fpm可以和任何支持远端fastCGI的web server工作。Nginx 是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器其特点是占有内存少,并发能力强。Nginx 是采用epool机制来作为工作模式,也就是事件查看机制。Apache服务器是靠进程来处理用户的请求,派生多个进程,每个进程理论上最多每秒可以接受1024个并发连接请求,并且要为每个进程开辟内存空间,apache服务器处理请求的速度慢,并且占用大量的内存空间和cpu。Nginx 是靠线程处理用户的请求,一个进程可以派生出N个线程,这N个线程占用一个内存空间,来处理用户的请求,nginx理论上每秒可以处理的并发连接请求是65535个,所以nginx是占有内存少,并发能力强,处理数度快,可以做反向代理服务器,用户把请求发给nginx,nginx再把请求转发给外面的多台web服务器,这样可以实现web服务器可以接受大量的请求。也可以作为负载均衡服务器,对外面的web服务器进行服务。环境搭建Mysql 服务器:采用二进制版本是mysql-5.5.15-linux2.6-i686.tar.gzPhp :采用源码版本是php-5.3.7.tar.bz2Linux系统:rhel 5.4Nginx服务器:nginx-1.0.11.tar.gzLibevent:libevent-2.0.16-stable.tar.gzLibevent是nginx采用的事件触发机制所需要的库,通知nginx某一个线程已经处理好用户的请求,需要对用户进行反馈。 拓扑图:

安装过程一:安装二进制的mysql数据库源码是mysql-5.5.15-linux2.6-i686.tar.gz先解压到/usr/local/进入到目录中查看解压形成的目录以及文件

打开INSTALL-BINARY文件,这个文件里包含二进制安装的基本过程

创建系统账号和组mysql,把账号加入到组mysql里面给mysql的源目录创建符号链接为mysql修改mysql的当前目录下的所有者和所属组执行scripts/mysql_install_db 这个脚本来安装数据库和表然后把当前目录下的所有者改为管理员身份root但是mysql服务的运行者mysql对data目录要有操作的权限,所以data目录的所有者还是mysql拷贝mysql的配置文件的样例文件成mysql的配置文件名称是my.cnf运行/bin/mysqld_safe 这个程序可以保护mysql的数据,这个是可选项拷贝mysql的服务控制脚本在/support-files/mysql.server 到/etc/init.d/目录下名称是mysqld





打开系统环境变量配置文件添加/usr/local/mysql/bin这个路径时bin目录下的可执行的二进制文件或程序在任何路径下都可以运行

切换到lib目录下面,有库文件,要想让系统调用库文件,需要库文件加载到缓存文件里面缓存文件是ld.so.cache,在/etc/ld.so.conf.d目录下面创建一个任意以.conf格式结尾的文件比如说mysql.conf,内容指明库文件所在的目录。在/etc/man.conf 文件里添加mysql 的手册 ,手册路径是/usr/local/mysql/man给头文件include 做符号链接,连接到/usr/include/mysql添加mysql服务脚本my

sqld 到chkconfig,chkconfig主要用来更新(启动或停止)和查询系统服务在某种运行级别下的状态信息。 二:
安装Libevent源码Libevent是nginx采用的事件触发机制所需要的库,通知nginx某一个线程已经处理好用户的请求,需要对用户进行反馈。 libevent的官网 libevent.org 最新版本是2.0.18先解压到/usr/local/src/目录下然后直接执行./configure --prefix=/usr/local/ 指明安装路径 Make Make install切换到/usr/local/lib目录下会形成很多链接的动态库因为这直接安装到/usr/local/目录下可执行的二进制文件或程序在/usr/local/bin或/usr/local/sbin目录下系统环境变量有这两个路径,所以不需要添加路径/usr/local/bin/目录下形成一个可执行的程序event_rpcgen.pyLdconfig 刷新缓存文件把libevent的动态库加载到缓存文件中切换到/usr/local/include目录下形成很多头文件给include文件做符号链接

三:安装nginx服务器源码是nginx-1.0.11.tar.gz在安装nginx服务器时首先要安装pcre ,pcre是一个正则表达式的函数库,多应用于开源软件之中,比如说web服务器和php。挂载光盘安装pcre的rpm包,安装好之后,安装nginx的源代码先解压到/Usr/local/src目录下创建系统用户和组 groupadd -r nginx useradd -r -g nginx -s /bin/false -M nginx 配置和安装指明安装路径,配置文件路径等参数 ./configure \ --conf-path=/etc/nginx/nginx.conf \ 配置文件所在的目录 --error-log-path=/var/log/nginx/error.log \ 用户访问的错误日志所在的路径 --http-log-path=/var/log/nginx/access.log \ 用户访问的正确日志所在的路径 --pid-path=/var/run/nginx/nginx.pid \ nginx进程id 的文件所在的目录 --lock-path=/var/lock/nginx.lock \ nginx的锁文件 --user=nginx \ 指明服务的运行者 --group=nginx \ 指明服务的运行组 --with-http_ssl_module \ 支持ssl协议,安装时动态加载ssl模块 --with-http_flv_module \ 支持的格式 --with-http_stub_status_module \ 支持本地状态的信息输出 --with-http_gzip_static_module \ 支持解压缩 --http-client-body-temp-path=/var/tmp/nginx/client/ \ 客户端访问时候临时目录 --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ nginx做代理时 的临时目录 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ fastcgi 工作的临时目录 --with-pcre 支持pcre Make make install安装好之后会形成两个目录html 和sbin,html是nginx的站点主目录,sbin目录是nginx的服务程序nginx所在的目录所以把/usr/local/ngnix/sbin这个目录加入到系统环境变量中,让nginx这个服务程序nginx在任何路径下都可以执行。手工编辑nginx的控制脚本

添加nginx服务脚本nginx 到chkconfig,chkconfig主要用来更新(启动或停止)和查询系统服务在某种运行级别下的状态信息。

四::安装好之后下面是php-5.3.7.tar.bz2源码的安装Nginx 服务器与php的连接是通过fastCGI,Fast CGI 是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上,比如apache服务器。它的运行服务程序是php-fpm,PHP-fpm 是 一个 PHP FastCGI 进程管理器,Php-fpm可以和任何支持远端fastCGI的web server工作。步骤跟nginx服务器差不多,先解压到/usr/local/src目录下 ,进入到目录里1: 先解压到/usr/local/src,然后执行./configure ./configure \ --prefix=/usr/local/php \ 指明php的安装目录 --enable-fpm \ php支持fastcgi --enable-sockets \ 指明fpm为服务程序 --with-mysql=/usr/local/mysql \ 指明mysql的安装目录 --with-mysqli=/usr/local/mysql/bin/mysql_config \ 指明mysql_config 接口程序的路径 --enable-mbstring \ 支持多字符串 --enable-xml \ 支持xml格式 --with-png-dir \ 支持png格式的图片 --with-png \ --with-jpeg-dir \ 支持jpeg格式的图片 --with-zlib \ 支持解压缩 --with-freetype-dir \ --with-config-file-path=/etc/php \ php的初始化文件所在的目录 --with-config-file-scan-dir=/etc/php5.d php php额外安装的文件所在的目录Make Make install安装好之后php目录下会形成一些目录bin sbin lib 等目录所以把/usr/local/php/sbin /usr/local/hph/bin这两个目录加入到系统环境变量中,让bin sbin目录下的二进制文件或程序在任何路径下都可以执行。打开/etc/profile系统变量文件添加路径 然后执行./etc/profile 文件在/etc/man.conf 文件里添加php 的手册 ,手册路径是/usr/local/php/man切换到lib目录下面,没有库模块,所以不需要把lib加载到缓存文件添加fpm服务脚本php-fpm 到chkconfig,chkconfig主要用来更新(启动或停止)和查询系统服务在某种运行级别下的状态信息。

2:php.ini 文件 进入源码目录/usr/local/src/php-5.3.7 cp php.ini-production /etc/php/php.ini 3: php-fpm的控制脚本 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 改变权限 chmod a+x /etc/init.d/php-fpm 4:产生php-fpm的配置文件 进入php的安装目录usr/local/php/etc目录下 cp php-fpm.conf.default php-fpm.conf 5: 启动php-fpmservice php-fpm start 五:测试nginx与php之间的连接在这个目录下面创建index.php页面





测试php与mysql数据库的连接,只需要在index.php页面中加入连接数据库的连接函数,查看函数的返回信息,就可以确定是否连接成功。重启mysql服务

关闭mysql服务,出现警告信息,并输出failed

到这里说明我们的lnmp 环境应经彻底的搭建完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息