Archivos de Categoría: Web

MongoDB: Recuperar datos después de un apagado inesperado en Ubuntu

Nota: Los ficheros de datos de MongoDB normalmente se encuentran en /data/db pero en mi instalación de Ubuntu están en /var/lib/mongodb.

Reparar conservando los datos:

sudo mkdir /var/lib/mongodb0
sudo mongod --dbpath /var/lib/mongodb --repair --repairpath /var/lib/mongodb0
sudo mongod --dbpath /var/lib/mongodb0

Ahora que el servidor está arrancado con la versión reparada (/var/lib/mongodb0) de tus datos originales (from /var/lib/mongodb) usa el cliente de mongo para verificar que todo está bien. En ese caso reemplaza /var/lib/mongodb con /var/lib/mongodb0.

sudo rm -rf /var/lib/mongodb
sudo mv /var/lib/mongodb0 /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb

Reparar sin mantener los datos:

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb --repair

Cuando este proceso se complete, los ficheros de datos reparados sustituirán a los originales en el directorio /var/lib/mongodb.

Ref: http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/

Instalar MongoDB en Ubuntu 12.04 con driver PHP

Instalar MongoDB:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-10gen

Instala driver PHP de MongoDB:

sudo apt-get install php-pear php5-dev
pecl search mongo
sudo pecl install mongo

Configurar driver PHP de MongoDB PHP en Apache: Crear un fichero llamado /etc/apache/conf.d/mongo.ini con el siguiente contenido:

extension=mongo.so

Luego reiniciar Apache:

sudo service apache2 restart

Arrancar, parar y reiniciar MongoDB:

sudo service mongodb start
sudo service mongodb stop
sudo service mongodb restart

Fichero de configuration:

/etc/mongodb.conf

Fichero de log:

/var/log/mongodb/mongodb.log

Ficheros de datos:

/var/lib/mongodb

Ref: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Arreglar “Cannot redeclare class Symfony\…” en Symfony2 después de actualizar

Después de actualizar de Symfony 2.2 a la versión 2.3 me apareció este fallo en mi aplicación:

Fatal error: Cannot redeclare class Symfony\Component\HttpFoundation\FileBag in app/cache/prod/classes.php on line 1823

Otro síntoma era este otro error al tratar de limpiar la cache del entorno de producción:

[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
The parameter "kernel.http_method_override" must be defined.

El proceso para solucionar el problema fue:

1.- Borrar la carpeta de la cache de producción:

rm -rf app/cache/prod

2.- Limpiar la cache del entorno de producción:

php app/console cache:clear --env=prod --no-debug

Ref:

Nowdoc y heredoc en PHP

Del manual:

Nowdocs son a las cadenas con comillas simples lo mismo que Heredoc lo es a las comillas dobles. Una cadena nowdoc se especifica de forma análoga a la heredoc, pero no se realiza ningún análisis dentro de nowdoc. Esta construcción es ideal para embeber código PHP o grandes fragmentos de texto sin necesidad de escaparlo.

Es importante fijarse que la diferencia entre las 2 es que nowdocs usa comillas simples para definir el tag (que puede ser cualquier cosa) y heredocs no.

$foo = 'bar';

$now = <<<'NOW'
    I'm now, $foo!
NOW;

$here = <<<HERE
    I'm here, $foo!
HERE;

En este caso:

$now es "I'm now, $foo!"

$here es "I'm here, bar!"

Ref: http://php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc
http://stackoverflow.com/a/11153164

Actualizar composer y todos los paquetes instalados con él

php composer.phar self-update
php composer.phar update
  • Page 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • >