Lnmp之源码搭建

Lnmp之源码搭建

环境说明

Lnmp就是linux +nginx+mysql+php的简称,操作系统用linuxweb服务器nginx,数据库服务器是mysql,网页语言是php。有时也叫lnfmp,就是linux +nginx+mysql+fastcgi+phpFastcgi nginx连接php的接口工具,Fast CGI  web服务器与你的或其它机器上的程序进行交谈的一种工具,其程序须运行在网络服务器,比如nginx服务器。它的运行服务程序是php-fpmPHP-fpm 是 一个 PHP FastCGI 进程管理器Php-fpm可以和任何支持远端fastCGIweb server工作。

Nginx 是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器其特点是占有内存少,并发能力强Nginx 是采用epool机制来作为工作模式,也就是事件查看机制。Apache服务器是靠进程来处理用户的请求,派生多个进程,每个进程理论上最多每秒可以接受1024个并发连接请求,并且要为每个进程开辟内存空间,apache服务器处理请求的速度慢,并且占用大量的内存空间和cpuNginx 是靠线程处理用户的请求,一个进程可以派生出N个线程,这N个线程占用一个内存空间,来处理用户的请求,nginx理论上每秒可以处理的并发连接请求是65535个,所以nginx是占有内存少,并发能力强,处理数度快,可以做反向代理服务器,用户把请求发给nginxnginx再把请求转发给外面的多台web服务器,这样可以实现web服务器可以接受大量的请求。也可以作为负载均衡服务器对外面的web服务器进行服务。

环境搭建

Mysql 服务器:采用二进制版本是mysql-5.5.15-linux2.6-i686.tar.gz

Php :采用源码版本是php-5.3.7.tar.bz2

Linux系统:rhel 5.4

Nginx服务器:nginx-1.0.11.tar.gz

Libeventlibevent-2.0.16-stable.tar.gz

Libeventnginx采用的事件触发机制所需要的库,通知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服务的运行者mysqldata目录要有操作的权限,所以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服务脚本mysqld chkconfigchkconfig主要用来更新(启动或停止)和查询系统服务在某种运行级别下的状态信息。

 

二:

安装Libevent源码

Libeventnginx采用的事件触发机制所需要的库,通知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.py

Ldconfig 刷新缓存文件把libevent的动态库加载到缓存文件中

切换到/usr/local/include目录下形成很多头文件给include文件做符号链接

 

三:

安装nginx服务器源码是nginx-1.0.11.tar.gz

在安装nginx服务器时首先要安装pcre pcre是一个正则表达式的函数库,多应用于开源软件之中,比如说web服务器和php

挂载光盘安装pcrerpm包,安装好之后,安装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 sbinhtmlnginx的站点主目录,sbin目录是nginx的服务程序nginx所在的目录

所以把/usr/local/ngnix/sbin这个目录加入到系统环境变量中,让nginx这个服务程序nginx在任何路径下都可以执行。

手工编辑nginx的控制脚本

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

 

四:

:安装好之后下面是php-5.3.7.tar.bz2源码的安装

Nginx 服务器与php的连接是通过fastCGI,Fast CGI  HTTP服务器与你的或其它机器上的程序进行交谈的一种工具,其程序须运行在网络服务器,比如apache服务器。它的运行服务程序是php-fpmPHP-fpm 是 一个 PHP FastCGI 进程管理器Php-fpm可以和任何支持远端fastCGIweb 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 chkconfigchkconfig主要用来更新(启动或停止)和查询系统服务在某种运行级别下的状态信息。

 

 

 2php.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-fpm

service  php-fpm  start

 

五:测试nginxphp之间的连接

在这个目录下面创建index.php页面

 

 

 

 

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

重启mysql服务

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

到这里说明我们的lnmp 环境应经彻底的搭建完成。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章