×××LNMP
LNMP简介:
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。
Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。
作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。
Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。
所需源码包:
mysql-5.5.15-linux2.6-i686.tar
nginx-1.0.11.tar
php-5.3.7.tar
libevent-2.0.16-stable.tar
准备工作:
建立挂载点,进行光盘挂载
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
编写yum仓库
[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
构建编译环境
[root@localhost Server]#yum -y install gcc openssl-devel zlib-devel pcre-devel
创建一个放置源码包的目录 /root/soft
Nginx安装步骤
[root@localhost ~]# cd soft
[root@localhost soft]# tar -zxvf nginx-1.0.11.tar.gz #解压缩nginx源码包到当前目录,会生成一个目录nginx-1.0.11
[root@localhost soft]# cd nginx-1.0.11 #进入目录nginx-1.0.11
[root@localhost soft]#useradd -s /sbin/nologin -M nginx # 添加一个不能登录的且没有家目录 名为nginx的用户
./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 \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--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/
[root@localhost nginx-1.0.11]# make && make install
[root@localhost nginx-1.0.11]#pkill -1 nginx #重启nginx
测试:用Web浏览器访问主页,出现nginx页面,nginx安装成功!
修改nginx配置文件
[root@localhost ~]# vim /etc/nginx /fastcgi_params
将里面内容替换为
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
[root@localhost ~]# vim /etc/nginx/nginx.conf
user nginx;----------------------------------------------------------------修改user nobody
location ~ \.php$ {
root html;------------------------------------------------站点主目录
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
location / {
root html;
index index.php index.html index.htm;-----------------------添加index.php
}
MySql安装步骤
[root@localhost ~]# cd soft
[root@localhost soft]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz #解压缩mysql源码包会生成一个目录mysql-5.5.15-linux2.6-i686
[root@localhost soft]# cd mysql-5.5.15-linux2.6-i686 #进入这个目录
[root@ localhost mysql-5.5.15-linux2.6-i686]# groupadd mysql #创建组mysql
[root@ localhost mysql-5.5.15-linux2.6-i686]# useradd -r -g mysql mysql #创建名为mysql的管理员并将其加入组mysql
[root@ localhost mysql-5.5.15-linux2.6-i686]# cd /usr/local
[root@ localhost local]# ln -s mysql-5.5.15-linux2.6-i686 mysql #为安装后的mysql路径建立一个链接
[root@ localhost local]# cd mysql #进入mysql目录
[root@ localhost mysql]# chown -R mysql . #修改mysql目录下的文件的所有者为mysql
[root@ localhost mysql]# chgrp -R mysql . #修改mysql目录下的文件的所属组为mysql
[root@ localhost mysql]# scripts/mysql_install_db --user=mysql #以mysql的身份初始化
[root@ localhost mysql]# chown -R root . #修改mysql目录下的文件的所有者为root
[root@ localhost mysql]# chown -R mysql data #修改data文件的所有者为mysql
[root@ localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf #拷贝生成mysql的配置脚本文件
[root@ localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷贝生成mysql的启动脚本文件
[root@ localhost mysql]# service mysqld start #启动mysql
Starting MySQL.... [ OK ]
[root@ localhost mysql]# cd /etc/ld.so.conf.d
[root@ localhost ld.so.conf.d]# vim mysql.conf #指明mysql的库文件的路径
[root@ localhost ld.so.conf.d]# ldconfig -v|grep mysql #检测是否有库文件
/usr/local/mysql/lib:
libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0
[root@ localhost ld.so.conf.d]# cd /usr/include
[root@ localhost include]# ln -s /usr/local/mysql/include mysql #为mysql头文件建立一个标准路径链接
[root@ localhost include]# ll mysql
lrwxrwxrwx 1 root root 24 Aug 28 18:48 mysql -> /usr/local/mysql/include
libevent安装步骤
[root@localhost ~]# cd soft
[root@localhost soft]# tar -zxvf libevent-2.0.16-stable.tar.gz #解压缩libevent源码包,会生成一个目录libevent-2.0.16-stable
[root@localhost soft]# cd libevent-2.0.16-stable #进入这个目录
[root@localhost libevent-2.0.16-stable]#./configure && make && make install #编译并安装
PHP安装步骤
[root@localhost ~]# cd soft
[root@localhost soft]# tar -jxvf php-5.3.7.tar.bz2
[root@localhost soft]# cd php-5.3.7
[root@localhost php-5.3.7]# #开始编译
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-openssl --enable-fpm --with-libevent-dir=/usr/local --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml
[root@localhost libevent-2.0.16-stable]# make && make install #安装
[root@localhost ~]#vim /usr/local/php/etc/php-fpm.conf #修改php-fpm配置文件
将这四部分前面的注释去掉
; Note: Used when pm is set to either 'static' or 'dynamic'
; Note: This value is mandatory.
pm.max_children = 50
; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 10
; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5
; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 35
[root@localhost ~]#/usr/local/php/sbin/php-fpm #启动php-fpm
[root@localhost nginx-1.0.11]#pkill -1 nginx #重启nginx
测试:
测试php是否正常工作
[root@localhost~] #vim /usr/html/ index.php
测试结果
测试php能否调用mysql
[root@localhost ~]#vim /usr/html/index.php
测试结果
上述测试表明LNMP搭建成功!