Source : Me at Nona
Step by step HowTo
Prerequisites ::
First, you obviously need a machine running Debian (sarge). To aquire source packages, you need to list a Debian source repository in your /etc/apt/sources.list - an example entry in this file could look like:
deb-src http://ftp.at.debian.org/debian/ sarge main
(please replace the hostname with your favourite Debian mirror). After you have added the line, perform an "apt-get update" to aquire the list of source packages (you need to become root for both adding the line and performing the update).
Create a working directory somewhere (eg. work/mapscript-compile/ in your home directory. You will need approx. 160MB of diskspace in this directory on the i386 architecture.
Installing the build dependencies ::
Both PHP and MapServer require a bunch of packages to be installed for the build process. Before you install those packages, you might want to keep a list of what got installed to be able to remove those unneccessary packages afterwards. I did a
apt-get -s build-dep php4 > builddep-php4-packages
apt-get -s build-dep mapserver > builddep-mapserver-packages
apt-get build-dep php4
apt-get build-dep mapserver
apt-get install fakeroot
apt-get install dpkg-dev
apt-get install php4-dev
to keep a record of the extra packages to be installed and install the packages (you need to perform those steps as root - the rest of the compilation can be done as an unprivileged user).
Downloading and (partly) building PHP4 ::
Since php_mapscript requires regex libraries from PHP4, we need to download and build PHP4 first:
$ apt-get source php4
$ cd php4-4.3.10
$ fakeroot dpkg-buildpackage
(Note: you don't need to wait for the build to complete - open a second shell, and watch the directory "apache-build/regex/.libs/" for appearance of the regex object files named "regcomp.o", "regerror.o", "regexec.o", "regfree.o". If those files exist, you can stop the build process - we just need those files)
Copy those files to the original PHP source tree:
$ cp apache-build/regex/.libs/*.o regex/
We have now prepared the PHP source tree to compile MapServer against in the next step:
downloading and building MapServer ::
We start with a plain MapServer build (you need to change directory one level up, so that we are in work/mapscript-compile/ again):
$ apt-get source mapserver
$ cd mapserver-4.4.1
$ fakeroot dpkg-buildpackage
We have now a "stock" MapServer package with no PHP mapscript support. However, we will work from the configure log output of the stock build to perform a custom build in the next step
re-configuring and rebuilding MapServer ::
The buildpackage process has left behind a config.log which includes the command to configure the package. Extract this command by issuing:
$ fgrep ./configure config.log > conf.new
Edit the "conf.new" file to remove the leading "$" sign, and add the following configure options to the end of the line (either avoid or esacpe line breaks - the resulting file should contain a single configure command):
--with-php=/usr/include/php4/
--with-php-regex-dir=../php4-4.3.10/regex/
Running this file should reconfigure MapServer to enable php_mapscript compilation, using the regex object files from the PHP source treee we created in the previous steps:
$ . ./conf.new
If you receive a warning about PHP and regex stuff doublecheck that you have properly copied the regex related objects file into the directory mentioned in the "with-php-regex-dir" option.
Start compilation with
$ make
If the build succeeds, you should have a MapScript PHP extension in mapscript/php3/php_mapscript.so (yes, it's for PHP4, just disregard the directory name). Strip unneccessary debugging symbols from the module, and install it into your PHP extensions directory:
$ strip --strip-unneeded mapscript/php3/php_mapscript.so
$ su
# cp mapscript/php3/php_mapscript.so /usr/lib/php4/20020429/
(you need to become root for the install step).
Testing the module ::
To test the module, put a simple test script (e.g. mapscript-test.php) into your web directory, containing eg.:
call it via a web browser, and check the phpinfo output for MapServer related stuff. Finished!
Eko Susilo, S.T, C.FAP, C.RM, C.FLS.. Tidak merasa lebih tahu, tapi berusaha untuuk tahu itu adalah baik. (Anggota IRMAPA/GRC (Indonesia Risk Management Professional Association-Governance, Risk, & Compliance), Anggota IAMI (Institut Akuntan Manajemen Indonesia, Anggota ISI (Ikatan Surveyor Indonesia) : tulisannya : apa aja dalam Catatanku ini
Sunday, April 09, 2006
Subscribe to:
Post Comments (Atom)
GLOSARIUM
Glosarium adalah kumpulan daftar kata atau istilah penting yang tersusun secara alfabet yang mendefinisikan bidang pengetahuan tertentu. Den...
-
Konsepsi : Rasio Pajak dan TKD (dll) dengan Visualisasi Peta Sebuah visualisasi dalam konsep dengan Web Map / GIS untuk sajian data interak...
-
Intinya adalah mengenai : input-proses-output,..nah produk yang dihasilkan lalu ada pertanyaan "outcome" apa?. feedback Ba...
-
"kalaudulumengikutiapayangkumausetidaknyaadamitigasiresikonya" "tapi ya sudahnya, sudah sejak 2006, 2007, 2016 khan sudah say...
No comments:
Post a Comment