Brain dump

Aller au contenu | Aller au menu | Aller à la recherche

lundi 17 août 2009

Zend Framework - Documentation

Quelques sources d'information sur Zend framework avec :

de la documentation :

les bases :

de l'actualité :

des tutoriaux :

des forums :

de la documentation en ligne :

Zend Framework - Mise en place

Mise en place du framework Zend Framework (version 1.8.4)

Configuration d'Apache - part I

  • Objectif :

Partant de la configuration serveur de développement décrite précédemment et le pattern MVC de Zend Framework utilisant les redirections, une modification de la configuration d'Apache.est nécessaire,

  • Configuration :
    • autorisation du mode rewrite avec la commande : sudo a2enmod rewrite,
    • prise en compte du mode rewrite par rechargement de la configuration : sudo /etc/init.d/apache2 reload,
    • autorisation des fichiers .htaccess au niveau d'Apache en faisant passer les directives AllowOverride du DocumentRoot de /etc/apache2/sites-available/default de None à All

Remarque : après cette étape, on peut placer le fichier .htaccess suivant à la racine du serveur :

RewriteEngine on
RewriteRule redirect\.html /index.html [R]

et valider le fonctionnement en vérifiant que l'appel à la page : http://192.168.0.X/index renvoie le contenu de la page index.html.

Création d'un modèle de projet et mise en ligne

Contexte :

  • le framework est téléchargé en local sur le poste XP,
  • les éléments nécessaires seront :
    • placés sur le serveur de développement via FTP dans un répertoire temp créer sous /var/www,
    • copiés dans le(s) répertoire(s) nécessaire(s) à coups de : sudo cp -R,
    • supprimés après exploitation à coups de : rm -r

Zend Framework introduit à partir de la version 1.8 l'outil Zend Tool qui permet entre autres de créer des modèles de projet.

Pour contourner les difficultés liées aux paramètres d'environnement, l'exploitation du CLI (Command Line Interface) Tool peut se faire en exploitant la solution proposée sur Libre à vous dans le billet Créer une webapp avec Zend Tool Framework et en suivant les étapes suivantes :

  • localisation de l’include_path de PHP sur le serveur de développement :
$ php  -i |grep include_path
include_path => .:/usr/share/php:/usr/share/pear => ...
  • placement de la librairie Zend (i.e le répertoire ZendFramework-1.8.4\library\Zend) sous /usr/share/php du serveur de développement,
  • placement des scripts ZendFramework-1.8.4\bin\Zend\zf.sh et ZendFramework-1.8.4\bin\zf.php sous /usr/share/php du serveur de développement,
  • génération du modèle de projet sudo /usr/share/php/zf.sh create project nom_du_projet sur le serveur de développement,
  • récupération en local sur le poste XP du répertoire nom_du_projet créé,
  • ajout de la librairie Zend (i.e le répertoire ZendFramework-1.8.4\library\Zend) dans le répertoire local nom_du_projet\library du poste XP,
  • transfert du contenu du répertoire local nom_du_projet du poste XP à la racine /var/www du serveur de développement.

Remarque : Après cette étape, le modèle de projet créé est accessible à l'adresse http://192.168.0.X/public

Configuration d'Apache - part II

Changement du DocumentRoot du serveur Apache afin que le modèle de projet soit accessible à le racine du site par :

  • modification de la ligne DocumentRoot /var/www en DocumentRoot /var/www/public du fichier /etc/apache2/sites-available/default,
  • redémarrage d'Apache sudo /etc/init.d/apache2 restart.

Remarque : Après cette étape, le modèle de projet créé est accessible à l'adresse http://192.168.0.X/

Billets relatifs :

vendredi 24 juillet 2009

Serveur virtuel pour développement web

Installation d'un serveur virtuel Ubuntu Server (version 9.04) via VirtualBox (version 3.0.2) sur un poste XP Pro.

VirtualBox

  • RAS sur l'installation de VirtualBox,
  • Modification des paramètres du logiciel avec déplacement des répertoires par défaut disque dur et machine dans les préférences du logiciel, puis création d'une nouvelle machine,
  • RAS sur le paramétrage des préférences de cette nouvelle machine sauf :
    • système -> carte mère :
      • ordre d'amorçage disque dur puis disque optique,
      • activation ACPI,
    • système -> processeur :
      • activation PAE/NX (souvenir d'une ancienne install avec problème au démarrage sans l'activation),
    • disque optique :
      • activation insérer un disque optique et sélection du mode fichier image ISO avec ajout et sélection de l'image ISO d'Ubuntu Server,
    • réseau :
      • activation de la carte réseau type PCnet-Fast III et mode d'accès accès par pont pour intégrer la machine virtuelle dans le réseau local.
  • Remarque : au niveau des connexions réseaux du poste, on en a deux :
    • une connexion au réseau local avec le Virtualbox Bridged Networking Driver activé,
    • un VirtualBox Host-Only Network avec le Virtualbox Bridged Networking Driver désactivé et une adresse IP fixe n'appartenant pas au réseau local et incompatible avec le masque de sous réseau.

Installation d'Ubuntu Server

  • Lancement de la machine virtuelle avec boot sur l'ISO d'Ubuntu Server pour installation du système avec les choix suivants :
    • aucun software installé,
    • aucune mise à jour automatique;
  • Arrêt du système (sudo shutdown -h now) et retour dans les paramètres des préférences de la machine virtuelle pour suppression de l'image ISO au niveau de VirtualBox :
    • disque optique -> fichier image iso :
      • sélectionner, libérer puis enlever l'image ISO d'Ubuntu,
      • désactiver l'insertion d'un disque optique,
    • système -> carte mère :
      • ordre d'amorçage disque dur seulement,
  • Fin d'installation du serveur avec :
    • installation des mises à jour :
      • sudo aptitude update, puis sudo aptitude dist-upgrade,
    • configuration du serveur en IP fixe en modifiant /etc/network/interfaces :
      • iface eth0 inet dhcp devient :
        iface eth0 inet static
        address 192.168.0.X
        # adresse IP sur reseau local
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.Y
        # adresse passerelle sur reseau local
    • prise en compte du changement de configuration IP en relançant le service sudo /etc/init.d/networking restart.
  • Remarque : après cette étape la machine est visible via ping à partir du poste de travail.

Installation et configuration Apache :

  • Installation des paquets :
    • sudo apt-get install apache2 apache2-utils,
  • Configuration :
    • masquage identification du serveur sur pages d'erreur (message Apache Server et numéro de version) :
      • modification des options fichier ServerSignature et ServerTokens de /etc/apache2/conf.d/security avec : ServerSignature Off et ServerTokens Prod Off,
    • redémarrage Apache :
      • sudo /etc/init.d/apache2 restart.
  • Remarque : après cette étape le serveur Apache est accessible via le navigateur du poste de travail.

Installation et configuration PHP :

  • Installation des paquets :
    • sudo apt-get install libapache2-mod-php5 php5 php5-common php5-dev php-pear,
    • sudo apt-get install php5-curl php5-gd php5-imap php5-mcrypt php5-memcache php5-mysql php5-recode php5-sqlite php5-xmlrpc,
  • Configuration :
    • masquage signature PHP dans en-têtes et suppression variables globales via les directives /etc/php5/apache2/php.ini :
      • expose_php = Off ,
      • register_globals = Off (valeur par défaut normalement),
    • redémarrage Apache :
      • sudo /etc/init.d/apache2 restart.
  • Remarque : après cette étape un fichier phpinfo peut-être testé.

Installation et configuration MySQL :

  • Installation des paquets :
    • sudo apt-get install mysql-server mysql-client libmysqlclient15-dev mysql-common,
  • Configuration :
    • mise à jour des règles de sécurité élémentaires sudo mysql_secure_installation,
    • via un more /etc/mysql/my.cnf | grep XXX voir l'état des variables XXX ci-dessous correspond au mode voulu (sinon, désactiver en commentant les lignes par # ou paramétrer avec ses propres valeurs) :
      • log_bin et expire_logs_days (log binaire),
      • log_slow_queries et long_query_time (log requêtes lentes) ,
      • key_buffer, query_cache_limit, query_cache_size (caches / taille des index, taille limite par requête, taille totale des requêtes),
      • default-character-set, default-collation (default-character-set peut apparaitre 2 fois : 1 fois pour la base et 1 fois pour le client),
  • Redémarrage de mySQL :
    • sudo /etc/init.d/mysql restart.
  • Remarque : après cette étape on peut accèder à la base via mysql -u root -p et faire un SHOW DATABASES;.

Installation phpMyAdmin :

  • Installation des paquets :
    • sudo apt-get install phpmyadmin
      note :
      • 1ère étape : chosir Apache via barre d'espace,
      • 2ème étape : choisir non (la base de données étant déjà installée),
  • Configuration :
    • renommage de l'accès à phpMyAdmin en changeant l'alias d'accès par défaut /phpmyadmin dans le fichier /etc/phpmyadmin/apache.conf
      • modifier la ligne Alias /phpmyadmin /usr/share/phpmyadmin en remplaçant l'alias /phpmyadmin par une autre URL,
    • redémarrage Apache :
      • sudo /etc/init.d/apache2 restart.
  • Remarque : après cette étape on peut accéder à phpMyAdmin via le navigateur du poste de travail.à l'alias donné ci-dessus.

Installation Proftpd

  • Installation des paquets :
    • sudo apt-get install proftpd en choisissant l'option Indépendamment,
  • Configuration :
    • accès avec compte utilisateur en lecture/écriture au répertoire /var/www :
      • changer le groupe de /var/www pour que le groupe propriétaire du dossier soit le même que celui de l'utilisateur sous lequel tourne Apache www-data' (ps auwwfx | grep apache'')
        • sudo chgrp www-data /var/www,
      • ajout du droit d'écriture au groupe (ie. www-data) sur le dossier:
        • sudo chmod g+w /var/www,
      • ajout du droit g+s pour que tous les dossiers et fichiers créés dans /var/ww appartiennent au groupe (ie. www-data) :
        • sudo chmod g+s /var/www,
      • ajout du compte utilisateur au groupe www-data
        • sudo usermod -G www-data -a compte_utilisateur.
  • Remarque : après cette étape on peut accéder en lecture/écriture à /var/www via un client FTP du poste de travail.

Point de restauration

Après arrêt du serveur, on revient sur VirtualBox pour faire un instantané (snapshot) de la machine virtuelle (cet instantané est un point de restauration).

Remarque

Malgré quelques modifications de configuration relatives à la sécurité, on est loin d'être dans une configuration d'exploitation à ce niveau que ce soit la configuration d'Apache, PHP, MySQL, ... , l'absence de Firewall, de backup, de surveillance de logs, de traquage de rootkits, ...
Les billets Configuration d'un serveur dédié de A à Z sur alsacréations et Sécuriser son Ubuntu-server de Prendre un Café mentionnés ci-dessous permettent d'aller bien plus loin de ce point de vue.

Billets relatifs :

jeudi 23 juillet 2009

C'est parti ..

Pas vraiment novice en informatique .. mais prise en main en douceur via abc dotclear. Pour moi et pour le départ, ce fut donc :

pour l'installation,

pour la configuration :

pour les sauvegardes.

Reste les aides avec :