Installation Symfony2, Solarium & NelmioSolariumBundle

Nelmio Solarium Bundle permet de connecter Solarium à Symfony2. Ce bundle est une initiative de Nelmio. Solarium est une librairie PHP qui permet de communiquer avec PHP. Cette petite liste de commandes est davantage une prise de note qu’un tutorial, afin de gagner du temps en cas de futures réinstallations.

Création du répertoire de stockage

mkdir /var/www/www.inclusive.fr/

Téléchargement de Composer

curl -sS https://getcomposer.org/installer | php

Téléchargement et installation de Symfony2

php composer.phar create-project symfony/framework-standard-edition path/ 2.3.1

Ajout du bundle dans « require » du fichier composer.json

"nelmio/solarium-bundle": "2.*"

Mise à jour des dépendances par Composer

../composer.phar update
  • Composer va par la même occasion installer Solarium
  • Résultat attendu :
Updating dependencies (including require-dev)
  - Installing solarium/solarium (3.1.2)
    Loading from cache

  - Installing nelmio/solarium-bundle (v2.0.4)
    Loading from cache

Ajout du bundle dans AppKernel.php

new NelmioSolariumBundleNelmioSolariumBundle(),

Ajout des variables Nelmio dans app/config/config.yml (possible de mettre valeur directement dans le fichier, sans passer par des variables configurée dans parameters.yml).

nelmio_solarium:
    endpoints:
        default:
            host: %solr_host%
            port: %solr_port%
            path: %solr_path%
            core: %solr_core%
            timeout: %solr_timeout%
    clients:
        default:
            endpoints: [default]

Ajout des paramètres dans app/config/parameters.yml. Attention, en cas de mise à jour par Composer, les valeurs présentes ci-dessous disparaissent…

    solr_host: localhost
    solr_port: 8983
    solr_path: /solr
    solr_core: allTest
    solr_timeout: 5

On fait sauter la protection sur IP dans web/app_dev.php :

use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentDebugDebug;

umask(0000);

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
Debug::enable();

require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

On renomme /web/config.php en quelque chose d’autre :

mv config.php configs.php

On le modifie pour y accéder depuis l’extérieur :

Avant : if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
Après : if (in_array(@$_SERVER['REMOTE_ADDR'], array(

Modification des permissions app/console, web/app.php et web/app_dev.php (déjà fait pour ce dernier) :

Ajouter umask(0000); en début de fichier

Changement des permissions sur les répertoires app/cache/ et app/logs/ :

chown -R www-data app/cache/
chown -R www-data app/logs/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *