lnmp简介:

LNMP环境是指Linux下搭建Nginx+MySQL+PHP.

Nginx.Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx不仅可以作为web服务器,也可以作为负载均衡器。

MySQL是一款开源免费的数据软件,MySQL是一个小型关系型数据库管理系统,其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。

lnmp试验环境:

操作平台:

linux

版本:

rhel-server-5.4-i386

需要的安装环境:

GNOME Desktop Environment

GNOME Software Development

Legacy Software Development

X Software Development

需要的安装包(下载网站:http://mirrors.sohu.com/):

libevent-2.0.18-stable.tar.gz

nginx-1.1.18.tar.gz

mysql-5.1.45.tar.gz

libmcrypt-2.5.8.tar.gz

mhash-0.9.9.9.tar.bz2

mcrypt-2.6.8.tar.gz

lnmp的实现:

nginx环境搭建:

挂在光盘:

[root@localhost nginx-1.1.18]# mount /dev/cdrom /mnt/cdrom/

搜索并安装nginx所依赖的包:

[root@localhost ~]# yum list all |grep pcre-devel

[root@localhost ~]# yum -y install pcre-devel

[root@localhost ~]# tar -zxvf libevent-2.0.18-stable.tar.gz -C /usr/src/

[root@localhost ~]# cd /usr/src/libevent-2.0.18-stable/

编辑库文件以及编译:

[root@localhost libevent-2.0.18-stable]# ./configure

[root@localhost libevent-2.0.18-stable]# make

[root@localhost libevent-2.0.18-stable]# make install

[root@localhost libevent-2.0.18-stable]# cd /usr/local/

编辑配置文件使其读取最高版本:

[root@localhost local]# vim /etc/ld.so.conf.d/libevent.conf

clip_image002

[root@localhost local]# ldconfig -v |grep libevent

clip_image004

nginx的安装:

[root@localhost ~]# tar -zxvf nginx-1.1.18.tar.gz -C /usr/src/

[root@localhost ~]# cd /usr/src/nginx-1.1.18/

添加用户nginx,实现以之运行nginx服务进程:

[root@localhost nginx-1.1.18]# groupadd -r nginx

[root@localhost nginx-1.1.18]# useradd -r -g nginx -s /bin/false -M nginx

编译和安装:

[root@localhost nginx-1.1.18]# ./configure \

--prefix=/usr \ 安装起始位置

--sbin-path=/usr/sbin/nginx \ 服务命令位置

--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 \ pid 路径

--lock-path=/var/lock/nginx.lock \锁文件存放位置

 --user=nginx \指定服务以nginx用户运行

 --group=nginx \指定服务以nginx组运行

--with-http_ssl_module \起用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/ \

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

--with-pcre

[root@localhost nginx-1.1.18]# make

[root@localhost nginx-1.1.18]# make install

创建客户访问存放目录:

[root@localhost nginx-1.1.18]# mkdir -pv /var/tmp/nginx/client

启动nginx:

[root@localhost nginx-1.1.18]# nginx

[root@localhost nginx-1.1.18]# netstat -tupln |grep nginx

clip_image006

外网进行访问,可以看出nginx安装成功:

clip_image008

修改nginx启动脚本:

[root@localhost ~]# vim /etc/rc.d/init.d/nginx

[root@localhost ~]# chmod +x /etc/rc.d/init.d/nginx

[root@localhost ~]# chkconfig --add nginx

[root@localhost ~]# chkconfig nginx on

[root@localhost ~]# service nginx restart

mysql数据库的安装:

[root@localhost ~]# tar -zxvf mysql-5.1.45.tar.gz -C /usr/src/

[root@localhost ~]#cd /usr/src/mysql-5.1.45

进行编译和安装:

[root@localhost mysql-5.1.45]# ./configure \

--prefix=/usr/local/mysql \

--localstatedir=/var/lib/mysql/ \

--enable-assembler \

--with-extra-charsets=all \

--enable-thread-safe-client \

--with-client-ldflags=-all-static \

 --with-mysqld-ldflags=-all-static \

--with-pthread \

--with-big-tables \

--without-debug \

--with-ssl

[root@localhost mysql-5.1.45]# make

[root@localhost mysql-5.1.45]# make install

创建启动脚本:

[root@localhost mysql-5.1.45]# cp support-files/my-medium.cnf /etc/my.cf

[root@localhost mysql-5.1.45]# cp support-files/mysql.server /etc/init.d/mysqld

[root@localhost mysql-5.1.45]# chmod +x /etc/init.d/mysqld

为所有的二进制可执行文件和动态链接库文件做一个软连接:

[root@localhost mysql-5.1.45]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

[root@localhost mysql-5.1.45]# ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/

然后我们初始化数据库:

[root@localhost mysql-5.1.45]# mysql_install_db --user=mysql

为了MySQL能正常使用我们需要更改一下MySQL安装目录和MySQL的数据库目录的属主和属组:

[root@localhost mysql-5.1.45]# chown -R root.mysql /usr/local/mysql/

[root@localhost mysql-5.1.45]# mkdir /usr/local/mysql/var/

[root@localhost mysql-5.1.45]# chown -R mysql.mysql /usr/local/mysql/var/

启动mysql,可以看出mysql环境搭建成功:

clip_image010

clip_image012

clip_image014

php环境的搭建:

安装php所依赖的包:

[root@localhost ~]# tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/

[root@localhost ~]# cd /usr/src/libmcrypt-2.5.8/

[root@localhost libmcrypt-2.5.8]# ./configure

[root@localhost libmcrypt-2.5.8]# make

[root@localhost libmcrypt-2.5.8]# make install

[root@localhost ~]# tar -jxvf mhash-0.9.9.9.tar.bz2 -C /usr/src/

[root@localhost ~]# cd /usr/src/mhash-0.9.9.9/

[root@localhost mhash-0.9.9.9]# ./configure

[root@localhost mhash-0.9.9.9]# make

[root@localhost mhash-0.9.9.9]# make install

这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包:

[root@localhost ~]# ln -s /usr/local/lib/libmcrypt* /usr/lib

[root@localhost ~]# ln -s /usr/local/lib/libmhash.* /usr/lib

[root@localhost ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/

[root@localhost ~]# cd /usr/src/mcrypt-2.6.8/

[root@localhost mcrypt-2.6.8]# ./configure

[root@localhost mcrypt-2.6.8]# make

[root@localhost mcrypt-2.6.8]# make install

安装依赖的文件:

[root@localhost mcrypt-2.6.8]# yum -y install libxml2-devel curl-devel libpng-devel openldap-devel

[root@localhost ~]# tar -zxvf php-5.4.0.tar.gz -C /usr/src/

[root@localhost ~]# cd /usr/src/php-5.4.0/

编译和安装:

[root@localhost php-5.4.0]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap

[root@localhost php-5.4.0]# make

[root@localhost php-5.4.0]# make install

创建php配置文件:

[root@localhost php-5.4.0]# cp php.ini-production /usr/local/php/php.ini

[root@localhostphp-5.4.0]#cp/usr/local/php/etc/php-fpm.conf.default

/usr/local/php/etc/php-fpm.conf

[root@localhost php-5.4.0]# ln -s /usr/local/php/bin/php /usr/bin/

编辑配置文件:

[root@localhost php-5.4.0]# vim /usr/local/php/etc/php-fpm.conf

clip_image016

启动php服务:

[root@localhost ~]# mkdir /var/run/php-fpm

[root@localhost ~]# /usr/local/php/sbin/php-fpm

实现nginx和php的结合:

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

 

[root@localhost ~]# pkill -9 nginx

编辑一个简单的测试页面:

[root@localhost ~]# /usr/local/nginx/sbin/nginx

[root@localhost ~]# vim /usr/local/nginx/html/index.php

clip_image020

保存退出后访问http://192.168.2.1/index.php,看到下面页面表示已经安装:

clip_image022

修改简单页面,对lnmp环境测试:

[root@localhost ~]# vim /usr/local/nginx/html/index.php

clip_image024

利用外网访问,发现lnmp换境已搭建好(因没建mysql库及账户,显示报错):

clip_image026