小谈源码搭建lnmp环境

时间:2022-09-18 14:23:04

LNMP是一个基于CentOS/Debian编写的NginxPHPMySQLphpMyAdmineAccelerator一键安装包。成为一个免费、高效、扩展性强的网站服务系统。

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。   Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debiancentosubuntufedoragentoo等。  

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

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

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

特点:

1Nginx性能稳定、功能丰富、运维简单。

2、处理静态文件速度快且消耗系统资源极少。

应用

 作为Web 服务器 作为负载均衡服务器 作为邮件代理服务器

一、安装nginx前准备工作

1、安装pcre主程序和库文件,实现头部和地址重写

yum -y install  pcre.i386   pcre-devel.i386 

2、解压源代码到/usr/local/src目录下

libevent-2.0.16-stable.tar.gz是一种通知机制的库文件,显著提高网站的性能

tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/

3、检测预编译环境

cd /usr/local/src/libevent-2.0.16-stable/

./configure

4、检测之后,进行编译

make

5、将编译之后形成的四类文件:头文件、库文件、可执行文件、说明文件放到合适的位置

make install

由于libevebt的库文件的位置,所以需要给系统指定libevent的库文件的位置

vim /etc/ld.so.conf.d/libevent.conf

/usr/local/lib            

vim /etc/ld.so.conf.d/libevent.conf

手工调动库文件

ldconfig -v

查看系统是不是可以调用libevent的库文件

[root@localhost libevent-2.0.16-stable]# ldconfig -pv |grep libevent

                                libevent_pthreads-2.0.so.5 (libc6) => /usr/local/lib/libevent_pthreads-2.0.so.5

                                libevent_openssl-2.0.so.5 (libc6) => /usr/local/lib/libevent_openssl-2.0.so.5

                                libevent_extra-2.0.so.5 (libc6) => /usr/local/lib/libevent_extra-2.0.so.5

                                libevent_core-2.0.so.5 (libc6) => /usr/local/lib/libevent_core-2.0.so.5

                                libevent-2.0.so.5 (libc6) => /usr/local/lib/libevent-2.0.so.5

                                libevent-1.1a.so.1 (libc6) => /usr/lib/libevent-1.1a.so.1

二、安装nginx

1、解压ngnix源代码到/usr/local/src

tar -zxvf nginx-1.0.11.tar.gz  -C /usr/local/src/

2、创建组

cd /usr/local/src/nginx-1.0.11/

group -r nginx

3、创建账号ngnix

-r系统账号 –g加入某一个组 -M 系统账号无需创建家目录

useradd -r -g nginx -s /bin/false  -M nginx

4、检测预编译环境

./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 \  #父进程ID的文件存放位置

 --lock-path=/var/lock/nginx.lock \     #加锁的机制文件

 --user=nginx \                     #用户

 --group=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/ \#支持fastcgi

 --with-pcre                           #支持地址重写

5、编译

make

6、把编译生成的四类文件放到合适的位置

make install

7、启动ngnix服务

[root@localhost ~]# nginx         

测试ngnix是不是正常

小谈源码搭建lnmp环境 

三、安装mysql

1、解压软件包mysql-5.5.15-linux2.6-i686.tar.gz

tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/

切换到解压目录下

cd /usr/local/mysql-5.5.15-linux2.6-i686/

2、建立软连接,易于管理和操作

[root@localhost local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql

查看软连接

[root@localhost local]# ll

lrwxrwxrwx  1 root root   27 07-31 04:58 mysql -> mysql-5.5.15-linux2.6-i686/

3、需要执行的操作

groupadd mysql            #创建组mysql

useradd -r -g mysql mysql    #创建账号 加入组mysql

cd /usr/local

chown -R mysql .           #修改所有者为mysql

chgrp -R mysql .            #修改所属组为masql

cd  mysql

scripts/mysql_install_db --user=mysql #执行初始化脚本,以mysql的身份执行

chown -R root .                   #将所属用户改为root用户

chown -R mysql data                #data目录的所属用户改为mysql

可选项的

cp support-files/my-medium.cnf /etc/my.cnf

bin/mysqld_safe --user=mysql &    #启动mysql  

cp support-files/mysql.server /etc/init.d/mysqld   

4、启动mysql服务

Service  mysqld start

netstat -tupln |grep mysql      #查看mysql的端口3306是不是开启

chkconfig --add mysqld       #设置开机启动

5、查看开机启动设置

[root@localhost mysql]# ll /etc/rc.d/rc3.d/|grep mysql

lrwxrwxrwx 1 root root 16 07-24 22:03 S64mysqld -> ../init.d/mysqld

由于mysql的库文件和头文件是非标准路径,系统默认不会调用,需要我们指定路径,这样系统才可以调用,比如系统的可以调用的库文件只有 /usr/lib/usr/local/lib /lib/  mysql的库文件在/usr/local/mysql

6、创建一个文件使系统可以调用mysql库文件

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

[root@localhost ld.so.conf.d]# vim mysql.conf #在文件中指明库文件的位置

/usr/local/mysql/lib

[root@localhost ld.so.conf.d]# ldconfig -v |grep mysql 

/usr/local/mysql/lib:               #可以看到已经调用到库文件

        libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0

同样头文件include也需要类似做法

[root@localhost mysql]# cd /usr/include/

[root@localhost include]# ln -s /usr/local/mysql/include/ mysql  #创建一个链接

[root@localhost include]# ll mysql/      #查看mysql的头文件

7、将mysql.server 拷贝到/etc/init.d/下,改名为mysqld

cp   support-files/mysql.server    /etc/init.d/mysqld      

#可以使用service  mysqld restart指令启动mysql

四、安装PHP

1、解压php源代码

tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/

2、检测预编译环境

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm  --with-libevent-dir=/usr/local --enable-mbstring --with-zlib

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

3、编译

make

把编译生成的四类文件放在合适的位置

make insall

五、整合nginxphp

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

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

1cd /usr/local/php/etc/

vim php-fpm.conf                         #编辑文件,启用下列行

30 error_log = log/php-fpm.log

161 pm.max_children = 50

166 pm.start_servers = 20

171 pm.min_spare_servers = 5

176 pm.max_spare_servers = 35

182 pm.max_requests = 500

2、启动fastcgi

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

vim /etc/nginx/fastcgi.conf

fastcgi_param  SERVER_SOFTWARE    nginx;        #修改成nginx

vim /etc/nginx/fastcgi_params             #保持与fastcgi.conf一致            

3、编辑nginx的配置文件

43         location / {

44             root   /usr/html;

45             index  index.php index.html index.htm;

46         }

65         location ~ \.php$ {

66             root          /usr/html;

67             fastcgi_pass   127.0.0.1:9000;

68             fastcgi_index  index.php;

69             fastcgi_param  SCRIPT_FILENAME  /usr/html$fastcgi_script_name;

70             include        fastcgi_params;

71         }

六、测试

1nginx调动PHP

编辑/usr/html下的index.html文件并改名为index.php

<?php

phpinfo();

?>

小谈源码搭建lnmp环境 

3PHP调动mysql

vim /usr/html/index.php        #修改内容如下

小谈源码搭建lnmp环境 

测试结果

小谈源码搭建lnmp环境

 

本文出自 “我们之间” 博客,请务必保留此出处http://myheart.blog.51cto.com/5635718/980231