懒汉情势,Ali云CentOS下LNMP环境搭建

以前有一篇博客写的是LAMP的环境搭建,明天来详细介绍一下其余二个情势——LNMP=Linux+Nginx+MySQL+PHP。

笔录下在Ali云CentOS下LNMP环境搭建过程,首先,须求安装C语言的编译环境,因为Nginx是C语言编写的。平日半数以上Linux都会暗许安装GCC,若是没有的话,可以如下安装。

centos  LNMP第2部分环境搭建 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

那是6肆个人的包,叁12位系统要用三十三位的包:

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_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]懒汉情势,Ali云CentOS下LNMP环境搭建。
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

以上每2个步骤,如若没有完全执行不利,那么下一步是心有余而力不足举办的,是还是不是还记得判断执行是还是不是科学的章程?
使用 echo $? 看结果是不是为 “0” , 假诺不是,就是从未实施不利。

7.拷Bab署文件

[[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-二〇一一-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

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是不是安装

 

在实施上述命令的时候小编的服务器报了贰个错误:

亚洲必赢官网 1

 

亚洲必赢官网 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 已经不报上述失实啊,不过又指示了三个新的不当:

亚洲必赢官网 3

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

亚洲必赢官网 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是不是已设置了,同样输入指令:

亚洲必赢官网 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安装意况

 

亚洲必赢官网 6

亚洲必赢官网 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/

 

亚洲必赢官网 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/目录,存在2个Nginx二进制可执行文件。直接运维就足以运维Nginx。运转成功后打开浏览器访问此机器的IP,现身如下画面即为成功。

  1. php安装 

想运转nginx的话只必要输入指令:

亚洲必赢官网 9

 

 ./sbin/nginx 
安装mysql

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

注意

只顾:假使你在面前已经安装了apache的话,这时候或许会报1个谬误,

自小编批评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 命令,如果人品符合规律的话应该早就不足为奇运转了.

亚洲必赢官网 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安装下来即可

亚洲必赢官网 11

假使原先早就设置过php,必须钦点三个不一致的名字,避防覆盖此前设置的php,比如改名为/usr/local/php-fpm
,/usr/local/php-fpm/etc

 

亚洲必赢官网 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当做1个独门进度与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的荒谬,直接下令:

亚洲必赢官网 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的安排操作:

亚洲必赢官网 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:

亚洲必赢官网 15

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

./sbin/php-fpm

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

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

 

亚洲必赢官网 16

亚洲必赢官网 17

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

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

 

亚洲必赢官网 18


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

 

亚洲必赢官网 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

亚洲必赢官网 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

配备不错后实施:

亚洲必赢官网 21

# make
# make install

亚洲必赢官网 22

亚洲必赢官网 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();
?>

亚洲必赢官网 24

测试: curl  localhost/1.php

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

 

查看php版本:

 

# php -v

亚洲必赢官网 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走的是七千端口,外网是无法访问的,我们要求在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

亚洲必赢官网 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:只是1个模块

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

亚洲必赢官网 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否则会报错

亚洲必赢官网 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的子进程,激活2个CGI进度,然后处理请求,处理完后竣事那个子进度。那就是fork-and-execute情势。所以用cgi
格局的服务器有稍许连接请求就会有稍许cgi子进度,子进程反复加载是cgi品质低下的重中之重原因。都会当用户请求数量极度多时,会大方据为己有系统的能源如内
存,CPU时间等,造成机能低下。

2、FastCGI
fast-cgi
是cgi的升级版本,法斯特CGI像是3个常驻(long-live)型的CGI,它可以直接实行着,只要激活后,不会每一趟都要开支时间去fork几回。PHP使用PHP-FPM(法斯特CGI Process Manager),全称PHP
FastCGI进度管理器进行管制。
法斯特CGI的干活原理
Web Server运转时载入FastCGI进度管理器(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中)的下贰个一连。 在CGI形式中,php-cgi在此便退出了。

在上述情状中,你可以设想CGI常常有多慢。各个Web
请求PHP都必须再一次分析php.ini、重新载入全体增添不偏不倚起先化全体数据结构。使用法斯特CGI,全部这么些都只在进度运行时暴发三回。3个外加的
好处是,持续数据库连接(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安装了那1个扩充就是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)是3个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是3个轻量级的函数库,比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
一般有七个本子,分别是稳定版和开发版,您可以依据你的目标来抉择那三个本子的内部多个,下边是把
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
唯有3个主次文件位于 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地图