php编译make时出错,看下是什么原因且怎么解决?以下为部分错误:/usr/local/src/php-7.2.22/ext/ftp/ftp.c:2025: undefined reference to `_ecalloc' collect2: error: ld returned 1 exit status make: *** [ext/ftp/ftp.lo] Error 1
时间: 2023-08-16 07:08:04 浏览: 45
这个错误通常是因为缺少必要的库,或者库版本不正确导致的。我建议你尝试以下步骤来解决该问题:
1. 确保你安装了必要的依赖库,比如libxml2、libssl等等。可以使用以下命令来安装这些库:
```
sudo apt-get install libxml2-dev libssl-dev
```
2. 确保你的系统已经安装了编译器和链接器。你可以使用以下命令来安装:
```
sudo apt-get install build-essential
```
3. 尝试清除之前的编译缓存,然后重新编译:
```
make clean
./configure
make
```
4. 如果以上步骤都不起作用,可以尝试升级库的版本。比如,你可以尝试升级libssl的版本:
```
sudo apt-get install libssl1.0-dev
```
或者,如果你的系统是Ubuntu 18.04或更高版本,可以尝试升级到libssl1.1:
```
sudo apt-get install libssl-dev
```
然后重新编译。
希望可以帮助你解决问题。
相关问题
version: "3" services: centos7: image: centos:7 command: tail -f /dev/null volumes: - php-bin:/usr/local/bin/php - php-ini:/usr/local/etc/php/php.ini networks: - centos7-network php: image: php:7.4 volumes: - php-bin:/usr/local/bin/php - php-ini:/usr/local/etc/php/php.ini networks: - centos7-network nginx: image: nginx:latest ports: - "80:80" networks: - centos7-network networks: centos7-network: driver: bridge volumes: php-bin: php-ini:是无法户通的
您的问题是关于Docker Compose的配置文件,正确的格式如下:
```
version: "3"
services:
centos7:
image: centos:7
command: tail -f /dev/null
volumes:
- php-bin:/usr/local/bin/php
- php-ini:/usr/local/etc/php/php.ini
networks:
- centos7-network
php:
image: php:7.4
volumes:
- php-bin:/usr/local/bin/php
- php-ini:/usr/local/etc/php/php.ini
networks:
- centos7-network
nginx:
image: nginx:latest
ports:
- "80:80"
networks:
- centos7-network
networks:
centos7-network:
driver: bridge
volumes:
php-bin:
php-ini:
```
这是一个包含三个服务(centos7、php、nginx)以及一个网络(centos7-network)和两个数据卷(php-bin、php-ini)的Docker Compose配置文件。请确保您正确地安装了Docker和Docker Compose,并在正确的目录下运行docker-compose命令以启动这些服务。
centos下解决下这个报错-bash: /usr/local/bin/docker-compose: Permission denied
这个错误是因为当前用户没有执行 `/usr/local/bin/docker-compose` 的权限。
你可以通过以下几种方式解决这个问题:
1. 使用 root 用户执行该命令:
```
sudo /usr/local/bin/docker-compose
```
2. 为当前用户添加执行该命令的权限:
```
sudo chmod +x /usr/local/bin/docker-compose
```
然后再使用该命令即可。
3. 将当前用户添加到 docker 用户组中,使其具有执行 docker 相关命令的权限:
```
sudo usermod -aG docker $USER
```
需要重新登录才能使用户组更改生效。之后再执行 docker-compose 命令时就不会出现权限问题了。