Problem installing mysql_xdevapi on MacOS

A

Anonymous

Guest
I'm trying to use PECL to install the mysql_xdevapi extension for PHP, but the installer keeps complaining that it can't find Protobuf. PECL asks for "protobuf library install dir" without explaining what directory that is. When I choose "autodetect", the process at one point prints out

checking for protobuf install dir... yes

but still ends with the following:

configure: checking for protobuf yes
checking google/protobuf/any.h usability... no
checking google/protobuf/any.h presence... no
checking for google/protobuf/any.h... no
checking for main in -lprotobuf... yes
checking for protoc... /usr/local/bin/protoc
configure: error: protobuf not found, please install it in system, consider use of --with-protobuf or setting MYSQL_XDEVAPI_PROTOBUF_ROOT

Which directory am I supposed to provide? I've tried entering the one that contains the subdirectory google/protobuf, but that makes no difference. PECL can't locate the any.h file and concludes that Protobuf isn't installed.
 
Have you tried searching your system for the file any.h?
 
I already know where it is. Right here:

/usr/local/Cellar/protobuf/3.14.0/include/google/protobuf/any.h

But I've gone through the installation process several times, trying each one of these directories for the "protobuf library install dir":

/usr/local/Cellar
/usr/local/Cellar/protobuf
/usr/local/Cellar/protobuf/3.14.0
/usr/local/Cellar/protobuf/3.14.0/include
/usr/local/Cellar/protobuf/3.14.0/include/google
/usr/local/Cellar/protobuf/3.14.0/include/google/protobuf


and PECL still can't find the any.h file.
 
To successfully install the mysql_xdevapi extension for PHP with PECL, you need to ensure that the Protobuf library is installed on your system and that PECL can find its location. Here's a step-by-step guide to help you resolve the issue:

1. Install Protobuf library:
- On Ubuntu or Debian, you can install Protobuf using the package manager:
```
sudo apt-get install protobuf-compiler libprotobuf-dev
```
- On CentOS or Fedora, you can use the package manager:
```
sudo yum install protobuf-devel
```
- On macOS, you can use Homebrew:
```
brew install protobuf
```

2. Specify Protobuf installation directory:
- When PECL asks for the "protobuf library install dir," you need to provide the directory where the Protobuf library is installed. This directory contains the Protobuf header files and libraries.
- The directory you need to provide is typically `/usr` or `/usr/local`. For example, if the Protobuf headers are located in `/usr/include/google/protobuf`, you would enter `/usr` as the installation directory.
- If you're not sure about the installation directory, you can try using the `protobuf` command to locate it. Open a terminal and run:
```
protobuf-config --prefix
```
This command will display the installation prefix, which is the directory you should provide.

3. Specify the installation directory during PECL installation:
- When prompted by PECL, provide the Protobuf installation directory you determined in the previous step.
- If you choose the "autodetect" option, PECL will attempt to find the Protobuf installation directory automatically. However, if it fails, you can specify the directory manually.

4. Retry the PECL installation:
- After specifying the Protobuf installation directory, retry the installation process using PECL.
- PECL will now be able to locate the Protobuf library and proceed with the installation of the mysql_xdevapi extension.

By following these steps, you should be able to successfully install the mysql_xdevapi extension for PHP with the Protobuf library.
 
Back
Top