天天看点

Linux下lnmp源码搭建

一:lnmp介绍:

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器

Mysql是一个小型关系型数据库管理系统。

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

二:搭建过程:

[root@lyt ~]# mkdir /mnt/cdrom

[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/

[root@lyt ~]# cd /mnt/cdrom/Server/

[root@lyt Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568301NvYx.png"></a>

这里需要安装pcre正则函数库

[root@lyt Server]# ll pcre*

[root@lyt Server]# yum list all |grep pcre       #查看pcre的相关信息

[root@lyt Server]# yum install pcre-devel

安装libevent:(事件触发的网络库)

[root@lyt Server]# cd

[root@lyt ~]# tar  -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/

[root@lyt ~]# cd /usr/local/src/

[root@lyt src]# cd libevent-2.0.16-stable/

[root@lyt libevent-2.0.16-stable]# ./configure           #检测预编译环境

[root@lyt libevent-2.0.16-stable]# make            #编译

[root@lyt libevent-2.0.16-stable]# make install

[root@lyt libevent-2.0.16-stable]# vim /etc/ld.so.conf.d/libevent.conf           #编辑该文件如图:

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568303o3dJ.png"></a>

[root@lyt libevent-2.0.16-stable]# ldconfig –v      #手动调用库文件

[root@lyt libevent-2.0.16-stable]# ldconfig -pv |grep libevent         #查看调用/usr/local/lib中的库文件

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568306h0DA.png"></a>

[root@lyt libevent-2.0.16-stable]# cd

Nginx安装:

[root@lyt ~]# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/

[root@lyt src]# cd nginx-1.0.11/

[root@lyt nginx-1.0.11]# groupadd -r nginx          #创建系统组gninx,-r表示系统

[root@lyt nginx-1.0.11]# useradd -r -g nginx -s /bin/false -M nginx       #创建一个系统账号nginx,加入系统组nginx,-M表示系统账号不需要创建家目录。使用/bin/false    ,-s表示shell。也可以使用-s  /sbin/nologin

[root@lyt nginx-1.0.11]# ./configure \

[root@lyt nginx-1.0.11]# mkdir -pv /var/tmp/nginx/client       #创建目录。(在上个图片中没有创建记录客户端信息的目录)

[root@lyt nginx-1.0.11]# make

[root@lyt nginx-1.0.11]# make install

[root@lyt nginx-1.0.11]# nginx        #启动nginx服务

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568310nQU5.png"></a>

安装mysql绿色软件:

[root@lyt nginx-1.0.11]# cd

[root@lyt ~]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local

[root@lyt ~]# cd /usr/local

[root@lyt local]# cd mysql-5.5.15-linux2.6-i686/

[root@lyt mysql-5.5.15-linux2.6-i686]# cat INSTALL-BINARY  | less       #利用管道分页查看INSTALL-BINARY文件

[root@lyt local]# groupadd mysql           #创建一个mysql组

[root@lyt local]# useradd -r -g mysql mysql           #创建一个mysql用户,并将其加入到mysql组中

[root@lyt local]# cd /usr/local/

第四部拆包文件已经执行过,这里不再执行

[root@lyt local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql         #创建一个符号连接mysql,指向mysql-5.5.15-linux2.6-i686

[root@lyt local]# cd mysql

[root@lyt mysql]# chown -R mysql .        #将mysql下所有的文件的所属用户全都改为mysql。

[root@lyt mysql]# chgrp -R mysql .         #将mysql下所有的文件的所属组全都改为mysql。

[root@lyt mysql]# scripts/mysql_install_db --user=mysql           #使用scrpts初始化脚本,用刚才创建的mysql用户运行,安装数据库mysql

[root@lyt mysql]# chown -R root  .           #将所属用户改为root用户

[root@lyt mysql]# chown -R mysql data         #将data目录的所属用户改为mysql

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

[root@lyt mysql]# bin/mysqld_safe --user=mysql &amp;         #启动mysql

[root@lyt mysql]# netstat -tupln |less       #查看端口号

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_13465683132GNQ.png"></a>

[root@lyt mysql]# cp   support-files/mysql.server    /etc/init.d/mysqld          #将mysql.server 拷贝到/etc/init.d/下,改名为mysqld,此命令拷贝成

功后可以使用service  mysqld restart指令。

[root@lyt mysql]# chkconfig --add mysqld      #将mysql服务加入到chkconfig中,可以使用chkconfig来管理

[root@lyt ~]# vim /etc/ld.so.conf        #查看该文件

[root@lyt mysql]# cd /etc/ld.so.conf.d/

由于mysql的库文件存在于/usr/local/mysql/lib文件中,而系统的库文件存放于/usr/lib或者/lib中,所以需要创建/etc/ld.so.conf.d/mysql.conf文件,当系统启动时调用/usr/local/mysql/lib中的库文件。

[root@lyt ld.so.conf.d]# vim mysql.conf           #创建mysql.conf文件,系统启动时可以调用/usr/local/mysql/lib下的库文件

[root@lyt ld.so.conf.d]# ldconfig -v |grep mysql           #查看mysql的系统调用

由于mysql的头文件存在于/usr/local/mysql/include文件中,而系统的头文件存放于/usr/include中,所以需要在/usr/include中创建连接,当系统启动时调用/usr/local/mysql/include中的头文件

[root@lyt ld.so.conf.d]# cd /usr/include/

[root@lyt include]# ln -s /usr/local/mysql/include/  mysql #创建一个字符连接mysql,连接到/usr/local/mysql/include

安装php:

[root@lyt include]# cd

[root@lyt ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/

[root@lyt src]# cd php-5.3.7/

[root@lyt php-5.3.7]#./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm  --with-libevent-dir=/usr/local --with-

mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml

--with-iconv-dir=/usr/local

[root@lyt php-5.3.7]# make   

[root@lyt php-5.3.7]# make install

[root@lyt php-5.3.7]# cp php.ini-production /usr/local/php/etc/php.ini

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

[root@lyt php-5.3.7]# cd /usr/local/php/etc/

[root@lyt etc]# vim php-fpm.conf        #编辑该文件,启用如下行

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568323N51h.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568325j01P.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568327KO1b.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568328UFhw.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_13465683318Opl.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_13465683330hdg.png"></a>

[root@lyt etc]# /usr/local/php/sbin/php-fpm &amp;         #启动fastcgi

[root@lyt etc]# vim /etc/nginx/fastcgi.conf

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568336aMyY.png"></a>

保证两个文件相同(fastcgi.conf 和 fastcgi_params)

[root@lyt etc]# cd /etc/nginx/

[root@lyt nginx]# cat fastcgi.conf&amp;gt;fastcgi_params         #将fastcgi.conf中的内容重定向到fastcgi_params

[root@lyt nginx]# vim /etc/nginx/nginx.conf

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568338XLNZ.png"></a>

[root@lyt nginx]# cd /usr/html/

[root@lyt html]# vim index.html

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568340qyVE.png"></a>

[root@lyt html]# mv index.html index.php         #重命名

[root@lyt html]# vim /etc/nginx/nginx.conf

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568342t1rF.png"></a>

[root@lyt html]# pkill -1 nginx

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568343lMUl.png"></a>

[root@lyt html]# vim /usr/html/index.php

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568346TS7F.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568348FB8E.png"></a>

[root@lyt html]# /usr/local/mysql/bin/mysqladmin -u root -p password '123'           #为数据库创建密码

[root@lyt html]# /usr/local/mysql/bin/mysql -u root –p      #使用密码登录数据库

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568353EG4C.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568357DISp.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568359DNTS.png"></a>

本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/980000,如需转载请自行联系原作者