Symisc PH7 Engine
An Embeddable PHP5 Engine

PH7 Online Community Support.

PH7 Users forums

Post questions and share solutions and ideas about building, using and troubleshooting the PH7 engine. We encourage PH7 users to get involved in the PH7 online community by participating in the open PH7 forums.

The forum is the preferred place to exchange ideas and share solutions with your peers in the PH7 growing community of users. Ask technical questions. Describe new ideas about how to use the product. Collaborate with other PH7 users. Active participation in the forum will allow all the participants to get the maximum return.

There is no need to register in the PH7 forums, simply enter a name and post one or more questions.

Contribute to the PH7 development

PH7 is an open-source project open to every one and we are looking for C developers to enhance the engine especially in the implementation of a standard library that includes DB, regex, network functions and more.

The project is in heavy development and users contribution is welcome. So, if you want to involve in the PH7 development process, please sign-up and post a message in the PH7 devel mailing list or send an email to

If you have/can write a wrapper/binding for a foreign programming language, again post a message in the PH7 forums or the devel mailing list or send an email to

Bug reporting

PH7 have grown substantially since the beginning. At the time of writing, there are about 62000 lines of source code and by the time you read this it has probably grown even more.

But keep in mind that obscure bugs still occurs. To help us make PH7 the stable and solid product we want it to be, we need bug reports and bug fixes.

1.0 Where to report

If you can't fix a bug yourself and submit a fix for it, try to report an as detailed report using the online PH7 bug tracking system over at
(but please read the sections below first before doing that).

1.1 What to report

When reporting a bug, you should include all information that will help us understand what's wrong, what you expected to happen and how to repeat the bad behavior. You therefore need to tell us:

- your operating system's name and version number

- what version of PH7 you're using

- PH7 compile-time options such as if threading support is enabled and so on.

and anything and everything else you think matters. Tell us what you expected to happen, tell use what did happen, tell us how you could make it work another way. Dig around, try out, test. Then include all the tiny bits and pieces in your report. You will benefit from this yourself, as it will enable us to help you quicker and more accurately.

If PH7 crashed, causing a core dump (in UNIX), there is hardly any use to send that huge file to anyone of us. Unless we have an exact same system setup as you, we can't do much with it. Instead we ask you to get a stack trace and send that (much smaller) output to us instead!

1.2 PH7 problems

First, post all PH7 problems on the PH7 public forums or the ph7-users mailing list.

Tell us the PH7 version and your operating system. Tell us the name and version of all relevant sub-components.

Showing us a real source code example repeating your problem is the best way to get our attention and it will greatly increase our chances to understand your problem and to work on a fix (if we agree it truly is a problem).

Lots of problems that appear to be PH7 problems are actually just abuses of the PH7 API or other malfunctions in your applications. It is advised that you run your problematic program using a memory debug tool like valgrind or similar before you post memory-related or "crashing" problems to us.

1.3 Who will fix the problems

If the problems or bugs you describe are considered to be bugs, we want to have the problems fixed.

But please do not assume that you can just lump over something to us and it will then magically be fixed after some given time. Most often we need feedback and help to understand what you've experienced and how to repeat a problem. Then we may only be able to assist YOU to debug the problem and to track down the proper fix.

We get reports from many people every month and each report can take a considerable amount of time to really go to the bottom with.

1.4 How to get a stack trace

First, you must make sure that you compile all sources with -g and that you don't 'strip' the final executable. Try to avoid optimizing the code as well, remove -O, -O2 etc from the compiler options.

Run the program until it cores.

Run your debugger on the core file, like '<debugger> ph7_app core'. <debugger> should be replaced with the name of your debugger, in most cases that will be 'gdb', but 'dbx' and others also occur.

When the debugger has finished loading the core file and presents you a prompt, enter 'where' (without the quotes) and press return.

The list that is presented is the stack trace. If everything worked, it is supposed to contain the chain of functions that were called when curl crashed. Include the stack trace with your detailed bug report. It'll help a lot.

1.5 Bugs in PH7 bindings

There will of course pop up bugs in PH7 bindings. You should then primarily approach the team that works on that particular binding and see what you can do to help them fix the problem.

Symisc Systems
Copyright © Symisc Systems