CentOS7中安装配置PHP7+Nginx

我是把centos7安装在了Virtualbox中,使用的是NAT方式,然后使用端口转发就可以在window中访问到centos了。

这里关于NAT方式以及端口转发不再详细说明。

不过CentOS7中不再使用iptables,而是默认使用firewalld防火墙,我们通常使用的端口一般都被墙掉了,firewalld中可以通过以下两个命令查看和开发端口。

firewall-cmd --query-port=80/tcp //查看80端口是否被墙掉
firewall-cmd -add-port=80/tcp   //开放80端口。
到了这个时候就可以安装一些准备环境了,包括编译环境,以及nginx和php7依赖的一些包。

编译环境我安装了以下三个

yum install gcc gcc-c++ autoconf -y
然后就是安装一些nginx的依赖包,暂时先安装以下这几个,编译过程中如果不过,按照提示,再使用yum安装即可。

yum install openssl openssl-devel zlib zlib-devel libxml2 libxml2-devel pcre pcre-deve -y
最后的pcre centos7中应该默认是安装了一个,devel是pcre的开发包,我们需要的是这个包,如果没有安装-devel的包,编译的时候一样会提示没有安装pcre。

准备环境准备好了之后就是编译安装nginx了。

解压

tar -zxvf nginx-1.9.9.tar.gz
然后是编译,编译之前可以使用

./configure --help
查看一下编译的选项,nginx编译的时候配置一下几个就可以,其他默认安装。

./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock
然后

make && make install
安装成功之后,可以去/etc/nginx目录下查看一下。

nginx.conf 是配置文件  html文件夹下放置web应用。暂时先了解这两个。

================================================

然后安装php7

php7是今年的重磅推出的全新版本,性能提高了不是一点两点啊据说提高了一倍,很是诱人。

下面介绍在centos7中怎么安装php7

如果前面的准备工作已经做好了,基本没什么需要注意的地方

解压,编译,安装

编译的时候

./configure --prefix=/usr/local/php7
很顺利的编译通过,然后

make && make install

安装之后在/usr/local/php7/etc/ 目录下没有php.ini文件,只有一个pear.conf,这个php.ini文件我们需要从php7安装包里拷贝过来,php7安装包里有php.ini-development 和php.ini-production两个,我是拷贝了development那个配置文件。

Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用“这句话是从别地找的,不知道是不是准确。

配置nginx.conf文件。这个其实应该另用一篇文章来说明。

这里简单说一下,配置的是

        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;
        }
注意fastcgi-param的配置。

总之PHP启动的时候是这样启动的。

php-cgi -b 127.0.0.1:9000 -c /usr/local/php7/etc/php.ini
像是开启了一个服务,其实通过

netstat -tnlp
命令可以查看到启动了一个进程,此时也可以看到nginx开启的80

这个时候我们可以在window上通过访问vbox虚拟的网卡的网关,来访问centos的80端口。

这个时候会发现php7的所有扩展没有一个支持的,对啊,安装的时候只是配置了--prefix,其他的扩展全部都没有

查看/usr/local/php7/lib/php/extensions/下有个目录一般是叫no-debug-non-zts-20151012

这个目录下放的是php7的扩展。

怎么通过编译安装php7的扩展呢,其实和其他版本一样,

/usr/local/php7/bin/目录下有个phpize可执行文件,通过这个编译扩展。

php7安装包中有个ext目录,进入到这个目录,可以看到php7的许多扩展,比如我们想要安装mbstring这个

那么进入mbstring目录

然后执行 /usr/local/php7/bin/phpize,这个时候如果没有保存,那么接着使用

./configure --with-php-config=/usr/local/php7/bin/php-config
然后就是make && make install安装成功之后, /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012目录下就会出现mbstring.so,然后在php.ini文件中添加 extension=mbstring.so就可以了

一般还需要修改php.ini文件中extension_dir这个配置,让其指向/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012,就可以了。

到这个时候应该就差不多了。








你可能感兴趣的:(php)