php7如何源码编译安装-PHP7

资源魔 40 0

下载最新版的php 7.0.5 的源码包:

  

下载上去之后上传至效劳器

由于php装置需求编译,以是效劳器应该保障gcc以及g++环境的装置

保举教程:《PHP视频教程》

起首开释装置包:

tar -xvzf php-7.0.5.tar.gz
cd php-7.0.5

接上去进行参数设置装备摆设,设置装备摆设前假如不libxml2以及libxml2-devel会报错,以是应该更新libxml2并装置libxml2-devel,应用正在线装置:

yum -y install libxml2
yum -y install libxml2-devel

  增补,由于没有同的操作零碎环境,零碎装置开发环境包的完好水平也没有相反,以是倡议装置操作零碎的时分做须要抉择,也能够对立执行一遍一切的饬令,将不装置的组件装置好,假如曾经装置了可能会进行晋级,版本齐全分歧则没有会进行任何操作,饬令除了下面2个以外,汇总以下:

复制代码

yum -y install openssl
yum -y install openssl-devel
yum -y install curl
yum -y install curl-devel
yum -y install libjpeg
yum -y install libjpeg-devel
yum -y install libpng
yum -y install libpng-devel
yum -y install freetype
yum -y install freetype-devel
yum -y install pcre
yum -y install pcre-devel
yum -y install libxslt
yum -y install libxslt-devel
yum -y install bzip2
yum -y install bzip2-devel

复制代码

  以上这些包根本上够用了,假如发现成绩再增补,装置实现之后,执行设置装备摆设:

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

  实际上这里的设置装备摆设项比上述还多,能够应用 ./configure --help 饬令查看一切选项,这里留意正在php7中--with-mysql原生支持曾经没有存正在了,操作都变为mysqli或许pdo了;以上这些选项正在失常的php开发中齐全够用了,前期假如需求,能够抉择手动开启相应的模块

  而后执行编译:

make

  编译工夫可能会有点长,编译实现之后,执行装置:

make install

  php的默许装置地位下面曾经指定为/usr/local/php,接上去设置装备摆设相应的文件:

cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/sbin/php-fpm /usr/local/bin

  而后设置php.ini,应用: vim /usr/local/php/lib/php.ini 关上php设置装备摆设文件找到cgi.fix_pathinfo设置装备摆设项,这一项默许被正文而且值为1,依据民间文档的阐明,这里为了当文件没有存正在时,阻止Nginx将申请发送到后真个PHP-FPM模块,从而防止歹意剧本注入的攻打,以是此项应该去掉正文并设置为0

  

  设置终了保留并加入

  另外留意一个中央就是php.ini设置装备摆设文件的地位能够正在编译前设置装备摆设参数中设置,编译参数能够写成:--with-config-file-path=/usr/local/php 这样的话php就归去指定的目次下读取php.ini设置装备摆设文件,假如没有加这个参数默许地位就是php装置目次下的lib目次,详细也能够正在phpinfo()输入界面查看,假如php.ini放到其余地位,php读取没有到,那末一切的设置装备摆设修正后都是没有失效的,这点要留意

  此时起首应该创立web用户:

groupadd www-data
useradd -g www-data www-data

  而后网上一些教程说让修正php-fpm.conf增加以上创立的用户以及组,这时候候应用 vim /usr/local/etc/php-fpm.conf 关上文件后找没有到民间所提醒的地位:

  

  假如此时随意正在一个地位增加,那末接上去启动php-fpm的时分,会报目次找没有到的谬误,以是没有要正在php-fpm.conf中增加用户以及组,这个时分翻到php-fpm.conf最初一行会发现以下内容(假如编译时增加--prefix选项如下地位会主动补全,默许是上面是空的,要留意):

  

  这里引入了php-fpm.d目次下一切的conf设置装备摆设文件,然而NONE需求修正为咱们的实际目次:/usr/local

  

  默许状况下etc/php-fpm.d/下有一个名为www.conf.defalut的设置装备摆设用户的文件,执行上面饬令复制一个新文件而且关上:

cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
vim /usr/local/etc/php-fpm.d/www.conf

  默许user以及group的设置为nobody,将其改成www-data

  

  修正实现之后,保留并加入,而后执行如下饬令启动php-fpm效劳:

/usr/local/bin/php-fpm

  启动终了之后,php-fpm效劳默许应用9000端口,应用 netstat -ntlp | grep 9000 能够查看端口应用状况:

  

  9000端口失常应用,阐明php-fpm效劳启动胜利

  而后执行 vim /usr/local/nginx/nginx.conf 编纂nginx设置装备摆设文件,详细门路依据实际的nginx.conf设置装备摆设文件地位编纂,上面次要修正nginx的server {}设置装备摆设块中的内容,修正location块,追加index.php让nginx效劳器默许支持index.php为首页:

  

  而后设置装备摆设.php申请被传送到后真个php-fpm模块,默许状况下php设置装备摆设块是被正文的,此时去掉正文并修正为如下内容:

  

  这外面不少都是默许的,root是设置装备摆设php顺序搁置的根目次,次要修正的就是fastcgi_param中的/scripts为$document_root

  修正完下面的,回到nginx.conf第一行,默许是#user nobody; 这里要去掉正文改成user www-data;或许user www-data www-data;示意nginx效劳器的权限为www-data

  修正完这些保留并加入,而后重启nginx:

/usr/local/nginx/nginx -s stop
/usr/local/nginx/nginx

  接上去编纂一个测试的php顺序,正在nginx下的html目次下创立test.php文件,打印一下php设置装备摆设:

<?php
    phpinfo();
?>

以上就是php7若何源码编译装置的具体内容,更多请存眷资源魔其它相干文章!

标签: php7开发教程 php7开发资料 php7开发自学 php7编译安装

抱歉,评论功能暂时关闭!