Build and execution instructions:
---------------------------------
NOTE: If you have Security Enhanced Linux, you must update the policy
and tag the files with the correct SEL contexts, please see below, or
please install the binary RPM instead.
Install mono 1.1.8 or above. Install the IKVM.GNU.Classpath.dll and
IKVM.Runtime.dll. Install ikvmc.exe from the IKVM project:
http://www.ikvm.net.
In the directory php-java-bridge-p.x.y type:
mono --version # 1.0.6 or above.
gcj --version # 3.2.3 or above.
apachectl -version # Apache 1.3 or above.
php-config --version # PHP 4.3.2 or above.
make null --version # GNU make 3.79 or above
phpize &&
./configure --with-mono=/usr/bin/ikvmc.exe \
--disable-servlet &&
make &&
su -c "make install"
If your administrator allows you to dynamically load extensions, you
can now test the extension by invoking the test.php with the
command: php ./tests.mono+net/test.php.
Please see the output of ./configure --help=recursive for further
configure options.
------------------------------------
Permanently activate the module
-------------------------------
To permanently activate the extension for all users please add the
following lines to the php.ini or add a file java.ini to the
directory that contains the PHP module descriptions (usually
/etc/php.d/) with the following content:
extension = mono.so
[mono]
mono.log_level="3"
mono.log_file="/var/log/php-mono-bridge.log"
mono.socketname="9167"
Re-start the web server, for example with the command:
apachectl restart
OPTION 1: You can use local sockets to connect to a local back-end.
Copy the executable php-mono-bridge to /usr/sbin, make it executable
with the command "chmod +x /usr/sbin/php-mono-bridge" and start it:
/usr/sbin/php-mono-bridge
This option can be used if "Security Enhanced Linux" is switched on.
OPTION 2: You can start the bridge as a sub-process of apache. Disable
mono.socketname, and mono.hosts. For example:
extension = java.so
[java]
java.log_level="3"
java.log_file="/var/log/php-mono-bridge.log"
Re-start apache and check if apache has started mono as a
sub-process. For example with the commands:
apachectl restart
pstree | fgrep httpd
This option cannot be used if "Security Enhanced Linux" is switched
on.
Check the status:
echo "<?php phpinfo()?>" | php | fgrep "mono status"
Other configuration options which should have been set up by the
configure script but which can be changed later are:
mono.socketname= <local TCP communication channel >
mono.hosts = <add. bridge hosts e.g.: server1:9167;server2:9168>
Please first look at the output of phpinfo() to see the original
values.
---------------------------------------------
Starting the PHP/Mono Bridge automatically
------------------------------------------
When the mono.socketname and mono.hosts options are not set, the web
server will start or re-start the bridge automatically as a sub
component when the HTTP service is started or re-started.
However, when running the bridge in a production environment, it is
recommended to start the PHP/Mono Bridge as a system service,
independent of the web server. The script "php-mono-bridge.service"
can be used on SysV based init systems to automatically start and stop
the bridge as a system service. Please see the RedHat RPM download
for an example.
------------------------------------
Mailing List
------------
Please report bugs/problems to the mailing list:
php-java-bridge-users@lists.sourceforge.net