深入理解PHP内核-环境搭建(一)

难得闲下来,发现自己没有系统的学习过PHP内核,希望我能够慢慢啃下PHP内核书籍,无论是抄袭也好,码字也好,一步一个脚印走下去。

学习来源:http://www.php-internals.com/book/?p=chapt01/01-01-php-env-building

在开始学习PHP实现之前,我们需要一个实验和学习的环境。下面介绍一下怎样在*nix环境下准备和搭建PHP环境。

本章学习目录

1、寻找PHP源码

2、准备编译环境

3、编译

一、寻找PHP源码

  为了学习PHP的实现,首先需要下载PHP的源代码。下载源码首选是去PHP官方网站http://php.net/downloads.php下载, 如果你喜欢使用svn/git等版本控制软件,也可以使用svn/git来获取最新的源代码。  

扫描二维码关注公众号,回复: 1643314 查看本文章
# git 官方地址
git clone https://git.php.net/repository/php-src.git
# 也可以访问github官方镜像
git clone git://github.com/php/php-src.git
cd php-src && git checkout PHP-5.3 # 签出5.3分支

  源码包下载地址:https://pan.baidu.com/s/1bpi4D9l  

二、准备编译环境  

  解压PHP压缩包:

tar –zxvf php-7.2.0.tar.gz  

  进入解压后的目录:

cd php7.2.0

  安装PHP需要的扩展:

yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel -y   

三、编译  

配置参数扩展

./configure --prefix=/usr/local/php720 --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo    

编译安装

make && make install    

配置Nginx.conf 支持解析PHP

打开nginx配置文件(/usr/local/nginx/conf/nginx.conf)
找到localtion模块,在index后面添加index.php,使nginx识别php文件;

继续往下滑在修改:

启动php-fpm:

  1、将php-fpm.conf.default复制为php-fpm.conf

cd /usr/local/php720/etc  
cp php-fpm.conf.default php-fpm.conf  

  2、然后启动php-fpm

/usr/local/php720/sbin/php-fpm  

  3、如果启动报错(如下图):

解决方法:进入到 /usr/local/php720/etc/php-fmp.d下的 www.conf.default 复制为 www.conf,然后启动php-fpm;
进入文件夹(如果进不去,就一步步的cd进去; 如果没有这个文件就自己创建个php-fpm.d文件夹,再进到网址下载www.conf文件:https://pan.baidu.com/s/1o8mRYkU)
cd /usr/local/php720/etc/php-fpm.d  
cp www.conf.default www.conf  

  4、先把php-fpm进程清除

pkill php-fpm  

  5、再启动php-fpm

/usr/local/php720/sbin/php-fpm  

  最后在/usr/local/nginx/html下新建文件index.php,输出phpinfo; 显示成功,说明php安装成功

  

猜你喜欢

转载自www.cnblogs.com/dump/p/9199629.html