Quantcast
Channel: All Forums
Viewing all articles
Browse latest Browse all 27852

PHP browscap on IIS7 works on a Windows 7 Enterprise OS but not on Windows Server 2008 R2 OS

$
0
0

This problem has got me perplexed. Any help greatly appreciated!


The problem: running the following code (simple enough)

<?php
	header('Content-type: text/plain');
	echo 'Browser Info: '.$_SERVER['HTTP_USER_AGENT'].PHP_EOL.
		var_export(get_browser(null, true), true);
?>

get the following error:

PHP Warning:  get_browser(): browscap ini directive not set in C:\inetpub\wwwroot\dotTest\test.php on line 4

Here's what I've done

I'm using the full_php_browscap.ini downloaded from the official site: http://tempdownloads.browserscap.com/

Here's the snippet from my php.ini file

[browscap]
; http://php.net/browscap
browscap = "C:\inetpub\wwwroot\full_php_browscap.ini"

And I learned I had to use the phpmanager tool to change the setting in IIS to pay attention to changes in php.ini. I had to install it from http://phpmanager.codeplex.com/releases/view/69115 on the windows server but not the windows 7 machine interestingly enough.

and from phpinfo() Core section (can't copy the tabular format but here's the info):

Directive: browscap
Local Value: C:\inetpub\wwwroot\full_php_browscap.ini
Master Value: C:\inetpub\wwwroot\full_php_browscap.ini

so we can see it's loading the correct ini file (same file for both machines, one works one doesn't)

I tried checking with procmon: http://technet.microsoft.com/en-us/sysinternals/bb896645 and sure enough the browscap file has read process logs when the server is restarted.

I use the following batch script run as an administrator to make sure that permissions are in order on the server

ICACLS C:\inetpub /grant "IIS AppPool\DefaultAppPool":(OI)(CI)F
ICACLS C:\inetpub /grant "IUSR":(OI)(CI)F
ICACLS C:\Windows\Temp /grant "IIS AppPool\DefaultAppPool":(OI)(CI)F
ICACLS C:\Windows\Temp /grant "IUSR":(OI)(CI)F

(why the temp folder? that's where files get uploaded to from a web upload and for the php_move_uploaded_file method to work permissions need to exist there)

As a sanity check I copy pasted the path C:\inetpub\wwwroot\full_php_browscap.ini from the ini file, and from phpinfo() [they are indeed, in fact, the same path, caps and all not that that caps matter on a whindows machine] into notepad's open file dialog. The file does indeed, in fact open.

I should also mention on the windows server machine this error was constant whether or not browscap was set properly and "(none)" was shown on php.ini while on the windows 7 machine the var_dump simply showed the text 'false'. Now the windows 7 machine shows

Browser Info: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
array (
  'browser_name_regex' => '§^mozilla/5\\.0 \\(.*windows nt 6\\.1.*wow64.*\\).*gecko/.*firefox/20\\..*$§',
  'browser_name_pattern' => 'Mozilla/5.0 (*Windows NT 6.1*WOW64*)*Gecko/*Firefox/20.*',
  'parent' => 'Firefox 20.0',
  'platform' => 'Win7',
  'platform_version' => '6.1',
  'platform_description' => 'Windows 7',
  'win32' => '',
  'win64' => '1',
  'comment' => 'Firefox 20.0',
  'browser' => 'Firefox',
  'version' => '20.0',
  'majorver' => '20',
  'minorver' => '0',
  'beta' => '1',
  'frames' => '1',
  'iframes' => '1',
  'tables' => '1',
  'cookies' => '1',
  'javascript' => '1',
  'javaapplets' => '1',
  'cssversion' => '3',
  'device_name' => 'PC',
  'device_maker' => 'Various',
  'renderingengine_name' => 'Gecko',
  'renderingengine_version' => '20.0',
  'renderingengine_description' => 'For Firefox, Camino, K-Meleon, SeaMonkey, Netscape, and other Gecko-based browsers.',
  'alpha' => '',
  'win16' => '',
  'backgroundsounds' => '',
  'vbscript' => '',
  'activexcontrols' => '',
  'ismobiledevice' => '',
  'issyndicationreader' => '',
  'crawler' => '',
  'aolversion' => '0',
)

while the windows server machine still shows the error. Any ideas why it wouldn't load? Are there other things I can check? Is this a bug in IIS that only affects WS 2008 R2? I've run out of things I know to check for, all evidence suggests it's not an immediate problem with php. Any feedback appreciated.


Thanks in advance.


Viewing all articles
Browse latest Browse all 27852

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>