ubuntu php安装 make Generating phar.php 卡住

本文介绍了一种解决PHP编译安装过程中遇到PEAR问题的方法。通过使用特定的./configure参数进行配置,然后执行make及make install命令完成安装。之后通过wget下载并运行go-pear.phar脚本来安装PEAR。

具体原因未知

解决方法:

./configure 配置信息   --without-pear  --disable-phar​

make && make install

成功编译安装完成后,再安装pear:

wget http://pear.php.net/go-pear.phar 

​/usr/local/bin/php go-pear.phar​

### 关于Makefile编译过程中phar.php生成失败的解决方案 在处理 `ext/phar/phar.phar` 生成失败的问题时,可以结合以下方法进行排查和解决。错误139通常与程序崩溃(Segmentation Fault)有关,而错误1可能与文件权限或依赖项缺失相关[^1]。 #### 1. 确保环境配置正确 首先需要确认开发环境是否正确配置。例如,确保所有必要的依赖库已安装,并且版本兼容。如果使用的是CMake工具,则需要检查 `CMakeLists.txt` 文件中的配置是否正确[^3]。 ```bash sudo apt-get update sudo apt-get install -y build-essential libssl-dev libcurl4-openssl-dev php-pear php-dev ``` #### 2. 清理旧的编译文件 如果之前编译失败,残留的临时文件可能会导致后续编译问题。因此,在重新编译前,建议清理旧的对象文件和缓存信息[^2]。 ```bash make clean rm -f CMakeCache.txt rm -rf CMakeFiles/ ``` #### 3. 检查文件权限 错误1可能是由于文件权限不足导致的。可以通过以下命令检查并修复目标文件夹的权限。 ```bash chmod -R 755 ext/phar/ ls -l ext/phar/ ``` 如果发现缺少 `phar.phar` 文件,可以尝试手动生成该文件: ```bash phpize ./configure --enable-phar make ``` #### 4. 调试Segmentation Fault (错误139) 错误139通常是由于程序崩溃(Segmentation Fault)引起的。可以通过启用调试模式来定位问题。 ```bash gdb --args php -m run backtrace ``` 通过上述命令可以获取崩溃时的堆栈信息,进而分析具体原因。 #### 5. 更新PHP源码 如果以上步骤仍未解决问题,可能是因为PHP源码本身存在问题。建议从官方仓库下载最新版本的PHP源码,并重新编译。 ```bash wget https://www.php.net/distributions/php-8.1.0.tar.gz tar -xvzf php-8.1.0.tar.gz cd php-8.1.0 ./buildconf --force ./configure --enable-phar make make test ``` #### 6. 检查系统默认配置文件 有时系统默认的配置文件可能干扰编译过程。可以尝试删除 `/etc/my.cnf` 文件或其他相关配置文件。 ```bash sudo rm -f /etc/my.cnf ``` --- ### 示例代码:生成phar.phar文件 以下是一个简单的脚本,用于验证 `phar.phar` 文件是否能够成功生成。 ```php <?php $phar = new Phar('phar.phar', 0, 'phar.phar'); $phar->startBuffering(); $phar->addFromString('hello.php', '<?php echo "Hello World"; ?>'); $phar->setStub($phar->generateStub()); $phar->stopBuffering(); ?> ``` 运行上述脚本后,检查当前目录下是否生成了 `phar.phar` 文件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值