Ali云CentOS下LNMP环境搭建,LNMP环境搭建详细教程

以前有一篇博客写的是LAMP的条件搭建,后天来详细介绍一下别的一个格局——LNMP=Linux+Nginx+MySQL+PHP。

笔录下在Ali云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介绍 
第①十三节课

Ali云CentOS下LNMP环境搭建,LNMP环境搭建详细教程。LNMP环境搭建,lnmp搭建

LNMP环境搭建

Linux + Nginx + MySQL + PHP

PHP是一种脚本语言,当前中华甚至世界上运用PHP语言开发的网站异平日见

Nginx是3个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

那是62人的包,叁十一个人系统要用三二十一位的包:

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

Ali云CentOS下LNMP环境搭建,LNMP环境搭建详细教程。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_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

此地要先声惠氏下,针对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/

消除办法:

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

上述每3个步骤,若是没有完全履行不利,那么下一步是力不从心举行的,是不是还记得判断执行是不是科学的措施?
使用 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-2012-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.配置编译参数

cd nginx-1.4.4

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

编辑进度中出错:

checking for PCRE library … not found

www.5929.com,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是不是安装

 

在进行上述命令的时候小编的服务器报了三个荒唐:

www.5929.com 1

 

www.5929.com 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 已经不报上述荒唐啊,可是又指示了1个新的谬误:

www.5929.com 3

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

www.5929.com 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是或不是已设置了,同样输入指令:

www.5929.com 5

上半节课

yum install pcre-devel

zlib库:

LAMP安装先后顺序  

执行命令,果然是未曾devel,输入y继续设置完结,落成之后重新实施安装命令:

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

LNMP安装先后顺序

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

php安装 

结果白璧微瑕又报了1个错:

查看zlib安装景况

 

www.5929.com 6

www.5929.com 7

 

HTTP GZIP模块要求ZLIB库,又是缺乏库,依照下边十三分套路再走3遍吧,命令:

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/

 

www.5929.com 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/目录,存在1个Nginx二进制可执行文件。直接运营就足以运转Nginx。运维成功后打开浏览器访问此机器的IP,出现如下画面即为成功。

  1. php安装 

想运营nginx的话只须要输入指令:

www.5929.com 9

 

 ./sbin/nginx 
安装mysql

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

注意

瞩目:如若您在面前已经安装了apache的话,那时候或者会报3个不当,

检查mysql源是不是安装成功 

① 、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 命令,就算人品不奇怪的话应该已经平常运行了.

www.5929.com 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安装下来即可

www.5929.com 11

设若原先早就安装过php,必须钦命二个不一致的名字,防止覆盖从前安装的php,比如改名为/usr/local/php-fpm
,/usr/local/php-fpm/etc

 

www.5929.com 12

 

三、安装PHP:

以此进度中会提醒安装一些唇齿相依的软件,点击“y”就能够了。

③ 、着重库文件一般不会有怎么着难点,因为依靠的库文件都在设置上节课LAMP的时候安装上了

先到PHP官网找到要求的本子将减小包下载下来,那里以php-5.6版本为例上盛传服务器/usr/local/src/目录下,进入到命令走势势,输入指令:

如此那般mysql就设置成功了

 

tar zxvf php-5.6.36.tar.gz   

然后运转mysql

四 、把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状态

⑤ 、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的荒唐,间接下令:

www.5929.com 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的配备操作:

www.5929.com 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:

www.5929.com 15

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

./sbin/php-fpm

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

设置之后 确认密码,然后回车:

 

www.5929.com 16

www.5929.com 17

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

拔取否后 回车,继续下一步:

 

www.5929.com 18


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

 

www.5929.com 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

www.5929.com 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” //注意路径
    RETVAL=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

陈设不错后实施:

www.5929.com 21

# make
# make install

www.5929.com 22

www.5929.com 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();
?>

www.5929.com 24

测试: curl  localhost/1.php

能够观望php的bin目录已经在环境变量里面了

 

查看php版本:

 

# php -v

www.5929.com 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走的是8000端口,外网是不能访问的,大家须要在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

www.5929.com 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:只是3个可执行程序,不得以自行运行,不得以监听端口

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模块

www.5929.com 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否则会报错

www.5929.com 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的升级版本,法斯特CGI像是二个常驻(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。
当法斯特CGI子进度关闭连接时,请求便告处理已毕。法斯特CGI子进程接着等待并处理来自法斯特CGI进度管理器(运营在Web
Server中)的下1个连连。 在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,可以在被用户请求激活后长驻内存,等待用户的另一个呼吁,还是可以在3个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)是1个Perl库,包蕴 perl
包容的正则表明式库。那么些在实施规范说明式格局匹配时用与Perl
5同样的语法和语义是很有用的。Boost太庞大了,使用boost
regex后,程序的编译速度鲜明变慢。测试了一晃,同样二个程序,使用boost::regex编译时索要3秒,而采纳pcre不到1秒。由此改用pcre来缓解C语言中选择正则表明式的难点

PCRE(Perl Compatible Regular
Expressions汉语意思:perl语言包容正则表明式)是八个用C语言编写的正则表明式函数库,由Philip.海泽(Philip
Hazel)编写。PCRE是三个轻量级的函数库,比Boost之类的正则表达式库小得多。PCRE拾贰分易用,同时功用也很强大,质量超越了POSIX正则表明式库和局地经文的正则表明式库[1]

和Boost正则表明式库的可比显示[2]
,双方的习性相差无几,PCRE在杰出简单字符串时更快,Boost则在同盟较长字符串时胜出—但两者反差不离都不大,考虑到PCRE的深浅和易用性,大家可以认为PCRE更值得考虑。
PCRE被周边运用在诸多开源软件之中,最资深的莫过于Apache
HTTP服务器和PHP脚本语言、途达脚本语言,其余,正如从其名字所能看到的,PCRE也是perl语言的缺省正则库。
PCRE是用C语言落成的,其C++落成版本是PCRE++。
PCRE最新的版本是8.33,可以在其官方网站下载,官网地址见伸张阅读部分。

 


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

接下去安装 Nginx,Nginx
一般有多少个本子,分别是稳定版和开发版,您可以依照你的目标来选取那八个版本的里边1个,下边是把
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

Leave a Comment.