[Cartoweb-users] install problems for existing IIS6+Mapserver4.6.0+PHP5.1.2

Chris Duncan, GISmatters duncan at gismatters.com
Thu Jun 14 11:16:13 EDT 2007


I've tried to follow the instructions, with mixed success for the 
individual steps, and no luck getting mapscript to load. Please see my
results interspersed with the instructions, below, and anyone with insight
into the problems I'm having please let me know.

Are there tools to help understand better what is/is not working when PHP 
tries to load a DLL? There's got to be something more than "it worked" or 
"it didn't"...?

Thanks,

Chris

Dirk Jesko wrote:
> Hi Chris,
> 
> it took me many hours to get cartoweb running under IIS, just to find 
> out that some plugin (I think it was the pdf export) did not work under 
> our IIS configuration. Finally, I switched back to Apache.
> 
> Anyway, I install PHP, mapserver and cartoweb the following way:
> 
>    1. Get PHP running under IIS or Apache. There is a documentation on
>       php.net that works. If you are working with virtual directories
>       you *must* either set or not set or not set doc_root in php.ini. I
>       can not remember which one is correct - try. If I am not mistaken
>       it is the opposite of what some documentation said.
Done - PHP 5.2.3 installed and running under IIS 5.1 (I'm trying this on my
laptop with Windows XP for now) - doc_root is not set.
>    2. Setup error logging if it is not in php.ini. I usually log to a
>       file, i.e. "log_errors = On" and error_log = "{SOME_PATH}\php.log".
Tried everything - can't get any actual errors to be logged. Created the
file, set both NTFS and IIS permissions to allow anyone to write to it, set
the error_log to this file in PHP.ini (phpinfo() confirms that it's set),
ran various error-throwing codes but get no entries in the logfile - don't
know if logging is working or not, but I suspect not. Is this critical for
mapscript to work, or just a useful debugging tool?
>    3. Get a ms4w package from http://www.maptools.org/ms4w/. Make sure
>       it fits your PHP version. If you have 5.2.x the current ms4w 2.2.4
>       should work. Decompress it into some temp folder.
Done - downloaded and unzipped 2.2.4
>    4. Create a folder "Mapserver" somewhere and add it to the Windows
>       PATH variable. This way you do not need to put the dlls required
>       by mapserver into the Windows system path. Now log out an in again
>       or reboot if possible, so Windows rereads the system variables and
>       the new PATH is recognized.
Done - created C:\mapserver and put it in the Environment Variables->System
Variables PATH variable - confirmed by seeing it listed in phpinfo()
>    5. Now get Dependency Walker from http://www.dependencywalker.com/
>       and extract it somewhere. You will need it in step 8.
Done.
>    6. Get php_mapscript.dll from the ms4w package. It is located unter
>       {MS4W_TEMP_PATH}\Apache\php\ext. Copy it to the ext folder of your
>       PHP installation. I usually rename it to something like
>       php_mapscript_4.10.2.dll, so I know which version is currently
>       installed. Load the extension in the php.ini, e.g.
>       "extension=php_mapscript_4.10.2.dll". Make sure, that
>       extension_dir is correctly set in php.ini.
Done - but how can one know the version of the php_mapscript.dll - the file
itself has no version info, nor could I find other docs in the ms4w tree
that indicates which version of mascript is being used. I just left it as
php_mapscript.dll for now.
>    7. Copy the proj folder from ms4w and its content to C:\.
Done.
>    8. Finally, the libraries required by php_mapscript.dll have to be
>       copied to the folder created in step 4. In order to do this run
>       depends.exe and open php_mapscript.dll. It will tell you which
>       dlls are missing. Copy them from {MS4W_TEMP_PATH}\Apache\cgi-bin
>       to the folder created in step 4. Refresh the view in Dependency
>       Walker after copying, because there might be additional
>       requirements. Repeat this until no more missing dependencies are
>       reported. You may savely ignore dlls that show the timer, e.g
>       DWMAPI.dll, SHLWAPI.DLL.
Done. However, I get this warning for MPR.dll - I think from what I read on 
the web that I can ignore this warning?
"Warning: At least one module has an unresolved import due to a missing 
export function in a delay-load dependent module."
> 
> Now, php should be able to load the Mapscript extension. Check it with 
> the phpinfo() function. 

Nope :(   phpinfo() doesn't show anything about "mapscript", and the info() 
function provided with cartoweb (which just tries to load mapscript and 
then calls phpinfo) also gives warning that mapscript is not loaded.

The only 2 things that appeared anomalous when following the instructions 
were my inability to get PHP error logging to work and the warning about 
MPR.dll in the dependency walker - are either of those likely candidates 
for why mapscript isn't loading?

If it does not, I have no idea why, could be a
> version conflict or a wrong dll. It's difficult to determine without 
> seeing the actual system.
> 
> If mapscript is loaded, you should be able to install Cartoweb according 
> to the documentation.
> 
> I hope this helps a bit.
> 
> 
> Regards,
> Dirk
> 
> 
> 
> 
> Chris Duncan, GISmatters wrote:
>> I've been asked to work on an existing Mapserver site, including 
>> redeploying it as a Cartoweb project. I have solid if not extensive 
>> experience with web application development (PHP, MySQL, Mapserver, 
>> ASP, ASP.NET), but not much experience with server setup and 
>> maintenance. After a full 2 days of reading and experimenting, I still 
>> cannot get a basic Cartoweb demo to run... hope I can get some 
>> pointers to get setup.
>>
>> The existing configuration is Windows Server 2003, IIS 6.0, Mapserver 
>> 4.6.0, PHP 5.1.2.  There is a functioning Mapserver website running. 
>> My first goal is to install Cartoweb and run the demos.
>>
>> I downloaded cartoweb-withdemo-3.3.0.zip and unzipped it in it's own 
>> new directory.
>>
>> First of all, I cannot get the "prerequisites" going. I have copied 
>> php_mapscript.dll to the PHP extensions directory, I have made sure 
>> that cgi.force_redirect=0. When I go to cartoweb3 info.php I get the 
>> error message "WARNING: can't load mapscript library".
>>
>> Nonetheless, after wrestling with that problem for too long, I tried 
>> to continue with the cartoweb install, hoping that maybe I'd gain some 
>> more insight or ideas in the process. I executed the basic setup command:
>>
>> php cw3setup.php --install --base-url 
>> http://umaacorn.provost.ads.umass.edu/acorncw/cartoweb3/htdocs
>>
>> but I get blank windows when I go to client.php or demoCW3.php... they 
>> load but there's no HTML content.
>>
>> I have tried dozens of other things - messing around with the IIS 
>> configuration (currently it seems to be using php5isapi.dll, so I've 
>> tried php-cgi.exe with no luck, but maybe I didn't set it up right).
>>
>> I would love to have a step-by-step or a checklist to go by... but 
>> will settle for help of any kind!  Hope someone out there with similar 
>> setup and/or experience will lend a hand, and I'll be glad to return 
>> favors in the future!
>>
>> Cheers,
>>
>> Chris
>>
>> -- 
>>
>> Chris Duncan, Ph.D.
>> President
>> GISmatters
>>
>> duncan at GISmatters.com
>> http://www.gismatters.com/
>>
>> 1 Tuckerman Ln
>> Amherst, MA 01002
>>
>> Tel: 413-549-2052
>> Fax: 508-637-2557
>>
>> _______________________________________________
>> Cartoweb-users mailing list
>> Cartoweb-users at lists.maptools.org
>> http://lists.maptools.org/mailman/listinfo/cartoweb-users
>>

-- 
NOTE NEW STREET ADDRESS AS OF 1-DEC-2006
--

Chris Duncan, Ph.D.
President
GISmatters

duncan at GISmatters.com
http://www.gismatters.com/

1 Tuckerman Ln
Amherst, MA 01002

Tel: 413-549-2052
Fax: 508-637-2557




More information about the Cartoweb-users mailing list