您的位置:首页 > 运维架构 > Linux

linux服务--LNMP源码编译安装--RHEL6.5

2016-05-03 21:49 841 查看
LNMP=Linux Nginx Mysql PHP

1. nginx简介

Nginx ("engine x")
是一个高性能的 HTTP 和 反向代理 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
2011 年 6 月 1 日,nginx 1.0.4 发布。Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师
Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、新浪、网易、腾讯等

Tengine
是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。 Tengine 的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。(可以这样理解:淘宝拿到了 Nginx

源代码之后,进行了功能的填充,优化等等,然后提交给 Nginx 官方,但是由于 Nginx 官方相应慢或者不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循
GPL 的原则上进行二次开发,于是就出了现在的 Tengine 这个版本)。

Nginx 是过 php-fpm 这个服务来处理 php 文件。

Nginx
和 php-fpm 是各自独立运行,所以在运行过程中,Nginx 和 php-fpm 都需要分别启动!

2.
安装nginx


用到的软件版本如下,软件统一放到一个目录里面方便使用。

libmcrypt-2.5.8

mysql-5.6.26

nginx-1.8.0

pcre-8.37

php-5.6.13

服务器IP为192.168.1.61

1) 解决依赖

yum
install gcc gcc-c++ autoconf automake -y

yum
install zlib zlib-devel openssl openssl-devel -y

tar
xvf pcre-8.37.tar.bz2 -C /usr/local/src/

2)解压、编译、安装

(1) 解压nginx压缩包

tar
xvf nginx-1.8.0.tar.gz -C /usr/local/src/ ; cd /usr/local/src/nginx-1.8.0

(2)编译&&安装nginx

./configure--prefix=/usr/local/nginx--with-http_dav_module--withhttp_stub_status_module--with-http_addition_module--with-http_sub_module--with-http_flv_module--withhttp_mp4_module--with-pcre=/usr/local/src/pcre-
8.37

make -j 4

make install

3)新建用于运行nginx的用户

useradd -M -s /sbin/nologin nginx

4)配置nginx支持php

vim
/usr/local/nginx/conf/nginx.conf

[b]#user
nobody;


user nginx nginx;#添加此行

……

#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~\.php${

root html;

fastcgi_pass127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/usr/local/nginx/html$fastcgi_script_name;#将
scripts 修改为


nginx 的 html,即 Nginx 页面目录,因为要处理的 php 文件也在这个目录下

include fastcgi_params;[/b]


}


5)启动nginx

为nginx命令新建软连接

ln -s /usr/local/nginx/sbin/nignx /usr/bin/nginx

启动nginx

nginx

检查nginx是否启动成功

netstat -anupt | grep nginx

浏览器中输入 http://192.168.1.61 此时显示nginx欢迎界面

6)nginx维护命令

检查配置文件语法是否有错误:

nginx -t

平滑重启nginx:

nginx
-s reload

停止nginx:

nginx -s stop

nginx开机自动启动:

echo "nginx &" >> /etc/rc.local

7)nginx重新编译时注意:

如果后续遇到nginx需要重新编译的情况,需要先查出先前编译nginx时的选项, 使用nginx -V即可查出,把需要添加的编译选项添加到后面即可。

3.
编译安装mysql


1)编译、安装

此处使用脚本mysql.sh进行自动编译,把mysql压缩包和mysql.sh放在同一级目录下,脚本内容如下:

#!/bin/bash

yum remove -y mysql mysql-server

#删除上次使用此脚本解压的mysql文件

rm -rf /usr/local/src/mysql-5.6.26

echo 'This shell will Auto Install Mysql5.6'

yum install -y cmake ncurses-devel

tar -zxf mysql-5.6.26.tar.gz -C /usr/local/src && cd /usr/local/src/mysql-5.6.26

#新建mysql的用户

useradd -M -s /sbin/nologin mysql

mkdir /usr/local/mysql

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all - DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql

#编译安装mysql

make -j 4 && make install

chown -R mysql:mysql /usr/local/mysql/

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

mv /etc/my.cnf /etc/my.cnf.bak

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

sed -i '/^\[mysqld\]/adatadir = /usr/local/mysql/data' /etc/my.cnf

sed -i '/^\[mysqld\]/abasedir = /usr/local/mysql' /etc/my.cnf

#mysql做成服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlsev

chmod +x /etc/init.d/mysqlsev

echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

service mysqlsev restart

echo

echo "------------------install success-------------------"

source /etc/profile

echo "source /etc/profile" >> /etc/rc.local

service mysqlsev restart

echo "If you now running mysql and others commands,Please running: source /etc/profile" #安装完成之后执行source /etc/profile

2)启动mysql客户端

mysql

检查是否可以启动。

4. 编译安装php

1)解决依赖

(1)
yum install php-pear

(2)yum install-y
libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype freetypedevel

(3)tar xvf libmcrypt-2.5.8.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/libmcrypt-2.5.8/

./configure
--prefix=/usr/local/libmcrypt ; make -j 4 ; make install

2)手动添加库

vim /etc/ld.so.conf,
加入以下内容:

/usr/local/libmcrypt/lib

/usr/local/mysql/lib

添加完后执行命令ldconfig使上述修改的库生效。

echo "ldconfig" >> /etc/rc.local

3)编译安装php

tar
xvf php-5.6.13.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/php-5.6.13

./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php--

with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir--withfreetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--

enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--enable-mbregex--enable-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr

make -j 4

make install

4)配置php文件和php-fpm文件

php配置文件:

cp
/usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini

php-fpm配置文件:

cp
/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #改名

cp /usr/local/src/php-5.6.13/sapi/fpm/init.d.php-fpm.ini /etc/init.d/php-fpm

chmod
+x /etc/init.d/php-fpm

chkconfig php-fpm on

5)启动php-fpm

service
php-fpm start

netstat -anupt | grep php-fpm

6)测试LNMP的php支持

ehco "<?php phpinfo() ?>" > /usr/local/nginx/html/index.php

浏览器访问http://192.168.1.61/index.php看是否可以显示php相关的信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: