• SlinkingAnt
  • Registratie: December 2001
  • Niet online
Situatie:
Windows 2008 64bit geinstalleerd met IIS 7 erop. PHP5 geinstalleer (lees uitgepakt) in C:\Program Files (x86)\PHP5\

PHP succesvol toegevoegd als isapi-module onder de Handler Mappings. Het uitvoeren van bijv

PHP:
1
<? phpinfo(); ?>
vormt ook geen probleem, en wordt netjes weergegeven in m'n browser.

Het probleem:
Het aanpassen van de php.ini, of beter gezegd het aanpassen van de php.ini in de eerder genoemde folder.

Standaard kijkt PHP in een aantal folders of er een php.ini te vinden is, zie: de documentatie
  1. de SAPI-module location.
  2. de PHPRC-environment variable.
  3. de regkey HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z\IniFilePath, waarbij x,y,z de versienummers zijn.
  4. de regkey HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath
  5. current working directory
  6. webserver directory
  7. windows-directory.
Oplossingen?
Optie 1 valt af omdat ik geen idee heb hoe deze in te stellen in combinatie met IIS.
Optie 2 werkt ook niet, ondanks dat een
code:
1
2
C:\>echo %PHPRC%
"C:\Program Files (x86)\PHP5"
als resultaat geeft.
Optie 3 was veelbelovend, omdat ik succesvolle ervaringen hebt met optie 3 op een w2003-machine icm IIS6 en 2 verschillende PHP5-versie's, maar niet uitgevoerd, zie verder ;)
Optie 4 is practisch gelijk aan 3, en imho de meest handige oplossing, omdat je eenvoudig je php-versie kunt upgraden, zonder regkey's aan te passen om je config te laden.Opties 5,6 en 7 vallen eenvoudig af omdat ik 1 php.ini wil plaatsen, in de map waar deze thuis hoort, namelijk in C:\Program Files (x86)\PHP5\.

Hoe ik de regkey's ook instel, ik krijg het niet voor elkaar om naar bovenstaande map te wijzen. Volgens de docs moet deze key ingesteld worden:
code:
1
2
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]
"IniFilePath"="\"C:\\Program Files (x86)\\PHP5\""

Maar aangezien deze voor de 64bit-omgeving is, en de php-module in een 32bit application-pool draait, heb ik ook deze key ingesteld:
code:
1
2
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PHP]
"IniFilePath"="\"C:\\Program Files (x86)\\PHP5\""

Maar ook deze key heeft niet de gewenste uitwerking ;(

Heeft er iemand nog een idee waar ik kan zoeken, want ik word er nu enigsinds 7(8)7 van...

Intel C2Q 9450@3.3 | Gigabyte P35-DS4 | Sapphire R280x | 4x 2GiB PC6400 Kingston DDR2 | 1x Intel 320SSD 240GB | 2x Spinpoint F1 320GiB


  • SlinkingAnt
  • Registratie: December 2001
  • Niet online
Na nog meer geprobeer de oplossing gevonden: gebruik geen "" in je register. Blijkbaar kan php wel goed overweg met mapnamen waarin spatie's zitten...

Oftewel de werkende oplossing:
code:
1
2
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PHP]
"IniFilePath"="C:\\Program Files (x86)\\PHP5"

Als je via regedit deze keys aanmaakt, houdt er dan rekening mee dat je een enkele \ gebruikt :).

Intel C2Q 9450@3.3 | Gigabyte P35-DS4 | Sapphire R280x | 4x 2GiB PC6400 Kingston DDR2 | 1x Intel 320SSD 240GB | 2x Spinpoint F1 320GiB


  • tim427
  • Registratie: September 2006
  • Laatst online: 03-02 21:18

tim427

Turbulence!

Heb je wel de 64 bit PHP?

En/of een website-application in 32bit compatibility mode draaien :?
srry, niet goed gelezen..

Bij mij werkt het altijd prima.. Alhoewel ik altijd de php.ini in de windows map gooi en de binaries in C:\Program Files\PHP

als je PHP.exe runt, moet je als het goed is geen fouten krijgen...

[ Voor 54% gewijzigd door tim427 op 02-03-2009 22:39 ]


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

SlinkingAnt schreef op maandag 02 maart 2009 @ 22:14:
Na nog meer geprobeer de oplossing gevonden: gebruik geen "" in je register. Blijkbaar kan php wel goed overweg met mapnamen waarin spatie's zitten...
waarom niet het hele probleem voorkomen door bijvoorbeeld C:\etc\php5 als dir te gebruiken en die op te nemen? :)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • SlinkingAnt
  • Registratie: December 2001
  • Niet online
Dan had ik alsnog die directory moeten kunnen aangeven, en dat ging uberhaupt al mis. Misschien dat ik er dan wel eerder achter gekomen was dat er geen "" nodig waren :P

Slightly offtopic: Hoe krijg je onder IIS de .phps-extensie werkend? Aangezien die dezelfde php5isapi.dll aanroept :P

Intel C2Q 9450@3.3 | Gigabyte P35-DS4 | Sapphire R280x | 4x 2GiB PC6400 Kingston DDR2 | 1x Intel 320SSD 240GB | 2x Spinpoint F1 320GiB