Académique Documents
Professionnel Documents
Culture Documents
Devant installer un serveur web dans un OS impos (Windows 2k3) qui nest plus tout fait jour mais encore fort utilis dans le monde de lentreprise avec une technologie web ferm (IIS 6.0) Le tout non en ASP (.net) mais bien en PHP, pour moi cest exactement contraire ma religion mon choix mais bon ici je ne grais pas laspect technique et maintenance Jai donc install IIS 6.0, Fast CGI, PHP5 et MySQL et pour tre franc, cela na pas t aussi facile que tout le monde le croit. Jai mme eu dur installer le Web Platform sur le 2003 un vrai crasse ! Aprs de longues recherches, les fichiers .php ntaient pas interprt par le serveur et celui-ci affichait une erreur 404 (Sur internet jai trouv plein de trucs&astuces mais tous datant de 2005-6 et parlant encore de .dll isapi qui ne sont plus existantes dans les nouvelles versions ou de PATH modifier puis jai prouv pas mal de problmes avec lextension PHP LDAP Voici donc tape par tape les oprations raliser pour que votre serveur web soit fonctionnel. (A jour en date du 17 fvrier 2011!)
Next
A vous de slectionner si vous voulez le FrontPage et ASP.NET (cest optionnel au bon fonctionnement mais bon)
Ce pauvre Windows vous demande des sources pour installer le role, il suffit de mettre le CD ou davoir copier le dossier I368 sur votre HDD!
Et voil cest enfin fini (Reste plus qu tester si cela est pleinement fonctionnel) => 9 tapes pour faire un apt get install apache2 ou yum install apache2
Start -> All Programs -> Administive Tools -> Internet Information Services IIS Manager
Rendez-vous dans Web Sites -> Default Web Site -> Et activer le (La touche Play) et testez en vous rendant sur http://localhost Si cela affiche Under Construction cest que vos IIS fonctionnent bien ! (Cest dj un bon point!) Conseil : Pensez toujours faire les mises jour Windows Jusquici rien de compliqu lIIS !
Next
Comme dans ce tuto nous avons install le IIS FastCGI car sans a, a ne fonctionnait pas, donc nous le cochons!
Ici installez TOUTES Les extensions donc vous avez besoin, car si vous ne les cochez pas, les dll ne se copieront pas dans le dossier ext/ et pour installer linstaller il ne vous suffira pas de lactiver par le fichier php.ini (exemple : extension=php_ldap.dll) -> Perso jai besoin du LDAP
Start -> All Programs -> Administive Tools -> Internet Information Services IIS Manager-> Web Service Extension -> Add a new Web extension
Entrez dans Extension name : Fichier PHP et rajoutez (ADD) lexcutable php-cgi.exe qui se trouve ici C:\Program Files\PHP\phpcgi.exe Personnellement jai essay avec le php.exe , php-win.exe voir php5isapi.dll, php5nsapi.dll ou encore php5ts.dll SANS SUCCS (Attention ne prenez pas des dll de version EasyPHP,Wamp,Xampp,Mamp, car les dll sont prvue pour du Apache !)
Rendez vous dans longlet Default Web Site -> Clic droit > Properties
Add
Entre dans le champ Executable : C:\Program Files\PHP\php-cgi.exe (Avec les guillemets car nous avons une espace dans ProgramFiles ) Et dans lextension : .php (sans les guillemets cette fois) OK
Start -> Execute -> cmd -> iisreset (pour redmarrer lIIS) Et crer dans le C:/Inetpub/wwwroot/ un index.php et crivez dedans <?php phpinfo() Et lancez IE et allez sur http://localhost/index.php et a fonctionne : a affiche le phpinfo !
4. Installer MySQL :
Nous allons utiliser la technologie mysql pour le stockage de base de donne (cest bien souvent un standard)
La version actuelle au moment ou je vous parle est la 5.5.8 pour win32/64 trouvable ici : http://dev.mysql.com/downloads/mysql/
Cochez I accept the terms in the Licence Agreement (Noubliez pas de lire les 63 Pages !)
Nous allons linstaller normalement en Typical (ne compliquons pas les choses)
Install
Next
Next
Next
Pour ma part cest une machine qui va rentrer en production donc je slectionne le Server Machine -> Next
Si vous avez une partition ou un disque diffrent pour le stockage de la base de donnes. -> Next
(Pour cette partie je vous conseille de dsactiver votre Firewall/Antivirus) Et rajoutez toujours Add Firewall exception for this port le port par dfaut est le 3306 -> Next
Installez le comme service pour que celui-ci dmarre avec Windows (Lauch the MySQL Server automatically)
Inscrivez un mot de passe complexe (Majuscule-MinusculeCaractre Spciaux-chiffre!) Et si vous devez attendre la DB en remote slectionnez le! Et voila, linstallation va se faire. Des fois linstallation, bloque linstallation du service , je vous conseille de dsinstaller linstance , puis dsinstaller le mysql server , lancer un Ccleaner (fichier/registre) puis relancer linstallation de mysql server from scratch!
5. Installer PHPMyADMIN:
Pour administrer la base de donnes, je vais utiliser PHPMyadmin qui permet de crer des tables , utilisateurs , dumper des SQL, Tlcharger le zip sur http://www.phpmyadmin.net/home_page/downloads.php version 3.3.9.2
Rendez-vous sur http://localhost/phpmyadmin et loguer vous en root votre mot de passe a t dfinis pendant linstallation de MySQL server
Ajout daccs (Privilges), Import Export , Cependant des fois si vous importez une SQL un peu trop grande la page charge et sarrte ou affiche un erreur en cours de route
Il faut modifier des valeur PHP pour augmenter les valeurs de temps limite dexcution , maximum de la ram utilisable , lenvoie maximum de fichier ,
Le fichier a modifier est PHP.ini Les valeurs a augmenter sont : max_execution_time max_input_time memory_limit upload_max_filesize post_max_size Voila maintenant vous savez tout !
Tlchargez et installez l'extension Microsoft FastCGI pour IIS 5.1 et 6.0. L'extension est disponible pour les plate-formes 32-bit et 64-bit - slectionnez le bon paquet pour votre plate-forme.. Configurez l'extension FastCGI pour grer les requtes spcifiques PHP en excutant la commande ci-dessous. Remplacez la valeur du paramtre "-path" avec le chemin absolu vers le fichier php-cgi.exe. Exemple #2 Configuration de l'extension FastCGI pour grer les requtes PHP
cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^ -extension:php -path:"C:\PHP\php-cgi.exe"
Cette commande va crer un mapping des scripts IIS pour les extensions de fichiers *.php, ce qui aura pour effet la gestion de toutes les URLs se terminant par .php par l'extension FastCGI. De plus, la commande configurera l'extension FastCGI lui demandant d'utiliser l'excutable php-cgi.exe pour traiter les requtes PHP. Note:
A ce point, les tapes d'installation et de configuration ncessaires sont termines. Les instructions qui suivent dans cette section sont optionnelles mais vivement recommandes afin d'atteindre des fonctionnalits et des performances optimales de PHP sous IIS.
Pour modifier la configuration des permissions sur des fichiers ou des dossiers, utilisez l'explorateur Windows ou la commande icacls. Exemple #3 Configuration des permissions d'accs
icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)
vous la configuration de l'extension FastCGI pour IIS 6.0 pour plus d'informations sur ces configurations. Exemple #5 Configuration du dlai d'expiration FastCGI
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -ActivityTimeout:90 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -RequestTimeout:90
Microsoft IIS
If you continue to receive FastCGI could not proccess your request Access Denied Error -5 check to make sure the IIS_WPG Group has Read, Read/Execute permission to the PHP installation directory and is inherited to the php-cgi.exe file. Also, in researching this problem during my installation, I also found that you should have an entry in the IIS Web Extensions for the php-cgi.exe.
I am using Win 2003 Server, IIS 6, PHP 5. If you see "You are not authorized to view this page" error when running your PHP page. Try one more thing: 1. Right-click {C:\php} (or your PHP installation root) and select {Properties} 2. Select {Security} tab and click {Add} button 3. Enter {ComputerName/IUSR_ComputerName} as object name and press {OK} 4. Select {Read & Execute} as permissions 5. Click {Advanced} button and select {Allow inheritable permissions from the parent...} checkbox 6. Press {OK}
Si PHP est utilis avec IIS, alors choisissez PHP 5.3 VC9 Non Thread Safe ou PHP 5.2 VC6 Non Thread Safe; Si PHP est utilis avec IIS7 ou suprieure et PHP 5.3+, alors les binaires VC9 de PHP doivent tre utiliss. Si PHP est utilis avec Apache 1 ou Apache 2, alors choisissez PHP 5.3 VC6 ou PHP 5.2 VC6.
Note: Les versions VC9 sont compiles avec le compilateur Visual Studio 2008 et sont optimises en terme de performance et de stabilit. Les versions VC9 ncessitent d'avoir Microsoft 2008 C++ Runtime (x86) ou Microsoft 2008 C++ Runtime (x64) d'install.
-- vide
| +--pear -| | |-go-pear.bat -| |-... | |-php-cgi.exe -| |-php-win.exe -un prompt de commande ouvert | |-php.exe -(CLI) | |-... | |-php.ini-development -php.ini | |-php.ini-production -php.ini | |-php5apache2_2.dll -non thread safe | |-php5apache2_2_filter.dll -non thread safe | |-... | |-php5ts.dll -php5.dll en version non thread safe) | |-...
configuration par dfaut du configuration recommande du n'existe pas dans la version n'existe pas dans la version
Voici la liste des modules et des excutables inclus dans l'archive zip de PHP :
go-pear.bat - le script de configuration de PEAR. Rfrez-vous l' installation de PEAR pour plus de dtails. php-cgi.exe - excutable CGI qui peut tre utilis lors de l'excution de PHP sous IIS via CGI ou FastCGI. php-win.exe - l'excutable PHP pour l'excution de scripts PHP sans fentre de ligne de commande (par exemple, des applications PHP qui utilisent un GUI Windows). php.exe - l'excutable PHP pour l'excution de scripts PHP dans une interface de ligne de commande (CLI). php5apache2_2.dll - module Apache 2.2.X. php5apache2_2_filter.dll - filtre Apache 2.2.X.
placer le fichier php.ini dans le dossier de votre choix mais cela ncessite d'autres tapes de configuration dcrites dans la configuration de PHP. Le fichier php.ini indique PHP la faon doit il doit se configurer, mais aussi la faon dont il doit travailler avec l'environnement sur lequel il s'excute. Voici quelques concfigurations du fichier php.ini qui aide PHP fonctionner d'une meilleure faon sous Windows. Quelques-unes sont optionnelles. Il y a bien d'autres directives utiles pour votre environnement - rfrez-vous la liste des directives du php.ini pour plus d'informations. Directives ncessaires :
extension_dir = <chemin vers le dossier des extensions> - extension_dir doit pointer vers le dossier contenant les fichiers des extensions PHP. Le chemin peut tre absolu (e.g. "C:\PHP\ext") ou relatif (e.g. ".\ext"). Les extensions listes ci-dessous dans le fichier php.ini doivent se trouver dans le dossier extension_dir. extension = xxxxx.dll - Pour chaque extension que vous voulez activer, vous avez besoin d'une directive "extension=" qui indique PHP quelles extensions du dossier extension_dir doivent tre charges au dmarrage. log_errors = On - PHP a une fonctionnalit permettant d'historiser les erreurs, pouvant tre utilise pour envoyer les erreurs dans un fichier, ou vers un service (i.e. syslog) et fonctionne en conjonction de la directive error_log cidessous. Lors de l'excution sous IIS, log_errors devrait tre active, avec une valeur valide de error_log. error_log = <chemin vers le fichier d'historisation des erreurs> - error_log doit spcifier le chemin absolu ou relatif vers un fichier o les erreurs PHP doivent tre crites. Le fichier doit tre accessible en criture par le serveur web. L'endroit commun de ce fichier est le dossier TEMP, par exemple, "C:\inetpub\temp\php-errors.log". cgi.force_redirect = 0 - Cette directive est ncessaire pour le fonctionnement sous IIS. Elle est relative la scurit et est ncessaire par bons nombres de serveurs web. Cependant, son activation sous IIS fera chouer le moteur PHP sous Windows. cgi.fix_pathinfo = 1 - Cette directive permet PHP d'accder aux informations concernant le chemin rel suivi par la spcification CGI. Cette directive est ncessaire lors de l'implmentation de FastCGI sous IIS. fastcgi.impersonate = 1 - FastCGI sous IIS supporte la possibilit de rendre impersonnels les lments relatifs la scurit lors d'un appel client. Ceci permet IIS de dfinir le contexte de scurit sur lequel la demande est effectue. fastcgi.logging = 0 - L'historisation FastCGI doit tre dsactiv sous IIS. S'il est activ, alors tous les messages de toutes les classes seront traits par FastCGI comme des conditions d'erreur, ce qui fera qu'IIS gnrera des exceptions HTTP 500.
Directives optionnelles
max_execution_time = ## - Cette directive demande PHP un maximum de temps afin d'excuter un script donn. Par dfaut, c'est 30 secondes.
Augmentez la valeur de cette direction si l'application PHP prend plus de temps s'excuter. memory_limit = ###M - La mmoire maximale disponible pour le processus PHP, en mga-octets. Par dfaut, c'est 128, ce qui est parfait pour la plupart des applications PHP. Pour des applications plus complexes, il peut tre ncessaire d'augmenter cette valeur. display_errors = Off - Cette directive indique PHP si les messages d'erreur doivent tre inclus dans le flux retourn au serveur web. Si dfini "On", alors PHP les enverra, suivants les classes d'erreur que vous avez dfinies avec la directive error_reporting, au serveur web comme partie du flux d'erreur. Pour des raisons de scurit, il est recommand de dfinir "Off" cette directive sur les serveurs de production afin de ne pas rvler les informations concernant la scurit, qui sont inclues dans les messages d'erreur. open_basedir = <chemins vers les dossiers, spars par un point virgule>, e.g. openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Cette directive spcifie le chemin vers le dossier o PHP est autoris effectuer des oprations sur le systme de fichiers. Toute opration en dehors de ces chemins retournera une erreur. Cette directive est spcialement utile pour cantonner l'installation de PHP dans des environnements partags afin d'viter que les scripts PHP accdent tout fichier se trouvant en dehors du dossier racine du site web. upload_max_filesize = ###M et post_max_size = ###M - La taille maximale autorise, respectivement, d'un fichier tlcharg et des donnes de type POST. Les valeurs de ces directives devraient tre augmentes si les applications PHP doivent effectuer de gros tlchargements, comme des images ou des fichiers vidos.
PHP est maintenant configur pour votre systme. La prochaine tape est de choisir un serveur web et de la configurer pour y faire fonctionner PHP. Choisissez un serveur web depuis la table de contenus. En plus de faire fonctionner PHP via un serveur web, PHP peut tre excut depuis la ligne de commande, la faon des scripts .BAT. Reportez-vous au chapitre sur la ligne de commande PHP sous Microsoft Windows pour plus d'informations.
Microsoft IIS
add a note User Contributed Notes tapes pour une installation manuelle
the machine." Note that this is not the case in Windows 7. (I'm not sure about Vista).
Step 7: Now time to modify php-ini, file... open the file in notepad, look for extension=php_mysql.dll, uncomment it, i.e., delete ";" thats prefixed...also look for "extension_dir=" append "C:\php\ext" incase ur php installation directory is php else "C:\%installation dir%\ext" sterp 8 : find directory index in http.conf and add index.php with index.html Step 9: Copy libmysql.dll to c:\windows\system32 step 10 : run mysql exe to install it. step 11 : download phpmysql and place that in htdocs and rename it to phpmyadmin.s
check php and apache installation by give 'local host' in address bar in any browser, If 'Its work' is displayed then its installed correctly and check the green color in Apache. Php and apache installation is done ......:):)
with an unhelpful, seemingly unrelated dll error. For example, in your php.ini file, you must manually place 'extension=php_exif.dll' after- 'extension=php_mbstring.dll' if you wish to use the exif and mbstring extensions or else your server may crash. The msi installer may or may not automatically have correct load order, but for manual installs, it does not. Do not attempt to uncomment extension lines in the default php.ini file that comes packaged with php install or zip packages without knowing what you're doing. Before loading extensions in this manner, be sure you have met the prerequisites for load order and have ready any missing dll files listed in the above link.
http://forums.mysql.com/read.php?10,153077,155121#msg-155121 which is to replace 'libmysql.dll' file in your PHP installation directory (also in winnt/system32 if you copied it there) with the Dll from PHP 5.2.1 You can download the second one from here: http://www.php.net/get/php-5.2.1-Win32.zip/from/a/mirror Regards, Fernando Gabrieli
throws up an error stating it cannot load the mysqli extension and/or you get the 'bad handshake' warning. Solution: update your libmySQL.dll file in your system32 folder. This requires you to stop all internet services on your computer i.e IIS. Full details below. ############################# Background: my server is set up as follows: php files folder == C:\PHP I have configured my php.ini file opening up the required extensions etc I have mapped the necessary extension to IIS I have configured my website extension(s) I have mapped my windows path ';C\PHP;C\PHP\ext' I have registered my ini file I have tested my phpinfo() and it works I have installed phpMyAdmin and it refuses to work I have tried simple mysql connection scripts ...nada I have checked everything 50 times I am bald. Then I did this: ############################## 1) Copy 'libmySQL.dll' from C:\PHP (or the folder where you have loaded php into) 2) Open 'Windows\system32' folder. Do nothing at the moment, just have this window 'to hand'. 3)Open IIS manager snap in(control panel - administrative tools - IIS manager) Right click server name as shown below: - Internet Information Services - My Computer (local computer) - right click Select 'all tasks' then 'Restart IIS...' Use drop down then select 'stop internet services on XXXXX' and click 'OK' 4) Return to your 'Windows\system32' folder. Paste 'libmySQL.dll' (it is already in your clipboard from step 1). It will warn you about overwrite the current one. Select YES. 5) Return to IIS manager. Follow steps as in '3' above except now choose 'Restart Internet Services on XXX' (the default option), click OK.
Installed PHP into C:\Program Files\PHP, and set environment variable PATH to path as stated. When selecting the installation of php5isapi.dll via IIS Administrator, IIS would insert the path as: "C:\Program Files\PHP\php5isapi.dll" (note the quotes and space in directory name) All scripts ran and produced a HTTP 500 error. Replaced ISAPI path in IIS with: C:\PROGRA~1\PHP\php5isapi.dll (note the removal of the quotes and spaces, and the replacement of the path with 8.3 format names) All scripts ran w/o problems. Thanks to all! I hope someone can report if a similar problem exists with IIS6/7.
You are correct. I just had the same issue; I was following the PHP installation instructions and some very helpful WIMP instructions. I was trying to keep things tidy by putting my PHP directory in C:\Program Files\PHP. I set the PATH variable, ISAPI filter config and extension in Application Configuration, but was getting the "Specified module could not be found" error. Changed the PHP directory to C:\PHP and reconfigured everything, did an iisreset, and it started working immediately. Good catch, and thank you!
2. Right-click on DefaultAppPool (or other, if you have one defined) and choose Properties 3. Click the Identity tab 4. Make a note of the user name set as the security account for this application pool (e.g. "Network Service") 5. Browse to your PHP directory and grant that user read permissions for the entire directory. In my case, I had to add permissions for the user "NETWORK SERVICE" to get PHP scripts to work. Otherwise I received 401/403 authorization errors when trying to load them in a remote browser. Note also that first tried adding IUSR permissions to the PHP directory, but that had no effect.
textbox (Browse... to find it more easily if you need to) * Enter ".php" in the "Extension" textbox * Select radial button "Limit to", enter "GET,POST,HEAD" * Click "OK" all the way out 2. Verify php5isapi.dll is allowed You must verify that the versions of php5isapi.dll that you want to use are allowed. 2.1. In Internet Information Services (IIS) Manager, in the lefthand column, click the Web Services Extensions node and verify php5isapi.dll is allowed and all other Web Service Extensions are prohibited. 2.2. If the version of php5isapi.dll that you want to use does not appear in the list, follow the instructions to enable it and then repeat this procedure: Go into IIS Below all of the websites is a folder: Web Service Extensions In blue, to the lower left, is a choice: Add A New Web Service Extension Add PHP/PHP5ISAPI.dll Choose To ALLOW it. 2.3 If the version of php5isapi.dll you want to use appears on the list but is not allowed, right click the version of php5isapi.dll you want to allow and click Allow. 3. Configuring IIS for 32-Bit Emulation Mode (THIS IS MOST IMPORTANT!!!!) 3.1. If you are installing IIS on x64-based editions of Windows Server 2003 or Windows Server 2003 R2, IIS must be configured to run in 32 bit emulation mode. Perform the following procedure on each front-end Web server running an x64-based edition of Windows Server 2003. Configure Internet Information Services (IIS) for 32-bit mode 1. Click Start, and then click Run. 2. In the Open box, type cmd, and then click OK. 3. In the command prompt window, navigate to the %drive%:\Inetpub\Adminscripts folder, where %drive% is the drive in which Windows Server 2003 is installed. 4. In the Adminscripts folder, type the following command: cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1 Note The value "1" for Enable32bitAppOnWin64 specifies 32-bit whereas the value "0" specifies 64-bit mode. Press ENTER. Type iisreset and then press ENTER. Close the command prompt window.
mode, 5. 6. 7.
8. Re-star System. Note The Run WWW service in IIS 5.0 isolation mode check box is only selected if you have upgraded to IIS 6.0 on Windows Server 2003 from IIS 5.0 on Windows 2000. New installations of IIS 6.0 use IIS 6.0 worker process isolation mode by default.
"C:\Program Files\php5\php5isapi.dll" -- doesn't work C:\php5\php5isapi.dll -- works "C:\php5\php5isapi.dll" -- doesn't work C:\Progra~1\php5\php5isapi.dll -- works "C:\Progra~1\php5\php5isapi.dll" -- doesn't work C:\Program Files\php5\php5isapi.dll -- doesn't work, because it's not accepted by Internet Information Services I don't know if this all is a problem with Internet Information Services or with PHP, but it would be nice if it was more documented in the PHP manual.