We run our sites on FreeBSD, but no longer use PHP, so my recollection may be a bit hazy. I also investigated moving to linux a while ago, but eventually decided not to.
The Key areas I would investigate are:
1) Location of config files. php.ini on FreeBSD is in /usr/local/etc/php.ini and extensions.ini is in /usr/local/etc/php/extensions.ini
2) Path names in config files (e.g. httpd.conf) - stuff is very likely to be in different places on a linux box (e.g. htdocs may live under /var, while FreeBSD puts it into /usr/local/www).
3) Plain PHP will obviously be the same, but you need to ensure all the required PHP extensions are available. The most incompatible PHP code will be calls to external commands.
4) Any .sh (i.e. bash) scripts may again have hard-coded path names which won't work on linux. FreeBSD's /bin/sh is also different from linux's /bin/bash - bash is mostly a superset, but I have seen /bin/sh scripts fail on /bin/bash.
5) Any external utilities (e.g. tar) called by PHP or the scripts could be in different locations, AND are likely to use some incompatible switches. FreeBSD uses *BSD style switches (obviously); not all of these work or do the same thing as GNU.
6) Read/Write permissions to files and directories used in scripts, etc. (A forked script called from a FreeBSD web server will run as 'www:www', but I believe some linux distros may run it as 'nobody:nobody').
A brute force, quick and dirty approach might be to replicate the locations of everything using symlinks, set file permissions, ensure the PHP configuration is the same, and then you're only left with a bit of .sh script debugging ;)