LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。成为一个免费、高效、扩展性强的网站服务系统。
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
特点:
1、Nginx性能稳定、功能丰富、运维简单。
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是不是正常
三、安装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
五、整合nginx和php
[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
1、cd /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 }
六、测试
1、nginx调动PHP
编辑/usr/html下的index.html文件并改名为index.php
<?php
phpinfo();
?>
3、PHP调动mysql
vim /usr/html/index.php #修改内容如下
测试结果