281 lines
8.0 KiB
Plaintext
281 lines
8.0 KiB
Plaintext
README
|
|
======
|
|
|
|
- Project
|
|
- System Requirements
|
|
- Installation
|
|
- Library
|
|
- Translate
|
|
|
|
Note : Project are define to be use on Linux Server, so take care about path and file name.
|
|
|
|
|
|
PROJECT
|
|
=======
|
|
|
|
This application is a frontend for the WebService and it's display information graphically.
|
|
|
|
|
|
SYSTEM REQUIREMENTS
|
|
===================
|
|
|
|
- Apache 2.4
|
|
- PHP 5.5.x
|
|
- Chartdir library
|
|
- browscap.ini (http://tempdownloads.browserscap.com/, http://browscap.org/)
|
|
- wkhtmltopdf (http://wkhtmltopdf.org/)
|
|
|
|
|
|
INSTALLATION
|
|
============
|
|
|
|
Environment configuration
|
|
-------------------------
|
|
|
|
- Variables
|
|
|
|
Define application environment in the vhost. This mode activate special features and debugging mode.
|
|
|
|
SetEnv APPLICATION_ENV "production" => Production
|
|
SetEnv APPLICATION_ENV "staging" => Recette
|
|
SetEnv APPLICATION_ENV "development" => Developpement
|
|
|
|
Set in apache vhost config file (mod_php) or in .user.ini (php-fpm)
|
|
|
|
. mod_php
|
|
|
|
Add in <VirtualHost/>
|
|
SetEnv APPLICATION_ENV "development"
|
|
|
|
. php-fpm
|
|
|
|
Add a file in document root path (public/) a file .user.ini
|
|
env[APPLICATION_ENV] = "development"
|
|
|
|
See the .user.ini file
|
|
|
|
|
|
- Persistent Storage
|
|
|
|
[profil.path.shared]/persit/
|
|
asso
|
|
association
|
|
bilanclient
|
|
bodacc
|
|
courrier
|
|
giant
|
|
greffes
|
|
groupes
|
|
iris
|
|
log
|
|
logos
|
|
marques
|
|
nouveautes
|
|
wkhtml
|
|
|
|
- Temporary storage
|
|
|
|
[profil.path.shared]/
|
|
cache
|
|
files
|
|
sessions
|
|
wsdl
|
|
pages/file/image/logo
|
|
pages/file/image/cache
|
|
pages/file/streetview/img
|
|
pages/imgcache
|
|
|
|
- Printing symbolic links
|
|
|
|
ln -vsf [profil.path.shared]/pages/imgcache [profil.path.shared]/pages/file/image/cache/q;
|
|
ln -vsf [profil.path.shared]/persist/streetview [profil.path.shared]/pages/file/streetview/img/q;
|
|
ln -vsf [profil.path.shared]/persist/logos [profil.path.shared]/pages/file/image/logo/q;
|
|
ln -vsf [VHOST]/public/themes [profil.path.shared]/pages/themes;
|
|
|
|
|
|
Apache configuration
|
|
--------------------
|
|
|
|
=> Development example
|
|
|
|
<VirtualHost *:80>
|
|
ServerName extranet.sd.dev
|
|
SetEnv APPLICATION_ENV "development"
|
|
AddDefaultCharset utf-8
|
|
DirectoryIndex index.php
|
|
DocumentRoot /home/vhosts/extranet/public
|
|
<Directory /home/vhosts/extranet/public/>
|
|
EnableSendfile Off
|
|
AllowOverride none
|
|
Require all granted
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
#RewriteCond %{REQUEST_URI} ^/favicon.ico$ [OR]
|
|
RewriteCond %{REQUEST_FILENAME} -s [OR]
|
|
RewriteCond %{REQUEST_FILENAME} -l [OR]
|
|
RewriteCond %{REQUEST_FILENAME} -d
|
|
RewriteRule ^.*$ - [NC,L]
|
|
RewriteRule ^.*$ index.php [NC,L]
|
|
</IfModule>
|
|
</Directory>
|
|
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
|
|
LogLevel debug
|
|
ErrorLog ${APACHE_LOG_DIR}/extranet-error.log
|
|
CustomLog ${APACHE_LOG_DIR}/extranet-access.log combined
|
|
</VirtualHost>
|
|
|
|
=> Production configuration
|
|
|
|
See in ansible project
|
|
|
|
|
|
PHP Configuration
|
|
-----------------
|
|
|
|
File upload
|
|
-----------
|
|
post_max_size = 50M
|
|
file_uploads = On
|
|
upload_max_filesize = 40M
|
|
max_file_uploads = 10
|
|
|
|
Session
|
|
-------
|
|
On sharing plateform, these parameters must be specified to the best value for all web application
|
|
|
|
session.gc_maxlifetime = 86400
|
|
session.cookie_lifetime = 86400
|
|
|
|
Application must override the session.save_path, soap.wsdl_cache_dir to define it's own path.
|
|
|
|
Project Configuration
|
|
---------------------
|
|
See docs/application.ini, sample config
|
|
|
|
WKHTMLTOPDF
|
|
-----------
|
|
- Get the static version of wkhtmltopdf
|
|
- On Ubuntu :
|
|
sudo apt-get install libxrender1 libfontconfig
|
|
- Set execution flag (chmod +x)
|
|
- Test on command line
|
|
|
|
Page Break with WkhtmlToPdf :
|
|
In print CSS use all theses page-break-* properties
|
|
|
|
page-break-before,
|
|
page-break-after
|
|
Auto Pas de règle particulière en ce qui concerne les sauts de page.
|
|
Always Force un saut de page systématiquement avant ou après l'élément.
|
|
Avoid Evite dans la mesure du possible un saut de page avant ou après l'élément.
|
|
Left Définit que le prochain saut de page se fera sur la page de gauche.
|
|
Right Définit que le prochain saut de page se fera sur la page de droite.
|
|
Inherit Valeur identique à celle de l'élément parent.
|
|
|
|
page-break-inside
|
|
Auto Pas de règle particulière en ce qui concerne les sauts de page.
|
|
Avoid Evite dans la mesure du possible un saut de page au milieu l'élément.
|
|
Inherit Valeur identique à celle de l'élément parent.
|
|
|
|
|
|
TRANSLATE
|
|
=========
|
|
|
|
1. Creating PO file
|
|
--------------------
|
|
To create a PO file for different applications, first we need to download and install poedit,
|
|
here is the download link http://www.poedit.net/download.php
|
|
|
|
2. Set the poedit preferences
|
|
-----------------------------
|
|
File->Preferences : Fill fields to set our identies
|
|
tab Parsers, edit PHP settings, in the list of extension add *.phtml
|
|
|
|
3. Open a po file
|
|
------------------
|
|
PO file configuration for each project. As project as to be share use path that could work everywhere.
|
|
Catalogue->Properties, Set the Base paht to "../../" (to read under the whole project, if po
|
|
files is located under PROJECT/application/languages/)
|
|
|
|
Add supplemental paths to look in (application, library,....)
|
|
Add more precise search string by configuring in the Sources keywords these items
|
|
|
|
translate
|
|
_
|
|
setLabel
|
|
setValue
|
|
setMessage
|
|
setLegend
|
|
_refresh
|
|
append
|
|
prepend
|
|
|
|
In PHP source embrace all strings only with these functions.
|
|
|
|
|
|
|
|
Gestion des sessions
|
|
====================
|
|
Pour la gestion des sessions, il est nécessaire de faire une configuration spéciale afin d'éviter
|
|
les conflits entre les différents vhosts.
|
|
|
|
Les sessions sont stockées dans le même repertoire, les valeurs gc_maxlifetime, cookie_lifetime
|
|
définissent les limites de validité des sessions.
|
|
Il faut savoir que chaque modification faites par chaque application, dans chaque vhosts modifie le
|
|
fonctionnement général de PHP.
|
|
Pour eviter d'avoir des conflits sur la gestion des sessions, nous stockons les sessions dans un
|
|
répertoire définit.
|
|
|
|
Voir la configuration dans le fichier application.ini
|
|
|
|
resources.session.save_path = APPLICATION_PATH "/../cache/sessions"
|
|
resources.session.gc_maxlifetime = 86400
|
|
resources.session.cookie_lifetime = 86400
|
|
resources.session.remember_me_seconds = 86400
|
|
|
|
Debuggage
|
|
=================
|
|
Firebug et ChromePHP sont disponible.
|
|
Voir dans le fichier Bootstrap pour activer ou non le debuggage.
|
|
|
|
CONFIGURATION APC
|
|
=================
|
|
apc.cache_by_default = On
|
|
apc.enable_cli = Off
|
|
apc.enabled = On
|
|
apc.shm_size = 60
|
|
apc.max_file_size = 1M
|
|
apc.include_once_override = On
|
|
apc.stat = Off
|
|
apc.stat_ctime = Off
|
|
|
|
apc.shm_size : Taille du cache en Mo.
|
|
apc.num_files_hint : La valeur du nombre maximum de fichiers à cacher est conseillée.
|
|
apc.user_entries_hint : La valeur du nombre maximum d'entrées utilisateur
|
|
(cache utilisateur) à stocker est conseillée.
|
|
|
|
Il n'est pas conseillé de tenter de leurrer APC en doublant (par exemple)
|
|
ces valeurs. APC double déja en interne les valeurs spécifiées, et le gain en
|
|
performances est fortement réduit avec des valeurs non adaptées.
|
|
|
|
apc.stat : Se base sur les dates de modifications pour recharger le fichier
|
|
apc.stat_ctime : Se base sur les dates de création pour recharger le fichier
|
|
|
|
apc.max_file_size : Restriction sur la taille maximum d'un fichier à cacher.
|
|
Ceci peut créer des problèmes de performance lors de la demande en cache de ces
|
|
fichiers-là, mais si la mémoire est limitée, l'option demeure intéressante
|
|
|
|
apc.filters : Expression régulière utilisée pour exclure tout fichier dont le
|
|
nom a une correspondance.
|
|
|
|
apc.cache_by_default : Inverse la tendance de apc.filters : APC cachera
|
|
uniquement les fichiers qui ont une correspondance sur le filtre, au lieu de les ignorer.
|
|
|
|
apc.cache_by_default = Off
|
|
apc.filters = "+\.php$"
|
|
|
|
Dans le vhosts d'apache :
|
|
php_flag apc.cache_by_default On
|
|
|
|
|