Adventures in PHP/Symfony

  • From: "Brian G." <drakain@xxxxxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx
  • Date: Mon, 13 Jul 2015 23:44:01 -0400

I just want to document some of the issues I'm having getting up and
running with PHP and Symfony so we can all have visibility into these
things.

First lets talk about the PHP level items.

I've modified the Makefile of the rumprun-package to use these flags:

(cd build && ./configure --host=$(RUMPRUN_TOOLCHAIN_TUPLE) \
--without-iconv \
--enable-opcache=no \
--disable-libxml \
--disable-simplexml \
--disable-xmlreader \
--disable-xml \
--disable-xmlwriter \
--disable-dom \
--with-gnu-ld \
--without-pear \
--enable-cli)

I also have to go inside of the PHP distribution and remove a section of
the configure file ( https://gist.github.com/c79469c3dc58358ed1e0 for a
diff) as it wants to run strcasestr tests but it is disabled when
cross-compiling (I'm not sure what we can do about this issue, does this
fix need to take place upstream or is there a way we can run the test? )

With this updated I was able to get a symfony error page (hey, progress!).
There's a few more PHP extensions I require to run the application and one
of those is the XML.

XML depends on libxml2 http://xmlsoft.org/FAQ.html which I tried to
cross-compile but I'm not familiar enough to know if I did something wrong
or failed to change the linking in PHP's makefile to use libxml2.

I will need to do this with ldl also, but haven't attempted to try that
just yet.

For reference sake, here's what my build output said when I tried to link
the files:
https://gist.github.com/0b5b701fcd7e6cd75d01

For symfony, things are a bit interesting. It appears to expect the
existence of a filesystem it can write to. I was hopeful I could change
some of the code to simply not use it, but that isn't proving
straight-forward (it appears to be a really central dependency to a lot of
it). I'm not sure if there's an option to really support this sort of thing
on a rumpkernel. It appears I can pre-build all the files it wants to build
on-demand, but in practice it simply doesn't work that way and always fails
when attempting to write to disk.

Thanks,
Brian

Other related posts: