LNMP环境搭建详细教程,LNMP第一局地条件搭建

by admin on 2019年1月31日

后边有一篇博客写的是LAMP的条件搭建,今日来详细介绍一下此外一个形式——LNMP=Linux+Nginx+MySQL+PHP。

记录下在阿里云CentOS下LNMP环境搭建进程,首先,需求设置C语言的编译环境,因为Nginx是C语言编写的。经常一大半Linux都会默许安装GCC,假使没有的话,可以如下安装。

centos  LNMP第一局地条件搭建 LAMP安装先后顺序  LNMP安装先后顺序 php安装
安装nginx  编写nginx启动脚本   懒汉格局  mv  
/usr/local/php/{p.conf.default,p.conf}  php运行格局SAPI介绍 
第二十三节课

LNMP环境搭建,lnmp搭建

LNMP环境搭建

Linux + Nginx + MySQL + PHP

PHP是一种脚本语言,当前华夏甚至世界上运用PHP语言开发的网站十分广阔

Nginx是一个web服务软件,和apache是一类软件,方今接纳nginx的集团进一步多。

MySQL是时下相当盛行的小型关系型数据库

和LAMP不一致的是LNMP中的N指的是Nginx(类似于Apache的一种web服务软件)其余都同一。如今那种条件应用的也是相当之多。Nginx设计的初衷是提供一种高效高效多现身的web服务软件。在静态页面的拍卖上Nginx的确胜Apache一筹,但是在动态页面的拍卖上Nginx并不比Apache有多少优势。不过,近期照旧有不少发烧友对Nginx相比较热衷,随着Nginx的技巧日趋成熟,它在web服务软件领域的地位更加高。

安装MySQL

步骤和LAMP中的mysql安装步骤是一模一样的。

1,下载mysql到/usr/local/src/

[[email protected]]#wget

那是64位的包,32位系统要用32位的包:

2, 解压下载的包

[[email protected]
src]# tar -xvzf mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz

3,把解压的包活动到/usr/local/并改名为mysql

[[email protected]
src]# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql

4,建立mysql用户

[[email protected]
src]# useradd -s /sbin/nologin mysql

5,建立mysql数据库文件夹,并修改所属主和所属组

[[email protected]
mysql]# mkdir -p /data/mysql ; chown -R  mysql:mysql /data/mysql

6,开端化数据库

[[email protected]
mysql]# ./scripts/mysql_install_bf88必发唯一官网 ,db –user=mysql
–datadir=/data/mysql

./scripts/mysql_install_db 这几个文件是数据库文件夹里的文书,–user
定义数据库的所属主, –datadir
定义数据库安装到哪里,提出放权大空间的分区上,这么些目录要求活动创立,执行后要是看到七个“OK” 表达履行科学。出难点可按照难点来缓解(最终附难点解决办法!)

7, 拷贝配置文件

[[email protected]
mysql]# cp support-files/my-large.cnf  /etc/my.cnf

8, 拷贝启动脚本文件并修改其属性

[[email protected]
mysql]# cp support-files/mysql.server  /etc/init.d/mysqld

[[email protected]
mysql]# chmod 755 /etc/init.d/mysqld

9, 修改启动脚本

[[email protected]
mysql]# vim /etc/init.d/mysqld

内需修改的地方有 “datadir=/data/mysql” (前边开首化数据库时定义的目录)

把启动脚本参预系列服务项,并设定开机启动,启动mysql

[[email protected]
mysql]# chkconfig –add mysqld

[[email protected]
mysql]# chkconfig mysqld on

[[email protected]
mysql]# service mysqld start

比方开行不了,到 /data/mysql/ 下查看错误日志,这一个日志平常是主机名.err.
检查mysql是或不是启动的通令为:

[[email protected]
mysql]# ps aux |grep mysqld

 

安装php

此地要先声Bellamy下,针对Nginx的php安装和针对apache的php安装是有分其他,因为Nginx中的php是以fastcgi的艺术结合nginx的,可以驾驭为nginx代理了php的fastcgi,而apache是把php作为团结的模块来调用的。在LNMP中,安装PHP往日必需先安装mysql,其它的没有先后顺序。php官方下载地址:

1.下载php

[[email protected]
src]# wget

2.解压php

[[email protected]
src]# tar -xvzf php-5.3.27.tar.gz

3.开立连锁账户

[[email protected]
src]# useradd -s /sbin/nologin php-fpm

4.布署编译参数

[r[email protected]
src]# cd php-5.3.27

[[email protected]
php-5.3.27]# make clean

此命令为了排除之前设置PHP时生成的有的文书,防止与前边的编译混淆。

[[email protected]
php-5.3.27]# ./configure –prefix=/usr/local/php_nginx
–with-config-file-path=/usr/local/php_nginx/etc –enable-fpm
–with-fpm-user=php-fpm –with-fpm-group=php-fpm
–with-mysql=/usr/local/mysql –with-mysql-sock=/tmp/mysql.sock

–with-libxml-dir –with-gd –with-jpeg-dir –with-png-dir
–with-freetype-dir –with-iconv-dir –with-zlib-dir  –with-mcrypt
–enable-soap –enable-gd-native-ttf –enable-ftp  –enable-mbstring
–enable-exif –enable-zend-multibyte –disable-ipv6 –with-pear
–with-curl –with-openssl

布局参数里和事先的有些分化,–enable-fpm须求加上,不加不可能生成fpm文件。–with-config-file-path是指定php配置文件的门道,即php.ini的门道。

错误音信:

configure: error: Please reinstall the libcurl distribution –

easy.h should be in <curl-dir>/include/curl/

解决办法:

LNMP环境搭建详细教程,LNMP第一局地条件搭建。yum install -y libcurl-devel

5.编译php

[[email protected] 
php-5.3.27]# make

在这一步,日常会遭受一些荒唐

/usr/bin/ld: cannot find –lltdl

collect2: ld returned 1 exit status

make: *** [sapi/fpm/php-fpm] 错误 1

解决办法:

yum install -y libtool-ltdl-devel

6.安装php

[[email protected]
php-5.3.27]# make install

如上每一个手续,如若没有完全实施科学,那么下一步是心有余而力不足进展的,是或不是还记得判断执行是还是不是科学的主意?
使用 echo $? 看结果是不是为 “0” , 如若不是,就是从未履行科学。

7.拷贝配备文件

[[email protected]
php-5.3.27]# cp php.ini-production /usr/local/php_nginx/etc/php.ini

[[email protected]
php-5.3.27]# cp sapi/fpm/php-fpm.conf /usr/local/php_nginx/etc/

保存配置文件后,检验配置是不是科学的办法为:

/usr/local/php_nginx/sbin/php-fpm -t

假诺出现诸如 “test is successful” 字样,表明配置不成难点。

8.启动php-fpm

先拷贝启动文件 cp /usr/local/src/php-5.3.27/sapi/fpm/init.d.php-fpm
/etc/init.d/php-fpm

chmod 755 /etc/init.d/php-fpm

service php-fpm start

万一想让它开机启动,执行:

chkconfig php-fpm on

检测是还是不是启动:

ps aux |grep php-fpm

netstat -lnp | grep php

tcp    0   0 127.0.0.1:9000    0.0.0.0:*   LISTEN      11265/php-fpm

安装nginx

Nginx官方网站(),
从官方网站能够看看nginx更新速度快速,那也显示了一个实际,如今应用nginx跑网站的商店或者个人更多。

(近来nginx报出一个安全漏洞,影响版本很广
CVE-2013-4547,所以此前的老版本都亟需升级一下, 1.4.4,
1.5.7以及以后版本小意思)

1.下载nginx

cd /usr/local/src/

wget

2.解压nginx

tar -xvzf nginx-1.6.2.tar.gz

3.布局编译参数

LNMP环境搭建详细教程,LNMP第一局地条件搭建。cd nginx-1.4.4

./configure –prefix=/usr/local/nginx –with-pcre

编辑进程中出错:

checking for PCRE library … not found

checking for PCRE library in /usr/local/ … not found

checking for PCRE library in /usr/include/pcre/ … not found

checking for PCRE library in /usr/pkg/ … not found

checking for PCRE library in /opt/local/ … not found

  缺少pcre ,pcre用来辅助正则表明式,解决措施:

  yum install -y pcre-devel

4.编译nginx

make

5.安装nginx

make install

因为nginx相比小,所以高速就会安装完,而且也不会出哪些错误。

  1. 开行nginx,nginx很精细,本身没有启动服务文件。

/usr/local/nginx/sbin/nginx

查看:ps aux | grep nginx

      netstat -lnp | grep nginx

测试:从浏览器间接访问本机IP

7.更改nginx配置

布局文件地方:/usr/local/nginx/conf/nginx.conf

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

修改:

events {

    worker_connections  4096;

}

其一值一般调成很大的数。

 

“server { }”相关配置就是虚拟主机,server里面的“location”须求改:

location / {

            root   /web/123;

            index  index.html index.htm index.php;

        }

root指定虚拟主机的目录,那里换成LAMP时设置的discuz的目录。把下边location和php相关的情节打开,并修改:

       location ~ \.php$ {

            root           /web/123;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME 
/web/123$fastcgi_script_name;

            include        fastcgi_params;

 

封存配置后,先验证一下安顿文件是还是不是有错误存在:

/usr/local/nginx/sbin/nginx  -t

设若显示内容如下,则配备不错,否则需求依照错误提醒修改配置文件:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is
ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is
successful

再次加载nginx:

/usr/local/nginx/sbin/nginx -s reload

若是不可能开行,请查看 “/usr/local/nginx/logs/error.log” 文件

LNMP 环境搭建 Linux +
Nginx + MySQL + PHP
PHP是一种脚本语言,当前中国乃至社会风气上选用PHP语言开发的网站非凡广泛
Nginx是一…

 

安装make:

 

一、在Linux系统下nginx的装置进程,先到:

yum -y install gcc automake autoconf libtool make

引进今日头条下载地址:

 cd /usr/local/src  //将安装包下载到/usr/local/src目录下

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

 tar zxvf nginx-1.6.2.tar.gz //解压缩

 cd nginx-1.6.2  //切换到解压后的nginx目录

./configure --prefix=/usr/local/nginx   //安装到/usr/local目录下

查阅make是或不是安装

 

在履行上述命令的时候我的服务器报了一个谬误:

bf88必发唯一官网 1

 

bf88必发唯一官网 2

安装g++:

LAMP安装先后顺序:mysql-》apache-》php

上述失实说找不到C编译器,那就给您装个编译器,输入指令:

yum install gcc gcc-c++

LNMP安装先后顺序:mysql-》php-》nginx(nginx的设置顺序怎么样都无所谓)

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

查阅gcc安装情状

 

实施完后再利用安装命令 ./configure
–prefix=/usr/local/nginx 已经不报上述失实啊,可是又提示了一个新的失实:

bf88必发唯一官网 3

注意:LAMP删除php整个目录也不在乎,因为apache只是调用/usr/local/apache2/modules/libphp5.so那些文件已而

bf88必发唯一官网 4

PCRE库:

apache会自动加载php模块
在apache目录下查找php模块: ls /usr/local/apache2/modules/libphp5.so

HTTP重写模块必要PCRE库,那就要安装PCRE库啦:

Nginx需求PCRE(Perl Compatible Regular
Expression),因为Nginx的Rewrite模块和Http要旨模块都会使用到PCRE正则表达式语法。其下载地址为

编译php的时候修改一下php.ini的义务,否则找不到php.ini不可能启动php
./configure
–with-config-file-path=/usr/local/php/etc

yum install pcre
yum install pcre pcre-devel

 

输入指令居然又提示我一度安装了pcre库,Nothing to do…

翻开pcre安装处境

 

那儿就要检查一下pcre-devel是不是已设置了,同样输入指令:

bf88必发唯一官网 5

上半节课

yum install pcre-devel

zlib库:

LAMP安装先后顺序  

执行命令,果然是向来不devel,输入y继续设置到位,落成将来再一次实施安装命令:

zlib库提供了压缩算法,Nginx很多地点都会用到gzip算法。其下载地址为

LNMP安装先后顺序

./configure --prefix=/usr/local/nginx
yum install zlib zlib-devel

php安装 

结果大失所望又报了一个错:

翻开zlib安装景况

 

bf88必发唯一官网 6

bf88必发唯一官网 7

 

HTTP GZIP模块需求ZLIB库,又是缺少库,根据上面极度套路再走五回吧,命令:

OpenSSL:

下半节课

yum install zlib

Nginx中假如服务器提供安全页面,就需要用到OpenSSL库。其下载地址为

安装nginx

提醒我Nothing to do…,呵呵哒,继续命令:

 

# yum -y install gcc gcc-c++ autoconf automake libtool make cmake
# yum -y install zlib zlib-devel openssl openssl-devel pcre-devel

查看openssl安装情况

创建nginx用户组

# groupadd nginx
# useradd -g nginx -M nginx
# vi /etc/passwd

编制nginx启动脚本

 yum install zlib-devel

找到nginx,将前面的/bin/bash改为/sbin/nologin就不让ssh登录了(vi打开文件后是命令形式状态,要用i或者a命令才可进入可编制的状态,保存文件要按esc,那样就会退缩vi的下令格局。按完esc后输入冒号(英文的),然后就更换来了末行方式了,末行形式决定是还是不是保存文件。末行形式下得以按x来保存,x命令可以保留编辑好的公文。也得以用到wq来保存,如若是q!则不保留,)

布局分析nginx.conf 

果然又是缺乏devel,安装达成后再另行实施安装命令:

编译安装Nginx

懒汉格局 mv /etc/{php-fpm.conf.default,php-fpm.conf}
apache中的php和nginx中的php区别
php运行情势SAPI介绍

 ./configure --prefix=/usr/local/nginx

进入nginx官网,找到最新版本的tar.gz包的链接,执行以下动作。

 

本次算是安装到位了,大约一波三折:

# wget https://nginx.org/download/nginx-1.10.1.tar.gz
# tar zxf nginx-1.10.1.tar.gz
# cd nginx-1.10.1/

 

bf88必发唯一官网 8

执行./configure,把软件设置到/usr/local目录,用conf、etc、sbin、run等进行分类管理。

 

最终执行编译命令:

# ./configure --prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--with-http_ssl_module \
--user=nginx \
--group=nginx \
--with-pcre \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module

 

make && make install

最后三项为禁用nginx作为邮件代理服务器,建议想搭建邮件服务器的同志去阅读nginx搭建邮件服务器的教程。
检查./configure结果,看看有没有报错,有没有缺失模块,即使一切OK,那么往下持续,倘诺感到不对头,可以用./configure
–help认真读书一下。

 

nginx的体积比apache小的多,所以编译所需时间也很短.编译达成后切换来/usr/local/nginx目录将看到三个目录:

# make
# make install
  1. MySQL安装(同LAMP里面的装置方式)

conf 紧要放置配置文件  

设置完了,可是nginx还没有运行

 

html 首要放置网页文件

# cd /usr/local/nginx
# ls
# sbin/nginx

logs 首要放置日志文件 

运行Nginx:

 

sbin 紧要放二进制程序

Nginx会默许安装在/usr/local/nginx目录,大家cd到/usr/local/nginx/sbin/目录,存在一个Nginx二进制可执行文件。直接运行就可以启动Nginx。运行成功后打开浏览器访问此机器的IP,出现如下画面即为成功。

  1. php安装 

想启动nginx的话只需求输入指令:

bf88必发唯一官网 9

 

 ./sbin/nginx 
安装mysql

直接使用yum命令下载mysql5.6来进行安装是不能成功的,安装过程会有问题,这里我们需要使用rpm命令来先进下载。
下载路径为:http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

注意

瞩目:如果你在头里已经设置了apache的话,那时候可能会报一个错误,

自我批评mysql源是还是不是安装成功 

1、php配置参数–with-mysql=/usr/local/mysql 

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)    //这是因为你的80端口已经被占用,启动nginx的时候冲突

netstat -tunlp   //查看正在运行的服务或软件
#  yum repolist enabled | grep “mysql.-community.”

懂的人可以只设置MySQL的库文件不用任何MySQL安装,比如局域网内两台机械,一台是数据库专用,一台是web,web这台也要设置mysql,安装php的时候不可能长途连接mysql

 找到占用80端口的软件照旧服务将其关闭即可,之后再输入./sbin/nginx 命令,如果人品正常的话应该早就不足为奇启动了.

bf88必发唯一官网 10

–with-mysql=192.168.1.23/usr/local/mysql 那样布置是错的

 

并发那么些就意味着安装成功了

可是web那台的mysql可以不启动mysql服务

二、yum安装MySQL:

安装mysql

 

yum install mysql mysql-devel mysql-server
 # yum install mysql-community-server

2、–prefix=/usr/local/php 、–with-config-file-path=/usr/local/php/etc

 这么些没啥好说的,一路y安装下来即可

bf88必发唯一官网 11

设若原先已经安装过php,必须指定一个不比的名字,防止覆盖从前安装的php,比如改名为/usr/local/php-fpm
,/usr/local/php-fpm/etc

 

bf88必发唯一官网 12

 

三、安装PHP:

这一个历程中会提醒安装一些有关的软件,点击“y”就可以了。

3、器重库文件一般不会有何难点,因为依靠的库文件都在安装上节课LAMP的时候安装上了

先到PHP官网找到要求的版本将回落包下载下来,那里以php-5.6版本为例上传来服务器/usr/local/src/目录下,进入到命令行形式,输入指令:

如此mysql就安装成功了

 

tar zxvf php-5.6.36.tar.gz   

接下来启动mysql

4、把apache的侦听端口改为8080要么把apache侦听ip改为lo这一个网卡,否则nginx和apache使用同样的侦听端口会启动败北

解压之后展开编译,编译的时候须求充足一些支持,如mysqlnd、ttf、gd等(ps:Apache+PHP的编译安装和nginx+PHP的设置是分歧的,

# systemctl start mysqld

 

apache一般是把php当做自己的一个模块来启动的,而nginx则是把http请求变量转载给php进度,即将php当做一个独立进度与nginx进行通讯,称为
fastcgi运行格局):

起步完事后查看mysql状态

5、php安装进程中缺乏看重文件,查看一下然后安装

./configure --prefix=/usr/local/php --with-mysql=mysqlnd --enable-mysqlnd --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm
systemctl status mysqld

yum list |grep -i curl
yum install -y libcurl-devel.i686

编译时索要留意可能会唤起错误,如紧缺某些包,那时候像上边安装nginx一样的老路,比如自己遇见未找到libxml2的失实,直接下令:

bf88必发唯一官网 13

 

 yum install libxml2

现身上边的那个,那么恭喜您,你曾经打响的装置已毕了mysql。

yum install -y libcurl-devel.i686
yum install -y libpng-devel
yum install -y freetype-devel.x86_64 
yum install -y libpng-devel
yum install libjpeg-devel -y
yum install -y libcurl-devel
yum install gcc -y
yum install libxslt-devel  -y
yum install libmcrypt libmcrypt-devel -y
wget http://cn2.php.net/distributions/php-5.4.37.tar.bz2
tar jxf php-5.4.37.tar.bz2
groupadd php-fpm
useradd -s /sbin/nologin -g php-fpm  -d /dev/null  php-fpm 
mkdir -p /usr/local/php-fpm 
cd php-5.4.37
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --disable-ipv6 --with-curl     

//即使编译的时候指定了php的用户和组,以后还可以通过修改配置文件(php-fpm.conf)来修改--with-fpm-user=php-fpm --with-fpm-group=php-fpm
echo $?
make && make install
echo $?
cp php.ini-production /usr/local/php-fpm/etc/php.ini
cp /download/php-5.4.37/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm   //拷贝启动脚本
mv   /usr/local/php-fpm/etc/{php-fpm.conf.default,php-fpm.conf}    //php-fpm的配置文件
chmod 755 /etc/init.d/php-fpm 
chkconfig --add php-fpm
service php-fpm start 
chkconfig php-fpm on

唤醒我Nothing to do…再来一条命令:

安装开机启动

 

yum install libxml2-devel
# systemctl enable mysqld 

# systemctl daemon-reload

./configure的时候报错:

果然又是紧缺devel,安装到位后重新编译,落成后别忘记:

将mysql启动以后,初始开展一些骨干新闻的设置。输入设置命令:

configure: error: Please reinstall the libcurl distribution -easy.h
should be in <curl-dir>/include/curl/
yum install -y libcurl-devel

make && make install
# mysql_secure_installation

 

编译完毕后还要做一些PHP的配置操作:

bf88必发唯一官网 14

configure: error: jpeglib.h not found.
yum install libjpeg-devel -y

cp /usr/local/src/php-5.6.36/php.ini-development php.ini-production

cp /usr/local/src/php-5.6.36/php.ini-development ./lib/php.ini

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

接下来继续回车:

 

到此处就曾经已毕了LNMP的搭建,别忘了cd /usr/local/php目录启动PHP:

bf88必发唯一官网 15

configure: error: png.h not found.
yum install -y libpng-devel

./sbin/php-fpm

netstat -tunlp   //查看正在运行的服务或软件

安装之后 确认密码,然后回车:

 

bf88必发唯一官网 16

bf88必发唯一官网 17

configure: error: freetype-config not found.
yum install -y freetype-devel.x86_64

挑选否后 回车,继续下一步:

 

bf88必发唯一官网 18


分选否之后,继续回车下一步:

 

bf88必发唯一官网 19

  1. 安装nginx

    rpm -qa nginx //查看是或不是业已安装过nginx 把他卸载
    yum remove nginx
    cd /download
    wget
    tar zxvf nginx-1.6.3.tar.gz
    cd nginx-1.6.3

    yum install -y pcre-devel //安装pcre 为了保障能在 Nginx 中选拔正则表明式进行更灵敏安顿安装以前须要规定系统是不是安装有 PCRE(Perl Compatible Regular Expressions)包
    ./configure –prefix=/usr/local/nginx –with-pcre
    make && make install

慎选否之后延续回车下一步:

启动nginx: 
/usr/local/nginx/sbin/nginx

bf88必发唯一官网 20

 

安装成功后就OK了。

 

时至明日mysql就设置成功了。


好麻烦,好累,好坑啊!!!!

 

 安装php7

 

下载php7源码包

  1. 编纂nginx启动脚本

    vi /etc/init.d/nginx //出席如下内容
    #!/bin/bash
    # chkconfig: 35 30 21 //3级别 5级别 可以参考/etc/init.d/iptables
    # description: http service.
    # Source Function Library
    . /etc/init.d/functions
    # Nginx Settings

    NGINX_SBIN=”/usr/local/nginx/sbin/nginx” //注意路径
    NGINX_CONF=”/usr/local/nginx/conf/nginx.conf” //注意路径
    NGINX_PID=”/usr/local/nginx/logs/nginx.pid” //注意路径
    RE电视AL=0
    prog=”Nginx”

    start() {
    echo -n $”Starting $prog: ”
    mkdir -p /dev/shm/nginx_temp
    daemon $NGINX_SBIN -c $NGINX_CONF
    RETVAL=$?
    echo
    return $RETVAL
    }

    stop() {
    echo -n $”Stopping $prog: ”
    killproc -p $NGINX_PID $NGINX_SBIN -TERM
    rm -rf /dev/shm/nginx_temp
    RETVAL=$?
    echo
    return $RETVAL
    }

    reload(){
    echo -n $”Reloading $prog: ”
    killproc -p $NGINX_PID $NGINX_SBIN -HUP
    RETVAL=$?
    echo
    return $RETVAL
    }

    restart(){
    stop
    start
    }

    configtest(){
    $NGINX_SBIN -c $NGINX_CONF -t
    return 0
    }

    case “$1″ in
    start)
    start
    ;;
    stop)
    stop
    ;;
    reload)
    reload
    ;;
    restart)
    restart
    ;;
    configtest)
    configtest
    ;;
    *)
    echo $”Usage: $0 {start|stop|reload|restart|configtest}”
    RETVAL=1
    esac
    exit $RETVAL

    保存后,执行
    chmod a+x /etc/init.d/nginx
    chkconfig –add nginx
    chkconfig nginx on
    chkconfig –list nginx
    killall httpd
    service nginx start

#  wget -O php7.tar.gz http://cn2.php.net/get/php-7.0.1.tar.gz/from/this/mirror

 

解压源码包

 

#  tar -xvf php7.tar.gz

 

跻身目录

 

# cd php-7.0.1

ps aux |grep nginx |grep -v grep

安装php 依赖包

root 5160 0.0 0.0 23812 780 ? Ss 21:02 0:00 nginx: master process
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody 5161 0.0 0.1 24236 1380 ? S 21:02 0:00 nginx: worker process

#  yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

 

接下去要拓展编译前的安顿,大家须求提供php-fpm相关参数

 

# ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --with-fpm-user=nginx  --with-fpm-group=nginx --enable-inline-optimization --disable-debug --disable-rpath --enable-shared  --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir  --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache

nginx.conf里可以更改子进度的属主为其它,那么更改属主之后也要chown
/usr/local/nginx/上边的某些临时文件/目录的属主,否则不可能读写这个临时文件/目录,默许是nobody
子进程:nobody 5161 0.0 0.1 24236 1380 ? S 21:02 0:00 nginx: worker
process

配备不错后执行:

bf88必发唯一官网 21

# make
# make install

bf88必发唯一官网 22

bf88必发唯一官网 23

 

累加 PHP 命令到环境变量:


# vim /etc/profile

 

在结尾参与:

 

PATH=$PATH:/usr/local/php/bin
export PATH
  1. 配置分析nginx.conf 
    vi /usr/local/nginx/conf/nginx.conf
    //把上边的布置,前边的#删除,并更改fastcgi_param SCRIPT_FILENAME
    那一行

    server {
    listen 80;
    server_name www.123.com;

    #access_log logs/www.123.com.access.log main; //#设定本虚拟主机的拜访日志

要使改动立时生效实施:

location / {

root /data/www;
index index.php index.html index.htm;
}

//PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.

location ~ \.php$ {
root /data/www;    //这里要改
fastcgi_pass 127.0.0.1:9000;   //PHP监听端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;   //这里要改
include fastcgi_params; }
# source /etc/profile

 

查看环境变量:

测试  /usr/local/nginx/sbin/nginx -t
再度加载 /usr/local/nginx/sbin/nginx -s reload

# echo $PATH

vim /usr/local/nginx/html/1.php
增加
<?php
phpinfo();
?>

bf88必发唯一官网 24

测试: curl  localhost/1.php

可以看来php的bin目录已经在环境变量里面了

 

查看php版本:

 

# php -v

bf88必发唯一官网 25

懒汉格局  

配置php-fpm:

前提:都在同一个索引下

# cp php.ini-production /etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm

同一个索引下多少个文件须要mv

是因为php-fpm走的是9000端口,外网是无法访问的,我们须要在nginx的安排文件中扩大代理的规则,即可让用户在拜访80端口,请求php的时候,交由后端的fpm去实践。

mv   /usr/local/php/etc/{php-fpm.conf.default,php-fpm.conf}

启动php-fpm:

mkdir /usr/local/{data,logs}

# /etc/init.d/php-fpm start

效果:将 /usr/local/php/etc/php-fpm.conf.default
改名为/usr/local/php/etc/php-fpm.conf

bf88必发唯一官网 26

 

配置nginx虚拟机:


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;
        }

 

将script 改为$document_root即可。

apache中的php和nginx中的php区别

重启nginx:

libphp5.so:只是一个模块

# service nginx reload

php-fpm:完整的先后 可以监听端口 可以活动启动

然后就OK了。

php:只是一个可执行程序,不得以活动启动,不可以监听端口

CentOS 7源码编译安装PHP5.6和Nginx1.7.9及MySQL(搭建LNMP环境)

Ubuntu 14.04 LTS 安装
LNMP Nginx\PHP5 (PHP-FPM)\MySQL 

CentOS 6.8 编译安装LNMP 简述 

Ubuntu 16.04 下源码配置LNMP开发环境

CentOS 7源码编译安装PHP5.6和Nginx1.7.9及MySQL(搭建LNMP环境)

CentOS 7源码安装新型版LNMP环境

CentOS 6.8 安装LNMP环境(Linux+Nginx+MySQL+PHP) 

Ubuntu系统下LNMP环境的搭建 

编译LNMP之Nginx+php-fpm 

Ubuntu 16.04 LTS下LNMP环境陈设简述 

 

本文永久更新链接地址

nginx只是代理php,本身不加载php模块

bf88必发唯一官网 27

apache自始至终都是httpd进程在实施,只是加载了php模块,拥有php脚本解析效用

 

tar zxf php-5.3.28.tar.gz
cd php-5.3.28
./configure
–prefix=/usr/local/php //那么些肯定要加
–with-apxs2=/usr/local/apache2/bin/apxs //一定要加 结合apache
要先安装perl否则会报错

bf88必发唯一官网 28


 

php源码编译常见错误解决方案

 


 

推而广之阅读

php运行格局SAPI介绍

SAPI:Server Application Programming Interface
服务器端应用编程接口。它就是PHP与任何应用交互的接口,PHP脚本要执行有很多种措施,通过Web服务器,或者直接在命令行下,也足以松开在其他程序中。
SAPI提供了一个和外部通讯的接口,常见的SAPI有:cgi
、fast-cgi、cli、isapi、apache 模块的 DLL

1、CGI
CGI即通用网关接口(Common Gateway
Interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行顺序连接起来,它把HTML接收的命令传递给服务器的执
行程序,再把服务器执行顺序的结果返还给HTML页。CGI
的跨平台质量极佳,大约可以在任何操作系统上贯彻。
CGI形式在遇见屡次三番请求(用户
请求)先要创设cgi的子进程,激活一个CGI进度,然后处理请求,处理完后终止这么些子进程。这就是fork-and-execute方式。所以用cgi
格局的服务器有些许连接请求就会有多少cgi子进度,子进度反复加载是cgi品质低下的重中之重原因。都会当用户请求数量极度多时,会多量占用系统的资源如内
存,CPU时间等,造成机能低下。

2、FastCGI
fast-cgi
是cgi的提拔版本,FastCGI像是一个常驻(long-live)型的CGI,它能够直接执行着,只要激活后,不会每趟都要费用时间去fork一回。PHP使用PHP-FPM(法斯特CGI Process Manager),全称PHP
法斯特CGI进度管理器进行保管。
法斯特CGI的做事原理
Web Server启动时载入法斯特CGI进度管理器(IIS ISAPI或Apache Module)
法斯特CGI进度管理器自身早先化,启动七个CGI解释器进程(可知三个php-cgi)并等候来自Web
Server的连天。
当客户端请求到达Web
Server时,法斯特CGI进程管理器采取并连接到一个CGI解释器。Web
server将CGI环境变量和正式输入发送到法斯特CGI子进度php-cgi。
法斯特CGI子进度完结处理后将业内输出和错误消息从同一而再接重回WebServer。
当FastCGI子进度关闭连接时,请求便告处理完了。FastCGI子进度接着等待并处理来自法斯特CGI进度管理器(运行在Web
Server中)的下一个总是。 在CGI格局中,php-cgi在此便退出了。

在上述情形中,你可以想象CGI平常有多慢。每一个Web
请求PHP都无法不另行分析php.ini、重新载入全体扩展不分畛域开端化全体数据结构。使用法斯特CGI,所有那么些都只在进程启动时暴发五回。一个外加的
好处是,持续数据库连接(Persistent database connection)可以干活。

3、APACHE2HANDLER
PHP作为Apache模块,Apache服务器在系统启动后,预先生成多少个经过副本驻留在内存中,一旦有请求出现,就立刻使用那一个空余的子进度举办处理,那样就不设有生成子进度造成的延期了。这么些服务器副本在拍卖完四回HTTP请求之后并不及时退出,而是停留在计算机中等候下次呼吁。对于客户浏览器的哀告反应更快,质量较高。

4、apache模块的DLL:
该运行形式是大家原先在windows环境下使用apache服务器日常使用的,而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。(是apache在CGI的底蕴上进展的一种增添,加速PHP的周转效能)libphp5.so
linux下

5、ISAPI 微软IIS:
ISAPI即Internet Server Application Program
Interface,是微软提供的一套面向Internet服务的API接口.一个ISAPI的DLL,可以在被用户请求激活后长驻内存,等待用户的另一个呼吁,还足以在一个DLL里设置七个用户请求处理函数,别的,ISAPI的DLL应用程序和WWW服务器处于同一个经过中,效能要领悟高于CGI。

cli:[php CLI格局介绍]
cli是php的命令行运行方式,我们平常会使用它,然而也许并没有放在心上到(例如:大家在linux下平常使用
“php -m”查找PHP安装了那个扩大就是PHP命令行运行方式;

 

root@steven php-5.4.37]# ls sapi/
aolserver       caudium     fpm        phttpd  tux
apache          cgi         isapi      pi3web  webjames
apache2filter   cli         litespeed  roxen
apache2handler  continuity  milter     tests
apache_hooks    embed       nsapi      thttpd

 

fpm
apache
cgi
isapi
cli
apache2handler

 


 

PCRE 库 正则要求用 nginx php

PCRE 
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包含 perl
包容的正则表明式库。那么些在执行正式表明式形式匹配时用与Perl
5同样的语法和语义是很有用的。Boost太庞大了,使用boost
regex后,程序的编译速度显著变慢。测试了瞬间,同样一个主次,使用boost::regex编译时索要3秒,而使用pcre不到1秒。因而改用pcre来缓解C语言中应用正则表明式的题材

PCRE(Perl Compatible Regular
Expressions普通话意思:perl语言包容正则表明式)是一个用C语言编写的正则表明式函数库,由菲利普.海泽(PhilipHazel)编写。PCRE是一个轻量级的函数库,比Boost之类的正则表明式库小得多。PCRE至极易用,同时作用也很强大,品质领先了POSIX正则表明式库和一些经典的正则表明式库[1]

和Boost正则表明式库的可比显示[2]
,双方的特性相差无几,PCRE在相当不难字符串时更快,Boost则在协作较长字符串时胜出—但两者反差很小,考虑到PCRE的大小和易用性,大家能够认为PCRE更值得考虑。
PCRE被大面积选取在不胜枚举开源软件之中,最盛名的其实Apache
HTTP服务器和PHP脚本语言、R脚本语言,别的,正如从其名字所能看到的,PCRE也是perl语言的缺省正则库。
PCRE是用C语言落成的,其C++完成版本是PCRE++。
PCRE最新的版本是8.33,可以在其官方网站下载,官网地址见增加阅读部分。

 


nginx详细安装步骤  自然要过细看
!!

接下去安装 Nginx,Nginx
一般有多个本子,分别是稳定版和开发版,您可以依据你的目的来摘取那七个本子的内部一个,上面是把
Nginx 安装到 /opt/nginx 目录下的详细步骤:

# wget
# tar zxvf nginx-0.6.31.tar.gz
# cd nginx-0.6.31
# ./configure –with-http_stub_status_module –prefix=/opt/nginx
# make
# make install

里面参数 –with-http_stub_status_module 是为着启用 nginx 的 NginxStatus 效用,用来监督 Nginx
的当下场合。要运用监控宝监控nginx也要安装NginxStatus

安装成功后 /opt/nginx 目录下有八个子目录分别是:conf、html、logs、sbin
。其中 Nginx 的配备文件存放于 conf/nginx.conf,Nginx
唯有一个主次文件位于 sbin 目录下的 nginx 文件。确保系统的 80
端口没被此外程序占用,运行 sbin/nginx 命令来启动
Nginx,打开浏览器访问此机器的 IP,借使浏览器出现 Welcome to nginx!
则代表 Nginx 已经安装并运行成功。

 建华的设置脚本也有

cd /software/nginx-1.4.6 && ./configure --sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx/nginx.pid \
--error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log \
--user=nginx --group=nginx --with-pcre --with-http_gzip_static_module --with-http_ssl_module \
--with-http_realip_module --with-http_geoip_module --with-http_stub_status_module   \
--add-module=/usr/local/nginx_upstream_check_module-master \
--add-module=/usr/local/ngx_cache_purge-2.1   --with-http_gunzip_module \
--add-module=/usr/local/ngx_req_status-master && make -j2 && make install

 

 

 

f

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图