Lnmp搭建详解

作者: 浩浩哥来了

介绍linux系统下yum安装Nginx+PHP+MySQL的方法。

如需要查看图解http://down.51cto.com/data/1966865 点击查看

首先创建本地源

Cd /media/RHEL_后面是挂载镜像的版本号

Ls 会查看到Packages repodata 两个文件夹

Mkdir  /home/repo   创建一个你喜欢存放东西的路径下创建一个repo的文件夹

Cp –R –f Packages  /home/repo

Cp –R –f repodata  /home/repo  将两个文件夹的内容复制到这个文件夹中(过程可能很慢,但是正常现象毕竟这个rpm包有3G多)

Cd /etc/yum.repo/  这是默认的源存放路径

Ls 初始的默认的redhat.repo 和rhel-source.repo 这两个源 初写可以根据rhel-source.repo中文件信息进行修改

Cat rhel-source.repo >> haohaoge.repo将文件内容追加到我的浩浩哥这个源文件

Vim haohaoge.repo    以下是本地源文件的内容信息

[haohaoge.repo]

Name=haohao.repo

Basecurl=file:///home/repo

Enabled=1

Gpgcheck=0

创建 nginx

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。

yum install gcc gcc-c++ -y

下面正式开始

--------------------------------------------------------------------------------------------

一般我们都需要先装pcre,zlib,前者为了重写rewrite,后者为了gzip压缩。

1.选定源码目录

可以是任何目录,本文选定的是cd/var/ftp/pub/ 我这是把所有源码文件放在了ftp默认的路径。

首先安装三个源码文件,pcre是提供正则表达,zlib是进行图片压缩,ssl是进行加密

cd /var/ftp/pub/

2.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /var/ftp/pub/

wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz

tar -zxvf pcre-8.34.tar.gz

cd pcre-8.34

./configure

Make && make install

3.安装zlib库

http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /var/ftp/pub/

wget http://zlib.net/zlib-1.2.8.tar.gz

tar -zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

Make && make install

4.安装ssl(某些vps默认没装ssl)

cd /var/ftp/pub/

wgethttp://www.openssl.org/source/openssl-1.0.1c.tar.gz

tar -zxvf openssl-1.0.1c.tar.gz

cd openssl-1.0.1c

./configure

Make && make install

-----------------------------------------------------------------------------------------------

以下可以尝试本地源进行安装

1. yum install –y pcre pcre-devel

2. yum install –y zlib zlib-devel

3. yum install –y ssl ssl-devel

---------------------------------------------------------------------------------------------

5.安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /var/ftp/pub/ 目录下的详细步骤:

cd /var/ftp/pub/

wget http://nginx.org/download/nginx-1.6.2.tar.gz

tar -zxvf nginx-1.6.2.tar.gz

cd nginx-1.6.2

./configure--sbin-path=/usr/local/nginx/nginx \

--conf-path=/usr/local/nginx/nginx.conf \

--pid-path=/usr/local/nginx/nginx.pid \

--with-http_ssl_module \

--with-pcre=/usr/local/src/pcre-8.34 \

--with-zlib=/usr/local/src/zlib-1.2.8 \

--with-openssl=/usr/local/src/openssl-1.0.1c

Make && make install

-------------------------------------------------------------------------------------------

--with-pcre=/usr/src/pcre-8.34 指的是pcre-8.34 的源码路径。

--with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源码路径。

安装成功后/usr/local/nginx/目录下如下

fastcgi.conf            koi-win             nginx.conf.default

fastcgi.conf.default    logs                scgi_params

fastcgi_params          mime.types          scgi_params.default

fastcgi_params.default  mime.types.default  uwsgi_params

html                    nginx               uwsgi_params.default

koi-utf                 nginx.conf          win-utf

6.启动

确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/nginx 命令来启动 Nginx,

netstat –anp|grep 80

在没有启动web服务器的情况下查看80端口是否启动并被其他服务占用端口

使用/usr/local/nginx/nginx启动nginx服务以后在进行查询会看到nginx 80端口已经开启

在浏览器中输入http://ip/ 出现下图,说明你这已经安装成功,打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

创建php

nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx

本文以php-fpm为例介绍如何使nginx支持PHP

一、编译安装php-fpm

什么是PHP-FPM:

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download

下载得到.

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以

http://php.net/manual/en/configure.about.php

安装前准备

yum -y install libmcrypt-devel mhash-devellibxslt-devel \

libjpeg libjpeg-devel libpng libpng-develfreetype freetype-devel libxml2 libxml2-devel \

zlib zlib-devel glibc glibc-devel glib2glib2-devel bzip2 bzip2-devel \

ncurses ncurses-devel curl curl-devele2fsprogs e2fsprogs-devel \

krb5 krb5-devel libidn libidn-devel opensslopenssl-devel

php-fpm安装

wget http://cn2.php.net/distributions/php-5.4.7.tar.gz

tar zvxf php-5.4.7.tar.gz

cd php-5.4.7

./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt \

--enable-mbstring --disable-pdo --with-curl--disable-debug  --disable-rpath \

--enable-inline-optimization--with-bz2  --with-zlib --enable-sockets\

--enable-sysvsem --enable-sysvshm--enable-pcntl --enable-mbregex \

--with-mhash --enable-zip --with-pcre-regex--with-mysql --with-mysqli \

--with-gd --with-jpeg-dir

make && make install

安装后内容放在/usr/local/php目录下

以上就完成了php-fpm的安装。

下面是对php-fpm运行用户进行设置

cd /usr/local/php

cp etc/php-fpm.conf.defaultetc/php-fpm.conf

vi etc/php-fpm.conf

修改
user = www-data
group = www-data

如果www-data用户不存在,那么先添加www-data用户
groupadd www-data
useradd -g www-data www-data

修改nginx配置文件以支持php-fpm

nginx安装完成后,修改nginx配置文件为,nginx.conf

其中server段增加如下配置,注意标红内容配置,否则会出现No input filespecified.错误

# pass the PHP scripts to FastCGI serverlistening on 127.0.0.1:9000
#
location ~ \.php$ {
root /web/index.html;   在此处指出你的nginx下php页面的存放路径
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

创建测试php文件

创建php文件

在/usr/local/nginx/html下创建index.php文件,输入如下内容

<?php

echo phpinfo();

?>

启动服务

启动php-fpm和nginx

/usr/local/php/sbin/php-fpm

#手动打补丁的启动方式/usr/local/php/sbin/php-fpm start

/usr/local/nginx/nginx

php-fpm 如何关闭 重启?

php-fpm 关闭:

用killall 杀死php-fpm相关的所有进程

php-fpm 重启:

/usr/local/php/sbin/php-fpm

通过netstat查看端口ps -ef查看php-fpm进程数:

浏览器访问

访问http://你的服务器ip/index.php,皆可以见到php信息了。

http://192.168.18.112/index.php

出现一下页面,证明上述操作成功

安装php-fpm时可能遇到的错误,如果没出现跳过进行下一步:

1. php configure时出错

configure: error: XML configuration couldnot be found

apt-get install libxml2 libxml2-dev (ubuntu下)

yum -y install libxml2 libxml2-devel(centos下)

2. Please reinstall the BZip2distribution

wgethttp://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz

tar -zxvf bzip2-1.0.5.tar.gz

cd bzip2-1.0.5

make

make install

3. php的配置文件中有一行--with-mysql=/usr
安装的时候提示:
configure: error: Cannot find MySQL header files under yes.
Note that the MySQL client library is not bundled anymore.

这是由于安装mysql时没有安装mysql头文件,或者是路径指定不正确,php找不到mysql的头文件引起的错误提示。
解决方法。
(1.) 查看你的系统有没有安装mysqlheader
find / -name mysql.h
如果有。请指定--with-mysql=/跟你的正常路径。
如果没有。请看下一步。
(2.)redhat安装
rpm -ivh MySQL-devel-4.1.12-1.i386.rpm
(3.)ubuntu安装
apt-get install libmysqlclient15-dev
(4.)最后一步php的配置选项添加--with-mysql=/usr即可!

4.No input file specified.

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

5. mcrypt.h not found. Please reinstalllibmcrypt

apt-get install libmcrypt-dev

或者

cd /usr/local/src
wgethttp://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd /usr/local/src/libmcrypt-2.5.8
./configure --prefix=/usr/local
make
make install

6.

7.命令行下执行php,提示找不到命令

-bash: /usr/bin/php: No such file ordirectory

vi /etc/profile

在文件底部增加一行配置
export PATH=/usr/local/php/bin:$PATH

保存退出

source /etc/profile

8.Don‘t know how to define struct flockon this system, set --enable-opcache=no

这是安装php 5.5时的错误。
编辑/etc/ld.so.conf 加入/usr/local/lib
再执行 ldconfig即可

9. configure:error: xml2-config not found. Please check your libxml2 installation

重新安装libxml2和libxml2-devel包

yum install libxml2

yum install libxml2-devel –y

10. error: Don‘t know how to definestruct flock on this system, set --enable-opcache=no

这是安装php 5.5时的错误。
解决办法如下:
编辑/etc/ld.so.conf 加入/usr/local/lib
再执行 ldconfig即可

11.mcrypt.h not found. Please reinstalllibmcrypt”的解决方法

使用php mcrypt 前必须先安装Libmcrypt

libmcrypt源码安装方法:

cd /usr/local/src

wgethttp://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz

tar -zxvf libmcrypt-2.5.8.tar.gz

cd /usr/local/src/libmcrypt-2.5.8

./configure --prefix=/usr/local

make

make install

域名转换,进行如下操作

Vim /etc/hosts 修改主机名

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.18.112 haohaoge.com haohaoge   在这一行写入下面信息前面是你当前主机的ip 后面是是你的主机名

Vim /etc/resolv.conf

nameserver 192.168.18.112 在其中手动添加(这种只是临时的修改如果重启主机和重启网络都有可能消失)

vim/etc/sysconfig/network-scripts/ifcfg-eth0 永久添加

DNS1=192.168.18.112 将DNS服务器的ip地址进行指向

Vim /etc/named.conf

options {

listen-on port 53 { 192.168.18.112; }; 这个必须指明那个ip的53端口打开

listen-on-v6 port 53 { ::1; };

directory      "/var/named";

dump-file      "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query     { any; }; 此处也换成any

recursion yes;

vim /etc/named.rfc1912.zones 分别在最后一行进行添加正向和反向进行解析

zone "haohaoge.com" IN {      此处为正想解析

type master;          文件的类型是主用master标明

file "haohaoge.com.zone";  此处为正向解析标明正向文件名称

};

zone "18.168.192.in-addr.arpa" IN{  此处为反向解析

type master;              此处标明类型是主用master标明

file "haohaoge.com";     反向解析的文件名称

};

cp /var/named/named.localhost/var/named/haohaoge.com.zone  复制文件并将其换成正向解析的名称

cp /var/named/named.loopback/var/named/haohaoge.com 复制文件并将其换成反向解析的文件

vim /var/named/haohaoge.com.zone

$TTL 1D

@      IN SOA  @ rname.invalid. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H)    ; minimum

NS      @

A       127.0.0.1

www     A      192.168.18.112    插入此行

AAAA    ::1

vim /var/named/ haohaoge.com

$TTL 1D

@      IN SOA  @ rname.invalid. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H)    ; minimum

NS      @

A       127.0.0.1

AAAA    ::1

PTR     localhost.

112     PTR    www. haohaoge.com.         插入此行

chown root:named/var/named/haohaoge.com.zone 将新创建的文件相应的权限

chown root:named /var/named/haohaoge.com

/etc/init.d/iptables stop 将防火墙进行关闭

[[email protected] named]# nslookup www.haohaoge.com 现在开始自检如果自检出现问题可以对比下我下面出现的一些常见问题

Server:         192.168.18.112

Address:        192.168.18.112#53

Name:  www.haohaoge.com

Address: 192.168.18.112

[[email protected] named]# nslookup192.168.18.112 进行反向自检,如果出现报错对比我下面的问题解答

Server:         192.168.18.112

Address:        192.168.18.112#53

112.18.168.192.in-addr.arpa     name = www.haohaoge.com.

测试

如果是window设备这样添加你的DNS服务器IP

刷新下window下缓存的DNS

Linux设备进行下面操作

vim/etc/sysconfig/network-scripts/ifcfg-eth0

在其中加入DNS服务器IP

http://www.haohaoge.com/index.php

http://www.haohaoge.com/index.html

时间: 2024-10-10 06:01:16

Lnmp搭建详解的相关文章

高可用,多路冗余GFS2集群文件系统搭建详解

2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群文件系统,保证不同节点能够同时对GFS2集群文件系统进行读取和写入,其次通过multipath实现node和FC,FC和Share Storage之间的多路冗余,最后实现存储的mirror复制达到高可用. GFS2:全局文件系统第二版,GFS2是应用最广泛的集群文件系统.它是由红帽公司开发出来的,允许所有集群节点并行访问.元数据通常会保存在共享

Linux下DNS服务器搭建详解

 Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析. 下面对DNS的工作流程及原理进行简要说明 DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts:若无结果,则client查看本地的DNS缓存服务器:若无结果,则查找所属域的首选DNS服务器:若此时本地首选DN

LAMP平台搭建详解

准备工作 安装编译工具 # yum -y install gcc # yum -y install gcc-c++ 如果系统之前已经安装有rpm包的mysql和apache,那么可以: #service httpd stop #service mysqld stop 确定rpm包安装的httpd和mysqld不能开机启动 #chkconfig –level 2345 mysqld/httpd stop 关闭SELINUX和防火墙,或者允许防火墙开放相关端口,apache 80端口,mysql 3

Windows GTK+ 环境搭建(详解)

来源:http://blog.sina.com.cn/s/blog_a6fb6cc901017ygy.html Windows GTK+ 环境搭建 最近要做界面的一些东西,但是对微软提供的类库MFC不是很熟悉,里面封装了大量的Windows API比较麻烦,然后就想着其他方式吧!Qt.GTK+原本想学学Qt的,Qt跨平台.文档也多点,使用也更广泛.但是Qt的插件一直没有下载下来,然后就先学习学习GTK+吧! 在网上搜了好多关于Windows GTK+环境搭建的方法,但是很多说的都不是很清楚,所以

缓存DNS服务器和主DNS服务器的快速搭建详解

缓存DNS服务器和主DNS服务器的快速搭建详解 一.设定配置内容假设我们已经在网上注册了wangej.com域名,得到的IP网络是172.16.12.0/24ns服务器是:172.16.12.1www服务器:172.16.12.1,另外一个地址:172.16.12.3mail服务器:172.16.12.2ftp主机在www服务器上,即ftp为www的别名 二.准备工作:这里我们使用bind97来搭建我们的DNS服务器,首先需要安装好bind97.i386.bind97-libs.i386.bin

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍 spring集成 mybatis Spring4.x零配置框架搭建 两年前一直在做后台的纯Java开发,很少涉及web开发这块,最近换了个纯的互联网公司,需要做Web后台管理系统,之前都是用xml配置的项目,接触了公司Spring4.x的零配置项目,觉得非常有感觉,不仅仅配置简单,而且条理清晰,所以,这里把学习的内容记录下来,一来加深对这块技术的印象,另外准备做个简单的教程,如果给

Apache服务环境在Linux中搭建详解

Apache服务环境搭建详解: 本篇文章我介绍的是phpstudy集成工具,它将php.mysql及apache集成在一起,可以很方便的在不同服务环境间进行切换,比如:apache+php5.4切换为nginx+php5.4,另外,这个集成工具(windows版)提供了可视化的图形界面,以及提供了配置文件的快捷查找和网站域名的设置等,具体可到http://www.phpstudy.net网址查看详情.在这里,我介绍的是在Linux环境中怎么安装和配置apache+php+mysql(phpstu

centos7 zabbix搭建详解

大家好!应朋友要求,今天为大家献上centos7 zabbix的搭建详解话不多收先把今天需要的安装包献上https://pan.baidu.com/s/1hIbJUTYnPSLlhGpEGCkWQA无需密码永久有效!! 为了方便我们今天就用一台虚机,用一台虚拟机充当监控服务器和被监控服务器 第一步!!!关闭并永久关闭防火墙和SELinux 第二步!!!部署LAMP环境 应为我们的haHP写运行在Linux环境下的Apache下,调用的是MySQL数据库所以必须先部署环境 yum -y insta

Python环境搭建详解(Window平台)

前言 Python,是一种面向对象的解释型计算机程序设计语言,是纯粹的自由软件,Python语法简洁清晰,特色是强制用空白符作为语句缩进,具有丰富和强大的库,它常被称为胶水语言. Python是一种解释型语言:这意味着开发过程中没有没有了编译的环境,是交换式语言,是面向对象语言,是初学者的语言,其优点是:易学习,面向对象,易维护,可移植,可扩展,广泛的标准库.其缺点就是运行速度慢. 安装 那么如何安装Python呢? 提供安装官网:https://www.python.org/downloads