cf2000 发表于 2018-12-20 10:34:50

动态编译php的gd库

  今天帮人安装lnmp环境(编译安装),遇到要动态安装gd库的情况,就记录下来。
  首先装完了mysql,和ngxin,不是本文的重点,跳过
  下载php-5.3.5.tar.bz2于/usr/local/src下,解压,执行./configue,
  参数为:
  ./configure --prefix=/usr/local/php      \
                  --with-curl                  \
                  --with-zlib                  \
                  --with-mhash                   \
                  --with-openssl               \
                  --with-mcrypt                  \
                  --with-mysql=/usr/local/mysql\
                  --with-fpm-user=www            \
                  --with-fpm-group=www         \
                  --enable-xml                   \
                  --enable-sockets               \
                  --enable-fpm                   \
                  --enable-zip                   \
                  --enable-mbstring            \
                  --enable-inline-optimization   \
                  --disable-debug                \
                  --disable-ipv6               
接着
  make&& make install
  接着安装 gd 前置库 : freetype ,jpegsrc,libpng,
  依次进入各个目录执行
  ./configure --prefix=/usr/local/freetype   && make && make install
  ./configure --prefix=/usr/local/jpeg      && make && make install
  ./configure --prefix=/usr/local/libpng      && make && make install
  接着cd 到php源码的gd目录
  cd /usr/local/src/php-5.3.5/ext/gd
  一定要在这个目录下执行 /usr/local/php/bin/phpize
  接着在当前目录下执行:
  ./configure --with-php-configure=/usr/local/php/bin/php-config--with-jpeg-dir=/usr/local/jpeg--with-png-dir=/usr/local/libpng   --with-freetype-dir=/usr/local/freetype
  make && make install
  接着修改php.ini文件在 ;extension=php_zip.dll 下面添加一行 extension=gd.so
  这样在执行 /usr/local/php/bin/php-m 查看gd模块是否加载成功。
  因为我是用nginx fastcgi 执行php的,所以安装php后要修改下/usr/local/php/etc/php-fpm.conf文件。不然开启php-fpm时候会报错
  pm.min_spare_servers(0) must be a positive value
  pm.start_servers is not set. It's been set to 20
  vim /usr/local/php/etc/php-fpm.conf
  将;pm.max_spare_servers = 35前的;去掉
  将;pm.start_servers = 20 前的;去掉
  将;pm.min_spare_servers = 5 前的;去掉
  接着执行/usr/local/php/sbin/php-fpm就没报错了,php-fpm默认监听9000端口
  还要将nginx的配置文件中有关fastcgi 的注释符去掉,
  还要将 nginx配置文件中的这句
  fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name; 中的/scripts
  修改为网站路径,我的是
  fastcgi_paramSCRIPT_FILENAME/var/www/web$fastcgi_script_name;
  这样应该就可以了
  还有一个地方要注意,编译安装软件时候要看清楚系统里是否已经用yum或rpm安装了相同的软件。我上面操作的时候因为系统本身yum装了php,我编译php前没卸载掉系统的php导致错误。



页: [1]
查看完整版本: 动态编译php的gd库