Icarez’s Blog

Articles classés sous ‘Développement web’

Drupal : Memory Limit php

décembre 1, 2008 · Un commentaire

Certain hébergeur limite la mémoire allouée à php (memory_limit), et cela pose donc problème avec des cms. Bien que Drupal soit un CMS relativement léger, une installation de Drupal 5, avec CCk, Contemplate, et un éditeur de textes comme TinyMCE ou FCKeditor (que je recommande par rapport à TinyMCE), demande au minimum 13 – 14 Mo de mémoire php.

Sous Apache, vous pouvez changer ce memory_limit directement dans php.ini :

memory_limit = 16M

Ou dans un htaccess à la racine du site :

php_value memory_limit 16M

Malheureusement il arrive que cette modification ne soit pas possible (comme par exemple chez celeonet). Il convient alors de désactiver tous les modules inutiles, et d’activer le module throttle de drupal.

Activation du module throttle dans drupal

Activation du module throttle dans drupal

Ce module, throttle, permet de cocher une seconde croix pour chaque module (régulation en francais). Cela permet, une fois un nombre de visiteurs dépassé de réguler certain module. J’ai ainsi pu contourner la limite imposé par mon hébergeur (même si ce n’est pas une solution miracle).

Catégories : Drupal · Développement web
Tagué :

Sécuriser sa connexion LAN/Wifi avec IPSEC sous LINUX

novembre 30, 2008 · Laisser un commentaire

 

Installation de IPSEC sous GNU/Linux

Compatible Ethernet & Wifi

Récupération des fichiers nécessaires

Télécharger ce zip

Procédure d’installation

Installation des paquets nécessaires

  • sous Debian :
    • ipsec-tools
    • freeswan
  • sous Ubuntu :
    • ipsec-tools
    • openswan

Copie des fichiers fournis dans l’archive

(en mode super-utilisateur, pour ubuntu, précéder les commande de sudo)

Créer les dossiers si ils ne sont pas présents

cp generate_ipsec /etc/init.d/
cp ifraz /sbin/
cp interfaces.conf /etc/
mkdir /etc/ifplugd
mkdir /etc/ifplugd/action.d/
cp ipsec_start /etc/ifplugd/action.d/

Attribuer les droits d’acces aux fichiers :

sudo chmod 777 /etc/init.d/generate_ipsec
sudo chmod 777 /sbin/ifraz
sudo chmod 777 /etc/interfaces.conf
sudo chmod 777 /etc/ifplugd/action.d/ipsec_start

Attribuer les droits d’exécutions aux trois scripts

chmod +x /etc/init.d/generate_ipsec
chmod +x /sbin/ifraz
chmod +x /etc/ifplugd/action.d/ipsec_start

Configuration des interfaces réseau

vim /etc/network/interfaces

définir eth1 pour wifi et eth0 pour ethernet par exemple

Suppression du fichier ipsec.secrets

rm /etc/ipsec.secrets

 

Effacement des traces des précédentes connexions

/sbin/ifraz

 

Lancement du script

(en mode utilisateur)

/etc/ifplugd/action.d/ipsec_start ethx up

 

 

Remplacer ethx par l'interface (ethernet ou wifi) que vous souhaitez utiliser

Vérification du fonctionnement

(en mode super utilisateur)

setkey -D

Si vous obtenez un :

no SAD entry

Cela veut dire que IPSec ne fonctionne pas

Catégories : Développement web
Tagué : , , ,

Un gestionnaire de publicités, multisites

novembre 30, 2008 · Laisser un commentaire

J’ai installé un gestionnaire de publicités en ligne pour un parc de sites internet. Après recherches, je n’ai trouvé que 2 moteurs de publicités exploitables

  • PHPMyPup
  • OpenAds

PhpMyPub n’est plus développé depuis assez longtemps, donc on s’attardera sur OpenAds uniquement.
Il est proposé en version 2.0 qui ne demande que MySQL 3 ou 2.X qui demande MySQL 4 ou supérieur.
Ce gestionnaire est à décompresser dans un dossier de son site, par exemple /openads, et on y accèdera pour la première fois, et donc pour l’installation automatisé via : www.url_de_mon_site.com/openads/

Après avoir ajouté un annonceur, une campagne, une pub et une zone, il génère un code à placer dans cette zone, qu’on peut charger au moyen d’un include par exemple.

A noter que j’ai remarqué que le site de vente de matériel informatique LDLC utilise openads pour ses publicités…

Catégories : Développement web
Tagué : , , , ,

Système de sauvegarde MySQL et Fichiers pour serveurs linux

novembre 30, 2008 · Laisser un commentaire

Pour sauvegarder la base de données MySQL, on créer un fichier backupsql.sh dans le dossier /root

#!/bin/bash

#***********************************************************************#
# BACKUP MySQL repris de celui de DanSteph #
# —————— #
# Vous pouvez lancer ce script en cron tous les jours, il est #
# prévu pour un backup par jour #
# Attention à la taille de vos bases de données pour l’envois #
# des emails . #
# #
#***********************************************************************#

#***********************************************************************#
# TODO #
# Gestion des erreurs si échec #
# Fichier permettant de mettre directement ses BDD #
#***********************************************************************#

#***********************************************************************#
# PARAMETRES A EDITER
#***********************************************************************#
USER=”root” #Nom de superutilisateur MySQL
DBPASS=”pass” #Votre password superutilisateur
EMAIL=”votre_email@fai.com” #Votre email
#Envois d’un mail (attention ne pas mettre à 1 si JOINDB=1
MAILSEND=”0″
DBNAME1=”bdd1″ #Nom de vos bases de données
DBNAME2=”bdd2″ #Une nouvelle ligne par base
DBNAME3=”bdd3″ #
DBNAME4=”bdd5″ #
DBNAME5=”bdd5″ #

DATEFORMAT=`date +%d-%m` #Format de la fate pour le backup

#Sujet de mail que vous recevrez si MAILSEND ou JOINDB = 1
SUJETMAIL=”Backup $DATEFORMAT MySQL effectué”
COMPRESS=”1″ #Mettre “1″ pour zipper le backup
JOINDB=”1″ #Joindre par mail le Backup
#Mettez à 0 si vous souhaitez supprimer la copie local (Déconseillé)
KEEPLOCAL=”1″
#***********************************************************************#
# EDITION AVANCEE #
#***********************************************************************#

#Répertoire de backup (temporaire si KEEPLOCAL = 0
BACKUPDIR=”/backup/sql/”

#Sauvegarde des bases de données
#Rajoutez une ligne si vous avez plus de bases de données à sauvegarder
echo “Backup SQL commencé le `date`”
mysqldump –opt -u root -p$DBPASS $DBNAME1 > $BACKUPDIR/$DATEFORMAT-$DBNAME1.sql
echo “Base de données $DBNAME1 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME2 > $BACKUPDIR/$DATEFORMAT-$DBNAME2.sql
echo “Base de données $DBNAME2 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME3 > $BACKUPDIR/$DATEFORMAT-$DBNAME3.sql
echo “Base de données $DBNAME3 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME4 > $BACKUPDIR/$DATEFORMAT-$DBNAME4.sql
echo “Base de données $DBNAME4 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME5 > $BACKUPDIR/$DATEFORMAT-$DBNAME5.sql

#***********************************************************************#
# FIN DES PARAMETRES A EDITER #
#***********************************************************************#

#Compression en Zip si COMPRESS est à 1 (Option obligatoire pour l’envois de la copie par mail.
if [ "$COMPRESS" = "1" ]
then
tar -vcf $DATEFORMAT-MySQL.tar $BACKUPDIR
rm $BACKUPDIR*
mv $DATEFORMAT-MySQL.tar $BACKUPDIR
echo “Backup SQL compressé effectué `date`”
fi
#Envois d’un email récapitulatif (Désactivé la variable MAILSEND si vous avez mis JOINDB à 1.
if [ "$MAILSEND" = "1" ]
then
echo -e “Backup MySQL effectué le `date`.\nLes Bases de données $DBNAME1, $DBNAME2, $DBNAME3, $DBNAME4, $DBNAME5 ont bien été sauvegardées.\nFichier $DATEFORMAT-MySQL.tar placé dans $BACKUPDIR” | mail -s “$SUJETMAIL” $EMAIL
fi
#Envois de votre sauvegarde par email (seulement si vous avez activé la compression par ZIP.
if [ "$JOINDB" = "1" ]
then
cd $BACKUPDIR
(echo -e “Backup MySQL effectué le `date`.\nLes Bases de données $DBNAME1, $DBNAME2, $DBNAME3, $DBNAME4, $DBNAME5 ont bien été sauvegardées.\nFichier $DATEFORMAT-MySQL.tar placé dans $BACKUPDIR”; uuencode $DATEFORMAT-MySQL.tar $DATEFORMAT-MySQL.tar) | mail -s “$SUJETMAIL” $EMAIL
fi
#Suppression de votre sauvegarde local si la variable KEEPLOCAL est = 0
if [ "$KEEPLOCAL" = "0" ]
then
rm $BACKUPDIR*
fi
echo “Backup terminé”

Ensuite on l’appelle avec une tache cron

Pour la sauvegarde de fichiers, on créer un fichier backup_file.sh dans le dossier /root :

#!/bin/bash
rsync -ave –delete /dossier_a_sauvegarder /backup/repertoire_de_sauvegarde/ && echo ’sauvegarde rsync finie’ | mail votre_email@fai.com

Et de même : execution avec une tache cron.

Catégories : Développement web
Tagué : ,

Mettre un site en maintenance avec htaccess

novembre 30, 2008 · Laisser un commentaire

Pour mettre un site en maintenance, il faut éditer le fichier .htaccess à la racine du site et ajouter :


RewriteEngine On

RewriteCond %{REMOTE_ADDR} !^192\.168\.10\.100$

RewriteRule !upgrade.php$ /upgrade.php [L]

Le site ne sera alors qu’accessible à l’IP 192.168.10.100, et les autres IP seront redirigés sur la page upgrade.php.

Catégories : Développement web
Tagué : ,

Drupal : désactiver / activer Tinymce avec le bouton : “disable rich-text”

novembre 30, 2008 · Laisser un commentaire

De base le bouton qui permet de désactiver / activer tinymce ne fonctionne pas !
Afin de rendre fonctionnel le bouton  de tinymce “disable rich text”, il faut modifier le fichier tinymce.module :

--- tinymce.module	2008-04-08 09:53:01.000000000 -0400
+++ tinymce.fixed.module	2008-04-08 09:46:29.000000000 -0400
@@ -161,8 +161,8 @@
     link = document.getElementById(linkid);
     img_assist = document.getElementById('img_assist-link-'+ id);

-    if (tinyMCE.getEditorId(element.id) == null) {
-      tinyMCE.addMCEControl(element, element.id);
+    if (tinyMCE.get(element.id) == null) {
+      tinyMCE.execCommand('mceAddControl',false,element.id);
       element.togg = 'on';
       link.innerHTML = '$disable';
       link.href = "javascript:mceToggle('" +id+ "', '" +linkid+ "');";
@@ -171,7 +171,7 @@
       link.blur();
     }
     else {
-      tinyMCE.removeMCEControl(tinyMCE.getEditorId(element.id));
+      tinyMCE.execCommand('mceRemoveControl',false,element.id);
       element.togg = 'off';
       link.innerHTML = '$enable';
       link.href = "javascript:mceToggle('" +id+ "', '" +linkid+ "');";
@@ -195,10 +195,10 @@
   if (img_assist) {
     var img_assist_default_link = img_assist.innerHTML;
     if ('$img_assist_link' == 'yes') {
-      img_assist.innerHTML = tinyMCE.getEditorId('edit-$textarea_name') == null ? '' : img_assist_default_link;
+      img_assist.innerHTML = tinyMCE.get('edit-$textarea_name') == null ? '' : img_assist_default_link;
     }
     else {
-      img_assist.innerHTML = tinyMCE.getEditorId('edit-$textarea_name') == null ? img_assist_default_link : '';
+      img_assist.innerHTML = tinyMCE.get('edit-$textarea_name') == null ? img_assist_default_link : '';
     }
   }
   if (typeof(document.execCommand) == 'undefined') {
@@ -245,6 +245,12 @@
     // Load a TinyMCE init for each textarea.
     if ($init) drupal_add_js($tinymce_invoke, 'inline');

+		//settings are saved as strings, not booleans
+    if ($profile->settings['show_toggle'] == 'true') {
+      // Make sure to append to #suffix so it isn't completely overwritten
+      $element['#suffix'] .= $wysiwyg_link;
+    }
+
     // Set resizable to false to avoid drupal.js resizable function from taking control of the textarea
     $element['#resizable'] = FALSE;
   }

source : http://drupal.org/node/244066

Catégories : Drupal · Développement web
Tagué : ,

Drupal : TinyMce : Alignement des images

novembre 30, 2008 · Laisser un commentaire

Pour rendre l’alignement des images fonctionnel (ne fonctionnait pas chez moi à la base), il faut éditer le fichier plugin_reg.php du dossier tinymce (dans modules)

Il faut alors changer la ligne :

$plugins['advimage'] = array();
$plugins['advimage']['extended_valid_elements'] = array(‘img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name]‘);

en :

$plugins['advimage'] = array();
$plugins['advimage']['extended_valid_elements'] = array(‘img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|style]‘);

(soit rajouter style à la fin).

Catégories : Drupal · Développement web
Tagué : ,