Il s'agit d'installer un envirronnement de développement pour un projet statoFramework sur un poste local. Si vous disposez d'un serveur correctement configuré pour utiliser stato vous pouvez sauter cette étape. Vous devez au minimum avoir PHP 5.1, avec les extensions dom, simplexml, pcre, session, spl, mbstring et mcrypt (seules les 2 dernières ne sont en général pas installées par défaut). La version ligne de commande de PHP (PHP-CLI) est également nécessaire pour utiliser les scripts d'administration. Le mod_rewrite d'Apache devra être activé.
Le serveur ne doit pas être utilisé tel que décrit ici en production. J'ai délibérément chosi de ne pas utiliser WAMP ni EasyPHP qui sont en fin de compte plus pénible à configurer.
ou en lien direct ici http://mirrors.linhub.com/apache/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi
Activer le mode rewrite : Rechercher modRewrite, décommenter la ligne :
LoadModule rewrite_module modules/mod_rewrite.so
Cela permet à Stato de réécrire les URL proprement sans cela Stato ne fonctionnera pas.
Maintenant, on va teste que apache fonctionne: Il faut ouvrir un navigateur et taper localhost dans la barre d'adresse. Une page affichant “It works.” doit s'afficher. Si ce n'est pas le cas, appelez Damien!!!
http://www.php.net/get/php-5.2.9-2-win32-installer.msi/from/a/mirror
Choisir le web serveur Apache 2.x
Choisir le répertoire 'conf' d'apache quand l'installer le demande.
Prendre soin de sélectionner les extensions suivante pour l'installation :
* program * tout cocher * extension * bzip2 *dba * exif * gd2 * Multy-byte string * mcrypt * mysql * mysqlLi * openSSL * PDO * PDO-MYSQL * ODBC * SOAP * sockets * XML-RPC * zip * Extra * tout cocher
A ce stade il est très préférable de redémarrer, sans quoi il se peut que les extensions de PHP ne soient pas prises en comptes.
Les deux lignes suivantes devraient être ajoutées automatiquement au fichier httpd.conf d'apache :
PHPIniDir "C:/Program Files/PHP/" LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
Nous allons configurer apache pour préparer l'installation de stato : Dans le fichier httpd.conf (répertoire conf d'apache) remplacer la ligne DocumentRoot : (c'est l'endroit ou apache va chercher votre site quand vous taper http://localhost/monsite dans votre navigateur)
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
par le chemin vers votre répertoire de travail :
DocumentRoot "E:/www"
Chercher la ligne suivante :
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
remplacez là par le chemin de votre répertoire de travail
<Directory "E:/www">
Vérifier que “IfModule dir_module” comporte bien les extensions dont vous avez besoin
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.wml index.pwml index.php
</IfModule>
Il se peut qu'il soit nécessaire d'ajouter la ligne suivante si vous installez apache 2.2 :
AddType application/x-httpd-php .php
Pour les versions plus anciennes il suffit d'ajouter ”.php” à côté de la ligne contenant ”.html” Normalement l'installeur de PHP devrait prendre cela en charge, mais ce nefut pas le cas pour ma dernière installation
Pour tester le bon fonctionnement de php5 et apache il faut créer un fichier index.php, dans lequel il faut écrire :
<?php phpinfo(); ?>
Placer le fichier index.php dans le répertoire de travail ici “e:/www”
Redémarrer le serveur apache ; à cette à adresse http://localhost/index.php un tableau devrait s'afficher Si cela n'est pas le cas, il se pourrait bien qu'il soit nécessaire de redémarrer windows. Linuxiens ne riez pas, il a fallu redémarrer ubuntu Server de la même manière pour que PHP daigne fonctionner.
Dans le répertoire “c:/program files/PHP” se trouve un fichoer php.ini Vérifiez que les lignes suivantes soient présentes avec les bons paramètres et décommentées (sans le ”;”).
max_execution_time = 10 ; Maximum execution time of each script, in seconds display_errors = on error_prepend_string = "<font color=#fd036d>" error_append_string = "</font>"
Mettez 10 ou une valeur bien inférieure à celle de votre serveur de production.
Activer mcrypt : il faut copier “libmcrypt.dll” qui se trouve dans “c:/Programm Files/PHP/” dans “c:/windows/system32/” Puis vérifier que les lignes suivante existent dans le PHP.ini (dans c:/programm Files/PHP/)*
[PHP_MCRYPT] extension=php_mcrypt.dll
Lien indirect : http://dev.mysql.com/downloads/mysql/5.1.html#downloads iniutile de se logger il y a un lien en dessous de la boite de loggin “no thank”, non merci je ne veux pas remplir de questionnaire. Lien direct http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.35-win32.msi/from/http://mir2.ovh.net/ftp.mysql.com/
* Installer MySQLServer en choisissant Complete installation * Configurer le serveur une fois l'installation finie
Si tout fonctionne, vous pouvez créer votre application stato dans le répertoire de travail vérifiez les prérequis à l'aide du phpinfo. Vous devriez être prêt à installer stato ; je vous renvoie à la documentation de stato “installation” http://stato-framework.org/documentation/fr/installation
Dans le fichier C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-languages.conf, il faut ajouter la ligne suivante si elle n'y est pas.
AddDefaultCharset UTF-8
Quand vous aurez créé votre application vous aurez peut être besoin de créer des alias . A titre indicatif voici mon httpd.conf
Si vous créez des alias, pensez à bien vérifier que vous avez un fichier .htaccess dans le répertoire public de votre application. Voici ce qu'il doit contenir :
RewriteEngine On
# If your application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
# ici mettez le nom de votre alias à la place de ilovebeer
RewriteBase /ilovebeer
#for google accelerator
#RewriteCond %{HTTP:x-moz} ^prefetch
#RewriteRule ^/*admin/.* - [F,L]
RewriteRule ^$ cache/index.html [QSA]
RewriteRule ^([^.]+)$ cache/$1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
A titre indicatif voici ma configuration d'apache, on note que j'ai ajouté un virtual host et un alias le documentRoot se trouve encadré dans le virtualHost. Je vous conseille de sauvegarder votre fichier httpd.conf puis de modifier le mien pour qu'il corresponde à vos besoins. Dans votre fichier final vous pouvez retirer les commentaires d'origine de manière à le rendre plus lisible.
ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2"
Listen 80
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon
</IfModule>
</IfModule>
PHPIniDir "C:/Program Files/PHP/"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.wml index.pwml index.php
</IfModule>
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog "logs/error.log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access.log" common
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>
DefaultType text/plain
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
<Virtualhost *:80>
ServerAdmin you@domain.com
ServerName localhost:80
DocumentRoot "E:/mes sites/www"
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>
<Directory "E:/mes sites/www">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</Virtualhost>
<IfModule alias_module>
Alias /monApp "E:/chemin/vers/monApp/public"
<Directory "E:/chemin/vers/monApp/public">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</IfModule>
Attention :
il ne faut pas oublier de modifier le chemin d'instalation de stato dans : monApp/conf/boot.php
j'ai modifié mon fichier de configuration de manière à ce qu'il prenne en compte le chemin relatif de stato:
// Uncomment below to force Stato in production mode // when you don't control web server //$_SERVER['STATO_ENV'] = 'production'; // Dont't change code below. Configuration is done in conf/environment.php define('STATO_CORE_PATH', str_replace("\\" ,"/",dirname(__FILE__)).'/../../../stato'); define('STATO_APP_ROOT_PATH', str_replace('\\', '/', realpath(dirname(__FILE__).'/..'))); define('STATO_ENV', ((isset($_SERVER['STATO_ENV'])) ? $_SERVER['STATO_ENV'] : 'development')); require(STATO_CORE_PATH.'/common/lib/initializer.php'); SInitializer::boot(); ?>
Attention il faut prendre pour acquis que stato se trouve trois répertoire au dessus en effet j'ai crée les répertoire suivant
* stato