编译安装PHP及扩展

一、安装PHP
1、下载PHP相应的版本 (http://php.net/
2、命令:tar zxvf +压缩包文件名 解压相应的文件
3、进入PHP版本文件 编译安装:

  • ./configure --prefix=/data/app/php72 --enable-fpm --with-fpm-user=syh --with-fpm-group=staff --disable-ipv6 --with-openssl=/usr/local/Cellar/openssl/1.0.2s --with-pcre-regex --with-zlib=/usr/local/Cellar/zlib/1.2.11 --enable-bcmath --with-curl --enable-exif --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-mhash --enable-mbstring --with-mcrypt --with-mysqli --enable-opcache --enable-pcntl --with-pdo-mysql --enable-sockets --with-iconv-dir=/usr/local/Cellar/libiconv/1.16 --with-iconv=/usr/local/opt/libiconv/ --with-libxml-dir --enable-zip --enable-mysqlnd --with-webp-dir=/usr/local/Cellar/webp/1.0.3 --without-gettext --enable-shmop

  • 注意编译扩展注意路径:

1. --prefix= (php安装路径,注意要先创建文件并且更改相应的文件权限, 修改组用户权限命令sudo chmod –R :staff+文件名)
2. --with-fpm-user= (安装的用户访问权限 syh)
3. --with-fpm-group=(安装的组权限 staff) 
4. --with-openssl= (openssl安装所对应的路径)
5. --with-iconv-dir= (libiconv安装所对应的路径)
6. --with-webp-dir= (webp安装所对应的路径)

4、make

注意:make报错处理
1、ld: symbol(s) not found for architecture x86_64解决办法
	* make clean
	* vim Makefile
	* 搜索 EXTRA_LIBS = 这里 -liconv替换成/usr/local/Cellar/libiconv/1.16/lib/libiconv.dylib
2、configure: error: zlib library not found
	* brew install zlib
3、configure: error: Please specify the install prefix of iconv with --with-iconv=
	* 编译安装添加 --with-iconv=/usr/local/opt/libiconv
4、configure: error: Cannot find OpenSSL's <evp.h>
	* 重新安装 openssl

5、make install

二、安装第三方扩展
1、下载相应的扩展 (https://pecl.php.net/
2、命令:tar zxvf +压缩包文件名 解压相应的文件
3、进入扩展版本文件 编译安装:

  • sudo phpize
  • ./configure --with-php-config=/data/app/php72/bin/php-config 找到所对应的php安装路径下的php-config文件
  • make
  • make install
注意安装scws扩展和其他扩展安装方式有些区别
1. 安装scws
	* sudo phpize
	* ./configure --prefix=/data/app/scws
	* make
	* make install
2. 安装scws扩展
	* 进入scws源码目录的 phpext/ 目录
	* sudo phpize
	* ./configure --with-scws=/data/app/scws --with-php-config=/data/app/php72/bin/php-config
	* make
	* make install

注意安装Memcache错误
1、checking for the location of zlib... configure: error: memcache support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located
	* memcache 模块使用了函数 zlib 来支持数据压缩,因此安装此模块需要安装 Zlib 模块 
	* 编译安装添加 --with-zlib-dir

三、配置第三方扩展的.ini文件
1、mkdir -p /data/app/php72/etc/conf.d 新建文件夹
2、新建第三方扩展.ini文件

  • 以memcached扩展为例
    1. 新建 ext-memcached.ini文件
    2. [memcached] extension="/data/app/php72/lib/php/extensions/no-debug-non-zts-20160303/memcached.so"
      找到所对应php的安装路径下第三方扩展的.so文件

四、配置php.ini文件
1、/data/app/php72/bin/php –i | grep php.ini 查找php.ini放置的位置
2、在所对应的位置放置php.ini文件
3、修改php.ini文件

  1. extension_dir="/data/app/php72/lib/php/extensions/no-debug-non-zts-20160303/" 第三方扩展安装路径
  2. extension=memcached.so memcached.so文件
  3. extension=redis.so redis.so文件
  4. zend_extension=xdebug.so xdebug.so文件

五、查看php扩展是否安装成功
1、/data/app/php72/bin/php -m

六、配置php-fpm
1、cd /data/app/php72/ect/ 打开文件夹 找到php-fpm.conf.default文件所在的位置
2、cp php-fpm.conf.default php-fpm.conf 拷贝一份php-fpm.conf.default文件以php-fpm.conf命名
3、cd /data/app/php72/ect/php-fpm-d/ 打开php-fpm-d文件夹 修改文件夹中的www.conf.default文件为www.conf

七、启动php-fpm
1、cd /data/app/php72/sbin
2、./php-fpm -y /data/app/php72/etc/php-fpm.conf

当启动PHP时提示下列警告:
NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root

解决方案:
找到 /data/app/php72/ect/php-fpm.d/www.conf文件
把 user = _syh 注视前面加 ; eg ; user = _syh
把 group = _staff 注视前面加 ; eg ; group = _staff

原创文章 5 获赞 4 访问量 352

猜你喜欢

转载自blog.csdn.net/weixin_46513874/article/details/105204512