设为首页 收藏本站
查看: 652|回复: 0

[经验分享] php编译报错参考

[复制链接]

尚未签到

发表于 2018-12-18 08:56:44 | 显示全部楼层 |阅读模式
  去php官网下载源码 http://www.php.net/downloads.php ,我下载使用的版本是(php-5.4.8.tar.gz)
  2.解压到/usr/src目录,执行命令:sudo tar -zxvf php-5.4.8.tar.gz -C /usr/src
  3.执行./configure --prefix=/usr/local/php --enable-fpm  --with-mcrypt=/usr/local/libmcrypt --with-zlib --enable-mbstring --with-openssl --with-mysql --with-mysqli --with-mysql-sock --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf  --enable-pdo --with-pdo-mysql --with-gettext --with-curl --with-pdo-mysql --enable-sockets --enable-bcmath --enable-xml --with-bz2 --enable-zip --enable-freetype
  4.编译遇到问题:error: xml2-config not found.解决办法:
  (1)去官网http://xmlsoft.org/sources/ 下载源码。我用的版本是libxml2-2.9.0.tar.gz, 解压到/usr/src,执行命令:sudo tar -zxvf libxml2-2.9.0.tar.gz  -C /usr/src
  (2)进入目录/usr/src/libxml2-2.9.0,在root下执行或者用sudo命令执行: sudo ./configure --prefix=/usr/local/libxml2/ ; make; make install
  (3) 进入php目录中编译时加上--with-libxml-dir=/usr/local/libxml2
  5.再次编译,遇到问题:checking if the location of ZLIB install directory is defined... no ; configure: error: Cannot find libz. 解决办法:
  (1)去网址 http://www.zlib.net/ 下载zlib源码。我下的是版本zlib-1.2.7.tar.gz,解压到/usr/src,执行命令:sudo tar -zxvf zlib-1.2.7.tar.gz  -C /usr/src
  (2)进入目录/usr/src/zlib-1.2.7/,执行命令:sudo ./configure --prefix=/usr/local/zlib;make;make install
  (3)进入php目录中重新编译,增加新参数 --with-zlib-dir=/usr/local/zlib
  6.再次编译,遇到问题:error: Please reinstall the BZip2 distribution. 解决办法:
  (1)去网站 http://www.bzip.org/downloads.html 下载源码。我用的版本是bzip2-1.0.6.tar.gz,执行命令:sudo tar -zxvf bzip2-1.0.6.tar.gz -C /usr/src
  (2)进入目录/usr/src/bzip2-1.0.6/,sudo方式执行:make;make install(下的源码中并没有configure)
  (3)重新编译,不用增加新参数
  7.再次编译,遇到问题:
  checking if we should use cURL for url streams... no checking for cURL in default path... not found
  configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/
  解决办法是重装libcurl
  (1)去网站 http://curl.haxx.se/download/ 下载libcurl源码。我用的版本是curl-7.28.0.tar.gz,执行命令:sudo tar -zxvf curl-7.28.0.tar.gz -C /usr/src
  (2)进入/usr/src/curl-7.28.0目录,用sudo执行命令:./configure --prefix=/usr/local/curl;make;make install
  (3)重新编译php,增加参数--with-curl=/usr/local/curl
  8.再次编译,遇到问题:configure: error: jpeglib.h not found. 解决办法:
  (1)去网站 http://www.ijg.org/ 下载源码。我用的版本是jpegsrc.v8d.tar.gz,执行命令:sudo tar -zxvf jpegsrc.v8d.tar.gz -C /usr/src
  (2)进入/usr/src/jpegsrc.v8d目录,sudo方式执行命令:sudo ./configure --prefix=/usr/local/jpeg;make;make install;
  (3)重新编译php,增加参数--with-jpeg-dir=/usr/local/jpeg
  9.再次编译,遇到问题:configure: error: png.h not found.
  (1)去网站http://www.libpng.org/pub/png/libpng.html 下载源码,我用的版本是libpng-1.5.13.tar.gz,执行命令:sudo tar -zxvf libpng-1.5.13.tar.gz -C /usr/src
  (2)进入/usr/src/libpng-1.5.13目录,sudo方式执行命令:sudo ./configure --prefix=/usr/local/png;make;make install;
  (3)这时出现了configure: error: zlib not installed的错误,明明之前已经装过的,但是这里还是报错。在网上查了解决办法如下:
  3.1)进入zlib的源文件目录(这里我的是/usr/src/zlib-1.2.7/),执行命令 make clean,清除zlib;
  3.2)重新配置 ./configure,后面不要接--prefix参数;
  3.3)make && make install;
  3.4)进入libpng目录(我的是/usr/src/libpng-1.5.13/),执行命令 ./configure --prefix=/usr/local/png;
  3.5)make && make install;
  (4)重新编译php,这时增加参数--with-png-dir=/usr/local/png。
  10.再次编译,遇到问题:configure: error: mcrypt.h not found. Please reinstall libmcrypt.
  (1)去网站http://mcrypt.hellug.gr/lib/index.html 的下载源码,我下的版本是libmcrypt-2.5.7.tar.gz;执行命令:sudo tar -zxvf libmcrypt-2.5.7.tar.gz -C /usr/src
  (2)进入/usr/src/libmcrypt-2.5.7目录,sudo方式执行命令:./configure prefix=/usr/local/libmcrypt/;make ;make install
  (3)重新编译php,这时增加参数--with-mcrypt=/usr/local/libmcrypt
  11.再次编译,就没有遇到问题了,虽然显示了configure: WARNING: unrecognized options: --enable-freetype,但结果依然是Thank you for using PHP. 此时的编译php的参数如下:
  (1)sudo ./configure --prefix=/usr/local/php --enable-fpm  --with-zlib --enable-mbstring --with-openssl --with-mysql --with-mysqli --with-mysql-sock --with-gd --enable-gd-native-ttf  --enable-pdo --with-pdo-mysql --with-gettext --with-curl --with-pdo-mysql --enable-sockets --enable-bcmath --enable-xml --with-bz2 --enable-zip --enable-freetype --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib --with-curl=/usr/local/curl --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/png --with-mcrypt=/usr/local/libmcrypt --with-apxs2=/usr/local/apache2/bin/apxs
  (备注:一定要加这个 apxs - APache eXtenSion tool 用来制作apache的扩展模块DSO,要使用这个工具,安装apache的时候就必须添加enable-so以支持DSO. 如果没有这个的话apache是只会解析静态页面的,第一次编译时没加,怎么配置都不行,第二次加了该选项重新编译以后就都OK了。)
  (2)sudo make
  (3)sudo make install
  12.为了在命令行可以直接使用php命令,编辑 sudo vim /etc/environment,将php的bin目录路径添加进去,我的是/usr/local/php/bin,然后reboot机器
  13.为了使Apache支持PHP,解决办法:
  (1)进入apache配置目录,执行命令:cd /usr/local/apache2/conf。 编辑文件:sudo vim httpd.conf
  (2)查找字符串AddType,并增加
  AddType application/x-httpd-php .php .php3 .htm .phtml .php4
  AddType application/x-httpd-php-source .phps
  然后重启apache使配置生效
  (3)查找字符串DirectoryIndex,并修改为 DirectoryIndex index.html index.php3 index.php default.php
  14. 修改php配置.
  (1)进入php源码目录,选择php.ini-development复制一份到/usr/local/lib,并改名为php.ini使用vim打开,查找extension_dir,修改为extension_dir = "D:/php/php5/ext",读      者根据自己的目录结构配置,目的是找到和php.ini同目录下的ext文件夹中的扩展库。
  (2)查找extension=php_,去掉extension=php_curl.dll,extension=php_gd2.dll,extension=php_mbstring.dll,extension=php_mysql.dll,extension=php_mysqli.dll,extension=php_pdo_mysql.dll,extension=php_xmlrpc.dll前面 的分号。查找short_open_tag = Off把它修改成short_open_tag = On,让其支持短标签(我看注释这个默认是打开的)。
  15.查找字符串DocumentRoot,可以设置Apache虚拟根目录
  16.查找字符串ServerAdmin,并修改成自己的邮箱
  17.在apache根文件中增加一个test.php文件,,然后访问127.0.0.1/test.php,查看结果。
  附录:网上找的php各个版本的编译参数如下。
  Fast-CGI:
  ./configure --prefix=/usr/local/php --enable-fastcgi --enable-force-cgi-redirect --with-config-file-path=/etc --with-zlib --with-mysql --with-xml --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-mbstring
  PHP4-Server:
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-config-file-path=/etc --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --enable-mbstring
  PHP4-Max:
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --mandir=/usr/share/man --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc--with-openssl=/usr/local/openssl-0.9.7e --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-bz2 --with-inifile --with-hyperwave --enable-xml --enable-track-vars --enable-dba --enable-dbase --enable-filepro --enable-ftp --enable-versioning --enable-memory-limit --enable-calendar --enable-session --enable-sockets --enable-sysmsg --enable-sysvsem --enable-sysvshm --enable-tokenizer --enable-overload --enable-ctype --enable-sigchild --enable-magic-quotes --enable-roxen-zts --enable-fastcgi --enable-dbx --enable-dio --enable-shmop --enable-mbstring
  PHP5-Server:
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib-dir --with-bz2 --with-tiff-dir --with-libxml-dir --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --enable-mbstring --with-mysql=/usr/lib/mysql --with-config-file-path=/etc --disable-ipv6 --enable-gd-native-ttf
  PHP5-Standard:
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --mandir=/usr/share/man --with-openssl=/usr/local/openssl-0.9.7e --with-zlib --with-bz2 --with-tiff-dir --with-libxml-dir --enable-dio --enable-ftp --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-bz2-dir --with-ttf --enable-mbstring --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc--disable-ipv6 --enable-gd-native-ttf
  PHP5-Max:
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --mandir=/usr/share/man --with-openssl=/usr/local/openssl-0.9.7e --with-zlib --with-bz2 --with-tiff-dir --with-libxml-dir --enable-dio --enable-ftp --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-bz2-dir --with-ttf --with-inifile --enable-dba --enable-dbase --enable-filepro --enable-versioning --enable-memory-limit --enable-calendar --enable-sockets --enable-sysvsem --enable-sigchild --enable-magic-quotes --enable-roxen-zts --enable-fastcgi --enable-dbx --enable-shmop --enable-mbstring --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc --disable-ipv6 --enable-gd-native-ttf


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652653-1-1.html 上篇帖子: 301跳转 PHP 下篇帖子: centos下配置nginx支持php
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表