Hi Jeff, I appreciate your advice, but I solved the problem with a hack, and to be honest, CMAKE error handling is above me. I am still from the ./configure generation :-)

I added these two lines to MapServer's CMAKE call:

 -DPHP_INCLUDE_PATH=$INSTALLBIN/include/php/main \
-DPHP_EXTENSION_DIR=$INSTALLBIN/lib/php/extensions/no-debug-non-zts-20220829

I also had to add these lines to GEOS's CMAKE, after -DCMAKE_INSTALL_PREFIX=$INSTALLBIN  -DCMAKE_PREFIX_PATH=$INSTALLBIN \

-DCMAKE_LIBRARY_PATH=$INSTALLBIN/lib \
-DINCLUDE_DIRECTORIES=$INSTALLBIN/include \

I guess CMAKE does not propagate its dependencies very well from the general INSTALL_PREFIX.

But this still didn't work. The php includes in other subdirectories than main weren't found. Those subdirectories should have been added to the include path, but weren't. So I copied the complete php include directory to /usr/include (O horror! :-)) .

Of course a Docker installation would be easier, as you can install everything in standard locations. But I want to have a real dedicated server with just the software I need and nothing more. I have worked for a long time with the UbuntuGIS packages, but they are not supported very well.

Thanks for your advice!

Jan



On 18/10/2023 19:11, Jeff McKenna via MapServer-users wrote:

Hi Jan,

I understand that you won't listen to my advice here, no problem at all.  But I won't repeat myself here 🙂

Enjoy your afternoon,

-jeff
On 2023-10-18 1:39 p.m., Jan Hartmann wrote:
I compiled with:

  -DPHP_INCLUDE_DIR=$INSTALLBIN/include/php \
  -DPHP_EXTENSION_DIR=$INSTALLBIN/lib/php/extensions/no-debug-non-zts-20220829

and got lots of error messages about missing .h files (php.h, zend.h etc). I bulk copied them all to the directory in the build tree where the errors came from, and got a complete build, including "php_mapscriptng.so"

So CMAKE is still missing the php include directories. What is de correct DEFINE for that?

After I copied php_mapscriptng.so to the correct location and filling in php.ini, I got a warning when starting PHP :

Startup: Unable to load dynamic library 'php_mapscriptng.so' (tried: /virdir/installbin/lib/php/extensions/no-debug-non-zts-20220829/php_mapscriptng.so (libgeos.so.3.12.0: cannot open shared object file: No such file or directory)

But  it *is* in that location. Any idea?

On 17/10/2023 21:45, Jeff McKenna via MapServer-users wrote:
Hi Jan,

Unfortunately I have much experience tracking down CMake errors now, ha.

Instead of the error log, scroll up and read the output from your cmake command (as it does its checks and looks for libraries), I find examining that output is crucial (and I personally find the actual generated log file is filled of fake/"red-herrings"). Focus instead on going line-by-line through that cmake output, as it makes its way down to the final "configuring incomplete" message.  (for packaging, this is what I do, line-by-line)

For example, if you are trying to enable the GEOS library, I would go line-by-line of the output and find where it was looking for GEOS initially, and read the messages in that section, to confirm that there are no issues when enabling GEOS.  This is crucial.

It takes much time to do this for each library.

In my case, for PHPNG support, my CMake command includes: "-DWITH_PHPNG=1 -DPHP_EXTENSION_DIR=/usr/lib/php/20220829"

In your case I am not sure, but, I would start by examining line-by-line the CMake output before the words "Configuring incomplete" (and totally ignoring the generated 'output' file).

Maybe you can find the PHPNG section in your cmake command output, and paste that here for the community to review.

-jeff






_______________________________________________
MapServer-users mailing list
MapServer-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
MapServer-users mailing list
MapServer-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to