LNMP简介:
LNMP
代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。 这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
Nginx
是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器对外进行服务。
LNMP
×××
所需源码:
php-5.4.0.tar(http://www.php.net), nginx-1.1.18.tar(http://www.nginx.org),mysql-5.0.95.tar(http://www.mysql.com)
linux
版本为企业版5.4,ip地址192.168.101.22
首先编辑yum,在/etc/yum.repos.d/目录下编辑rhel-debuginfo.repo(我们使用的是本地yum):
建立光盘挂载点/mnt/cdrom,将光盘挂载上面mount /dev/cdrom /mnt/cdrom。
用yum grouplist来查看开发环境所用的组,其中开发环境所需的有:开发库Development Librarity 、开发工具 Development Tools、
需安装pcre-devel指令为:yum install pcre-devel
下面开始安装源码
一、
编译安装nginx-1.1.18
1
、添加nginx系统组和用户
groupadd -r nginx
useradd -r -g nginx -s /bin/false -M nginx
2
、编译
[root@Eleven ~]# tar -zxvf nginx-1.1.18.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/
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 \
--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/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre
说明:--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
软件的锁文件nginx.lock路径
--user=nginx
指定所属用户
--group=nginx
指定所属组
--with-http_ssl_module
添加了ssl模块支持
--with-http_flv_module
添加了flv模块支持
--with-http_stub_status_module
--with-http_gzip_static_module
添加了静态压缩模块支持
--http-client-body-temp-path=/var/tmp/nginx/client/ http
客户端请求临时文件的存放路径
--http-proxy-temp-path=/var/tmp/nginx/proxy/
代理访问的临时文件存放路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ fastcgi
临时文件存放路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
--http-scgi-temp-path=/var/tmp/nginx/scgi
3
、安装
make && make install
mkdir -pv /var/tmp/nginx/client
[root@Eleven nginx-1.1.18]# nginx
查看端口
[root@Eleven nginx-1.1.18]# netstat -tupln |grep nginx
测试:
二、
编译安装mysql
如果没有安装ncurses-devel首先安装解决依赖关系,指令:yum -y install ncurses-devel
创建MySQL用户,指令:useradd -M -s /sbin/nologin mysql
[root@Eleven ~]# tar -zxvf mysql-5.0.95.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/mysql-5.0.95/
./configure \
--prefix=/usr/local/mysql \
--without-debug \ #
取消调试模式提高性能
--with-extra-charsets=utf8,gbk \ #
仅仅指定需要的默认字符集提高性能
--enable-assembler \ #
使用汇编模式提高性能
--with-mysqld-ldflags=-all-static \ #
以静态方式编译提高性能
--with-client-ldflags=-all-static \
--with-unix-socket-path=/tmp/mysql.sock \ #
使用unix socket提高性能
--with-ssl
回车
然后执行:make && make install
安装完成后复制配置文件和启动脚本:
cp support-files/my-medium.cnf /etc/my.cnf #
复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld #
复制启动脚本
chmod +x /etc/init.d/mysqld #
给启动脚本执行权限
ln -s /usr/local/mysql/bin/* /usr/local/bin/ #
为可执行的二进制文件做软连接
ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ #
为动态链接库做一个软连接
mysql_install_db --user=mysql #
用MySQL用户安装数据库
chown -R root.mysql /usr/local/mysql/ #
更改安装目录属主为root,属组为mysql
chown -R mysql.mysql /usr/local/mysql/var/ #
更改数据库目录属主和属组都为mysql
然后启动mysql
测试:
可知mysql已成功安装
三、
编译安装PHP
在安装php之前首先解决依赖关系,需安装几个源码包:
(1)
、libmcrypt-2.5.8.tar.bz2,下载地址:
http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download
[root@Eleven ~]# tar -jxvf libmcrypt-2.5.8.tar.bz2 -C /usr/src/
[root@Eleven ~]# cd /usr/src/libmcrypt-2.5.8/
[root@Eleven libmcrypt-2.5.8]# ./configure
[root@Eleven libmcrypt-2.5.8]# make && make install
(2)、mhash-0.9.9.9.tar.bz2 下载地址:
http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download
[root@Eleven ~]# tar -jxvf mhash-0.9.9.9.tar.bz2 -C /usr/src/
[root@Eleven ~]# cd /usr/src/mhash-0.9.9.9/
[root@Eleven mhash-0.9.9.9]# ./configure
[root@Eleven mhash-0.9.9.9]# make && make install
这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包
ln -s /usr/local/lib/libmcrypt* /usr/lib
ln -s /usr/local/lib/libmhash.* /usr/lib/
(3)、mcrypt-2.6.8.tar.gz,下载地址:
http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
[root@Eleven ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/mcrypt-2.6.8/
[root@Eleven mcrypt-2.6.8]# ./configure
[root@Eleven mcrypt-2.6.8]# make && make install
下面安装php
首先解决依赖,指令:
yum –y install libxml2-devel curl-devel libpng-devel openldap-devel
[root@Eleven ~]# tar -zxvf php-5.4.0.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/php-5.4.0/
[root@Eleven 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@Eleven php-5.4.0]# make && make install
到这里整个LNMP已经安装完成.下面我们就配置php和nginx能运行php网站:
首先为php创建配置文件,指令:
(1)cp php.ini-production /usr/local/php/php.ini # 如果是开发就复制php.ini-development
(2)cp /usr/local/php/etc/php-fpm.conf.default
/usr/local/php/etc/php-fpm.conf
(3)ln -s /usr/local/php/bin/php /usr/bin/
然后配置php-fpm,编辑php-fpm.conf
[root@Eleven php-5.4.0]# vim /usr/local/php/etc/php-fpm.conf
修改143行:如下
启动php-fpm:
mkdir /var/run/php-fpm
/usr/local/php/sbin/php-fpm
(一定要执行,否则不能成功)
[root@Eleven local]# cd /etc/nginx/
[root@Eleven nginx]# vim nginx.conf
增加下面几行
修改完毕后保存退出重启nginx:
[root@Eleven nginx]# pkill -1 nginx
然后在/usr/html/下创建index.php
[root@Eleven nginx]# vim
/usr/html/index.php
写入如下内容;
测试:用浏览器访问http://192.168.101.22/index.php
可以看到已成功连接php。
然后在进行测试php连接mysql,继续编辑index.php页面,内容改为:
测试结果为:
可以看到php与mysql以成功连接。
至此我们已经搭建好了LNMP环境。