Parmi les applications à migrer sur notre serveur, certaines requièrent le framework PHP symfony. Nous allons donc installer les différentes versions de symfony nécessaires et les faire cohabiter sur notre serveur. Il va être intéressant de voir quels sont les configurations à apporter à notre lighttpd installé hier.
jeudi, décembre 3 2009
installation complète d'un serveur web sous centos5.4 | jour 2 - installation de symfony et configuration d'un virtual host
Par Jean-Philippe Serafin le jeudi, décembre 3 2009, 17:25
mercredi, décembre 2 2009
installation complète d'un serveur web sous centos5.4 | jour 1 - installation du serveur web (lighttpd) et du serveur de données (mysql)
Par Jean-Philippe Serafin le mercredi, décembre 2 2009, 11:02
Tout au long de cette série de billets, nous verrons comment installer un serveur autonome sur la distribution centOS 5.4 64bit. Nous aurons besoin d'un serveur web (lighttpd ici), d'un serveur de mail (Postfix) ainsi que d'un serveur de données (mysql).
lundi, novembre 30 2009
symfony android client
Par Jean-Philippe Serafin le lundi, novembre 30 2009, 08:01
Voici deux petites classes permettant de faire des requêtes sur une application symfony depuis android tout en respectant l'architecture REST des modules.
Le client (singleton pour conserver la session) :
package org.me.sfBackendClient; import org.apache.http.impl.client.DefaultHttpClient; /** * symfony application client singleton * thanks to Cansin http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-restful-client-at-android/ * @author jean-philippe serafin <jean-philippe.serafin@dev-solutions.fr> */ public class sfClient{ private static sfClient instance; protected DefaultHttpClient httpClient; /** * constructor */ private sfClient(){ this.httpClient = new DefaultHttpClient(); } /** * instance accessor */ public static sfClient getInstance(){ if(null == instance){ instance = new sfClient(); } return instance; } /** * creating new request */ public sfRequest createRequest(){ sfRequest request = new sfRequest(this.httpClient); return request; } }
Les requêtes :
package org.me.sfBackendClient; //IO import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; //utils import java.util.List; import java.util.ArrayList; //apache import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.*; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.apache.http.impl.client.DefaultHttpClient; /** * symfony request * thanks to Cansin http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-restful-client-at-android/ * @author jean-philippe serafin <jean-philippe.serafin@dev-solutions.fr> */ public class sfRequest{ protected String url; protected String method; protected List<NameValuePair> params; protected HttpGet getRequest; protected HttpPost postRequest; protected HttpResponse response; protected String result; protected DefaultHttpClient httpClient; /** * constructor */ public sfRequest(DefaultHttpClient client){ this.httpClient = client; this.params = new ArrayList<NameValuePair>(2); } public void setUrl(String url){ this.url = url; } public String getUrl(){ return this.url; } public void setMethod(String method){ this.method = method; } public String getMethod(){ return this.method; } /** * Adding parameter * @param key * @param value */ public void addParam(String key, String value){ this.params.add(new BasicNameValuePair(key, value)); } /** * getting response text * @return String response */ public String getResult(){ return this.result; } /** * executing request */ public void execute(){ try { if(this.method.compareToIgnoreCase("GET") == 0){ this.getRequest = new HttpGet(this.getUrl()); this.response = this.httpClient.execute(this.getRequest); }else if(this.method.compareToIgnoreCase("POST") == 0 || this.method.compareToIgnoreCase("PUT") == 0 || this.method.compareToIgnoreCase("DELETE") == 0){ this.addParam("sf_method", this.getMethod()); this.postRequest = new HttpPost(this.getUrl()); this.postRequest.setEntity(new UrlEncodedFormEntity(this.params)); this.response = this.httpClient.execute(this.postRequest); } HttpEntity entity = response.getEntity(); if(entity != null){ InputStream inputStream = entity.getContent(); this.result = convertStreamToString(inputStream); } } catch (ClientProtocolException e) { //e.printStackTrace(); this.result = e.getMessage(); } catch (IOException e) { this.result = e.getMessage(); } } /** * converting stream reader to string * @return String */ private static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder stringBuilder = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { stringBuilder.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return stringBuilder.toString(); } }
L'utilisation est très simple :
sfRequest request = sfClient.getInstance().createRequest(); request.setUrl("http://xxxxxxxxx/androidConnect/connect"); request.setMethod("POST"); request.addParam("login", loginField.getText().toString()); request.addParam("password", passwordField.getText().toString()); request.execute(); String message = request.getResult();
Merci à Cansin
samedi, octobre 17 2009
Premiers pas sur fedora 11 - installation d'apache2, mysql, php
Par Jean-Philippe Serafin le samedi, octobre 17 2009, 17:10
installation d'apache (httpd) et php
on installe httpd via yum :
yum install httpd
on démarre le serveur
service httpd start
on vérifie la présence de la page de test sur http://localhost/ on installe php
yum install php
on créé un dossier pour ranger les configs de nos futures virtualHost
mkdir /etc/httpd/sites-available #dossier qui contiendra les hosts mkdir /etc/httpd/sites-enabled #dossier qui contiendra des liens symboliques vers les hosts pour les mettre en ligne
on édite le fichier de config apache
nano /etc/httpd/conf/httpd.conf
et on y ajoute tout au bout la ligne
Include /etc/httpd/sites-enabled/
pour inclure notre dossier de sites actifs.
On teste le tout en créant le dossier qui va contenir notre premier site (remplacer jean-philippe par votre user :) :
mkdir /var/www/html/www.test.loc
on crée un fichier index.php
nano /home/jean-philippe/www/www.test.loc/index.php
on y met les lignes :
<?php phpinfo();
on créé notre premier host :
nano /etc/httpd/sites-available/www.test.loc
<VirtualHost *> ServerName www.test.loc DocumentRoot /var/www/html/www.test.loc <Directory /var/www/html/www.test.loc> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
on le met en ligne :
ln -s /etc/httpd/sites-available/www.test.loc /etc/httpd/sites-enabled/www.test.loc
on surcharge la résolution du nom :
nano /etc/hosts
en ajoutant la ligne :
127.0.0.1 www.test.loc
on redémarre apache :
service httpd restart
on prend possession du dossier
chown jean-philippe /var/www/ -R
et on test http://www.test.loc
un petit lien symbolique pratique :
ln -s /var/www/html /home/jean-philippe/www
si on souhaite qu'apache se lance automatiquement au démarage de la machine :
chkconfig httpd on
Installation de mysql
on installe les paquets :
yum install mysql-server mysql
on démarre le serveur fraichement installé :
service mysqld start
on change le mot de passe root
mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('pass') WHERE User = 'root'; mysql> FLUSH PRIVILEGES; mysql> exit;
si on souhaite que mysql server se lance automatiquement au démarage de la machine :
chkconfig mysqld on
mardi, décembre 2 2008
Partager des sessions Symfony et SMF
Par Jean-Philippe Serafin le mardi, décembre 2 2008, 15:43
Pour le besoin d'un de nos projets, j'avais besoin de partager des sessions entre symfony et SMF (simple machine forum).
J'ai donc écrit une petite classe afin de pouvoir instantier une session SMF directement depuis symfony.
mercredi, octobre 8 2008
Reverse engineering PHP vers UML avec PHP_UML
Par Jean-Philippe Serafin le mercredi, octobre 8 2008, 19:07
Après plusieurs recherches, j'ai enfin trouvé l'outil Open Source permettant de faire un reverse engineering d'une application php afin d'obtenir un diagramme de classe éditable via notre éditeur UML préféré. Le tout compatible avec les namespaces (php 5.3 / php 6) !
mardi, septembre 30 2008
Debug php pas à pas et profiling de scripts avec XDebug, Vim et KCacheGrind
Par Jean-Philippe Serafin le mardi, septembre 30 2008, 11:39
Afin d'optimiser et d'accelérer le développement de vos scripts PHP, la mise en place d'un environement de debug et de profiling s'impose.
mercredi, septembre 17 2008
Amélioration de dotclear 2.0.2 - installation des plugins OpenPlanet et Contact
Par Jean-Philippe Serafin le mercredi, septembre 17 2008, 10:26
Quelques petites améliorations pour dotclear 2.0.2, ainsi que les adaptations nécessaires à l'installation des plugins OpenPlanet (syndicalisation de flux) et Contact (formulaire de contact).
dimanche, septembre 14 2008
mySql error 1059 : Contourner l'erreur 1059
Par Jean-Philippe Serafin le dimanche, septembre 14 2008, 19:38
Dans le cadre du développement de nano, nous avons créé un générateur dynamique de précédures stockées mySql.
mercredi, août 27 2008
Gedit Class Browser. Un explorateur de classes pour gedit.
Par Jean-Philippe Serafin le mercredi, août 27 2008, 14:34
Procédure d'installation d'un plugin bien pratique pour gedit pour explorer des classes php : CLass Browser.
« billets précédents - page 1 de 2