当前位置:首页 > CN2资讯 > 正文内容

lnmp的环境搭建

3天前CN2资讯

LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。可以在VPS、独立主机上轻松的安装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代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

环境搭建

首先必须有源码,然后必要的编译环境。

本文只介绍nginx 与php的源码安装。至于mysql前面文章都已经介绍过了。

这里准备了两个源码。

-rw-r--r-- 1 root root 837650 08-11 16:00 libevent-2.0.16-stable.tar.gz //提高nginx性能的一个包
-rw-r--r-- 1 root root 691501 08-11 16:00 nginx-1.0.11.tar.gz 具体的步骤说明可以参照lamp文章

[root@localhost ~]# yum list all |grep pcre
This system is not registered with RHN.
RHN support will be disabled.
pcre.i386 6.6-2.el5_1.7 installed
pcre-devel.i386 6.6-2.el5_1.7 rhel-server

我们需要库文件的支持。所以安装pcre-devel.

[root@localhost ~]# yum install pcre-devel

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

[root@localhost ~]# cd /usr/local/src/libevent-2.0.16-stable/

[root@localhost libevent-2.0.16-stable]# ./configure //不进行过多的配置了。直接编译。

[root@localhost libevent-2.0.16-stable]# vim /etc/ld.so.conf.d/libevent.conf

/usr/local/lib

[root@localhost libevent-2.0.16-stable]# make

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

[root@localhost libevent-2.0.16-stable]# ldconfig -v

[root@localhost libevent-2.0.16-stable]# ldconfig -pv |grep libevent
libevent_pthreads.5 (libc6) => /usr/local/lib/libevent_pthreads.5
libevent_openssl.5 (libc6) => /usr/local/lib/libevent_openssl.5
libevent_extra.5 (libc6) => /usr/local/lib/libevent_extra.5
libevent_core.5 (libc6) => /usr/local/lib/libevent_core.5
libevent.5 (libc6) => /usr/local/lib/libevent.5
.1 (libc6) => /usr/lib/.1

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

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

[root@localhost ~]# cd /usr/local/src/nginx-1.0.11/

[root@localhost nginx-1.0.11]# groupadd -r nginx //创建组nginx

[root@localhost nginx-1.0.11]# useradd -r -g nginx -s /bin/false -M nginx //创建用户nginx属于组nginx无登录权限禁止创建家目录

[root@localhost nginx-1.0.11]# mkdir /var/tmp/nginx

[root@localhost nginx-1.0.11]# ./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/ \
--with-pcre

[root@localhost nginx-1.0.11]# make

[root@localhost nginx-1.0.11]# make install

[[email protected]]# /usr/sbin/nginx //启动nginx

这样就解决了nginx的问题。

但是支持php还需要fastcgi_params fastcgi_params.default fastcgi.conf的改动。

[root@localhost nginx-1.0.11]#vim /etc/nginx/nginx.conf

43 location / {
44 root html;
45 index index.php index.html index.htm;
46 }

65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 include fastcgi_params;
71 }

[root@localhost nginx-1.0.11]# vim /etc/nginx/fastcgi_params

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 GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;

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

这个地方是最重要的地方,因为默认情况下Nginx和PHP他俩之间是一点感觉没有的。在之前,很多朋友都搭建过Apache+PHP,Apache+PHP编译后生成的是模块文件,而Nginx+PHP需要PHP生成可执行文件才可以,所以要利用fastcgi技术来实现N ginx与PHP的整合,这个只要我们安装时启用FastCGI即可。此次我们安装PHP不仅使用了FastCGI,而且还使用了PHP-FPM这么一个东东,PHP-FPM说白了是一个管理FastCGI的一个管理器,它作为PHP的插件存在,在安装PHP要想使用PHP-FPM时就需要把PHP-FPM以补丁的形式安装到PHP中,而且PHP要与PHP-FPM版本一致,这是必须的,切记!

php 5.3.3及以上的版本内置了fpm ,此处用5.3.7举例,下载后解压,进入解压后目录

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

[root@localhost ~]# cd /usr/local/src/php-5.3.7/

[root@localhost php-5.3.7]# less INSTALL

Example #1 Installation Instructions (Apache Shared Module Version) for
PHP
1. gunzip apache_xxx.tar.gz
2. tar -xvf apache_xxx.tar
3. gunzip php-xxx.tar.gz
4. tar -xvf php-xxx.tar
5. cd apache_xxx
6. ./configure --prefix=/www --enable-module=so
7. make
8. make install
9. cd ../php-xxx

[root@localhost php-5.3.7]# ./configure -help

--prefix //安装路径
--enable-mbstring //字符串支持

[root@localhost php-5.3.7]# ./configure --prefix=/usr/local/php --enable-mbstring=all --enable-fastcgi --enable-fpm

[root@localhost php-5.3.7]# make

[root@localhost php-5.3.7]# make install

注:Nginx+PHP整合,在安装时必须启用--enable-fastcgi和 --enable-fpm,这两个选项是做什么的上面已经描述。执行完后系统会提示--enable-fastcgi是一个未知选项,我们不必理会

再把php.ini-production复制到/usr/local/php/lib下,改名php.ini,

把/usr/local/php/etc/php-fpm.conf.default复制一份到相同目录命名为php-fpm.conf

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

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

为php-fpm提供Sysv init脚本,并将其添加至服务列表:
[root@localhost php-5.3.7]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@localhost php-5.3.7]# chmod +x /etc/rc.d/init.d/php-fpm

[root@localhost php-5.3.7]# chkconfig --add php-fpm
[root@localhost php-5.3.7]# chkconfig php-fpm on

打开php-fpm.conf,去掉相应的分号注释,最后如下

pid = /usr/local/php/var/run/php-fpm.pid

error_log = log/php-fpm.log

listen = 127.0.0.1:9000

user = nobody

group = nobody

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

[root@localhost php-5.3.7]# service php-fpm start //启动php-fpm

使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):

[root@localhost php-5.3.7]# ps aux |grep php-fpm
root 5597 0.0 0.2 16340 2176 ? Ss 16:49 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody 5598 0.0 0.2 16340 1724 ? S 16:49 0:00 php-fpm: pool www
nobody 5599 0.0 0.2 16340 1724 ? S 16:49 0:00 php-fpm: pool www
nobody 5600 0.0 0.2 16340 1724 ? S 16:49 0:00 php-fpm: pool www
nobody 5601 0.0 0.2 16340 1724 ? S 16:49 0:00 php-fpm: pool www
nobody 5602 0.0 0.2 16340 1724 ? S 16:49 0:00 php-fpm: pool www
root 5606 0.0 0.0 5024 660 pts/1 R+ 16:51 0:00 grep php-fpm

测试网页

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

<?php
phpinfo();
?>

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/19434.html

    分享给朋友:

    “lnmp的环境搭建” 的相关文章

    甲骨文云注册:详细流程与免费试用攻略

    甲骨文云注册概述 甲骨文云介绍和服务特点 我对甲骨文云的首要印象是它独一无二的服务。甲骨文云不仅提供高性能的VPS服务器,还给予用户一个轻松的起步体验。其主要服务包括两台配置为1核1G内存、50G硬盘和10T流量的AMD VPS,还有一台配置为4核24G内存、100G硬盘、10T流量的ARM VPS...

    BT下载机的使用技巧与软件下载推荐

    在数字时代,文件共享变得越来越普遍,BT下载机作为一种基于BitTorrent协议的P2P(Peer-to-Peer)文件共享工具,扮演着重要的角色。我记得第一次接触BT下载机时,发现它的操作不仅简单,还能快速下载大型文件,这让我对它产生了浓厚的兴趣。BT下载机允许用户通过种子文件(.torrent...

    香港云服务器:灵活选择与网络优势助力企业发展

    香港云服务器作为一种现代化的网络托管服务,逐渐成为越来越多企业和个人用户的首选。这种服务的核心就是将服务器放置在香港的数据中心,提供灵活的云计算资源。对于希望在云端运作的用户来说,了解香港云服务器的定义与特点是非常重要的。 首先,香港云服务器的产品类型多种多样,从轻量云主机到快杰云主机,再到裸金属服...

    选择合适的国外域名与邮箱服务指南

    在现代社会,跨国沟通和商务往来变得愈加频繁,国外域名与邮箱成为不可或缺的工具。当我开始接触这些服务时,首先意识到国外域名的定义与特点,它们不仅代表着一个网站的身份,还是全球互联网上各类信息交流的桥梁。国外的域名通常以.com、.net等后缀结尾,这些域名能够覆盖广泛的用户群体,使得沟通更为流畅。 我...

    NameSilo续费优惠码2024:如何利用优惠码降低域名续费成本

    在域名注册的世界中,NameSilo是一颗璀璨的明珠。成立于2010年的这家公司,迅速赢得了用户的青睐。人们总是追求优质且经济实惠的服务,而NameSilo无疑满足了这一需求。便宜的价格和稳定的服务让它在众多注册商中脱颖而出。 回想起最初使用NameSilo的经历,选择它不仅因为价格的吸引,更多的是...

    BGPTO独立服务器:高性能云主机解决方案

    BGPTO是一家由国人创办的云服务器主机商,致力于为用户提供高性能的独立服务器。随着全球互联网的发展,对云计算和服务器主机的需求不断增加,BGPTO顺应这一趋势,选择在日本、新加坡、香港和美国等地设立机房。公司希望通过独立服务器的销售,满足用户在不同地区的需求,尤其是针对国内用户和企业的海外业务拓展...