Installer symfony sur ubuntu 8.04

Ne pas utiliser apt, la version qu’il installe va générer des erreurs.

PHP Fatal error: Uncaught Error: Call to undefined method Composer\Package\RootPackage::getConfig() in /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/Config/ConfigBuilder.php:111
Stack trace:
#0 /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/Config/ConfigBuilder.php(74): Fxp\Composer\AssetPlugin\Config\ConfigBuilder::getConfigBase(Object(Composer\Composer), Object(Composer\IO\ConsoleIO))
#1 /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/FxpAssetPlugin.php(82): Fxp\Composer\AssetPlugin\Config\ConfigBuilder::build(Object(Composer\Composer), Object(Composer\IO\ConsoleIO))
#2 /usr/share/php/Composer/Plugin/PluginManager.php(215): Fxp\Composer\AssetPlugin\FxpAssetPlugin->activate(Object(Composer\Composer), Object(Composer\IO\ConsoleIO))
#3 /usr/share/php/Composer/Plugin/PluginManager.php(188): Composer\Plugin\PluginManager->addPlugin(Object(Fxp\Composer\AssetPlugin\FxpAssetPlugin))
#4 /usr/share/php/Composer/Plugin/PluginManager.php(240): Composer\Plugin\PluginManager->registerPackage(Obje in /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/Config/ConfigBuilder.php on line 111

Si vous l’avez déjà installée, supprimez la avec

sudo apt-get remove composer

ensuite, tapez la commande suivante dans un terminal:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Et ça fonctionne

MYSQL: start: Job failed to start

Ou

error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock »

La première chose à faire est de consulter le fichier de log d’erreurs .

Attention: sur mon installation, je me suis fait avoir parce que j’avais un fichier /var/log/mysql.err vide. Or, le fichier est /var/log/mysql/error.log !


root@pouf:/var/log/mysql# tail error.log
130911 14:18:52 InnoDB: Compressed tables use zlib 1.2.3.4
/usr/sbin/mysqld: Can't create/write to file '/tmp/ibUjgCIe' (Errcode: 13)
130911 14:18:52 InnoDB: Error: unable to create temporary file; errno: 13
130911 14:18:52 [ERROR] Plugin 'InnoDB' init function returned error.
130911 14:18:52 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130911 14:18:52 [ERROR] Unknown/unsupported storage engine: InnoDB
130911 14:18:52 [ERROR] Aborting
130911 14:18:52 [Note] /usr/sbin/mysqld: Shutdown complete

Le message d’erreur (sur la deuxième ligne lue) indique qu’il ne peut pas créer de fichier temporaire dans /tmp. Un coup d’oeuil sur les permission de tmp nous le confirme.

root@pouf:/# ls -l /|grep tmp
4849665 drwxrwxr-x 16 manu manu 20K sept. 11 14:20 tmp

Les propriétaire/groupe ne sont pas bons, et les permissions non plus! Il s’agit sans doute d’un script ou d’un paquet mal construit qui a modifié tout ça (en particulier les dpkg -x qui changent les permissions du répertoire courant!)
sudo chown root:root /tmp
sudo chmod 777 /tmp
sudo chmod +t /tmp

Problème corrigé, mysql redémarre alors correctement. C’est tout bête, mais j’ai perdu une heure à comprendre pourquoi mon système, et en particulier mysql ne fonctionnait plus correctement.
Si ça peut aider…

Déplacer les base mysql sur Ubuntu

J’ai voulu déplacer des bases mysql pour les placer sur une autre partition, mais sur Ubuntu, il ne suffit pas de déplacer les bases pour pourvoir relancer le serveur, même en ayant modifié le fichier my.cnf.

L’erreur était la suivante dans le fichier /var/log/mysql/error.log

/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
120902 16:57:07 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120902 16:57:07  InnoDB: Initializing buffer pool, size = 8.0M
120902 16:57:07  InnoDB: Completed initialization of buffer pool
120902 16:57:07  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

J’ai heureusement trouvé la solution sur La case de l’oncle tom après avoir beaucoup cherché mais en n’ayant trouvé que des suggestions non fonctionnelles pour mon problème.

Le problème vient de apparmor qui ne considère pas le nouvel emplacement comme fiable. Il suffit donc de modifier le fichier /etc/apparmor.d/usr.sbin.mysqld comme indiqué pour pouvoir relancer mysql.

Pourtant, comme le dit Daniel, le fichier my.cnf comporte bien l’avertissement suivant:

# * IMPORTANT
#   If you make changes to these settings and your system uses apparmor, you may
#   also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.

Comme quoi, vouloir aller trop vite pour gagner du temps et se jeter sur le net n’est pas toujours la bonne solution…

Note a moi même: prendre l’habitude de lire les commentaires des fichiers de configuration, ça peut aider.

Source: La case de l’oncle tom

Mysql: Résoudre l’erreur « La connexion au « controluser » tel que défini dans votre configuration a échoué. »

Après une réorganisation de serveurs, et migration de mes bases Mysql vers une autre machine, j’ai pu voir dans la fenêtre de phpmyadmin l’erreur suivante:

« La connexion au « controluser » tel que défini dans votre configuration a échoué.« mysql

Comme je passe de la hardy vers la jaunty (LTS to LTS) pendant le déplacement, je me suis dit que quelques différences pouvaient exister et afficher ce message d’erreur qui ne m’empêchait pas de me connecter à phpmyadmin.

Puis je me suis souvenu que pendant l’installation de ce programme, il m’avait demandé plusieurs fois la configuration de MySql sans arriver à s’y connecter. Et dans le speed de la migration, j’ai oublié de vérifier que ça fonctionnait correctement, vu que j’arrivais à me connecter. Et que les principales opérations étaient effectuées en ligne de commande.

Après une recherche un peu plus poussée dans le code des fichiers de phpmyadmin, je me suis rendu compte qu’il cherchait à utiliser l’utilisateur phpmyadmin. Utilisateur visible dans les privilèges de l’ancien serveur, mais pas sur les privilèges du nouveau.

J’ai donc créé un nouvel utilisateur nommé « phpmyadmin » pour le serveur « localhost » ((très important: « localhost », pas autre chose)) avec le mot de passe permettant tous les privilèges, à savoir celui de root, et j’ai donné un droit d’usage simple, non Grant.

Il parait que lancer sudo dpkg-reconfigure phpmyadmin peut résoudre le problème, mais cela n’a pas fonctionné dans mon cas, au contraire de la création manuelle de l’utilisateur.

Classé dans la catégorie « ça a fonctionné pour moi ».

Accéder à un serveur MYSQL sur le réseau

Lorsque vous installez un serveur MYSQL (ou un serveur LAMP avec tasksel), celui ci est paramétré par défaut pour n’autoriser que les connexions provenant de localhost, pour des raisons de sécurité.

[root@halter]:# telnet 10.0.0.134 3306
Trying 10.0.0.134...
telnet: Unable to connect to remote host: Connection refused

Si on effectue un scan de port sur l’ordinateur hébergeant le serveur Mysql, on voit bien que le port par défaut de Mysql, le 3306, n’apparait pas. Il est donc impossible de se connecter à se serveur depuis un autre ordinateur du réseau.

[root@halter]:# nmap 10.0.0.134</code>
 
Starting Nmap 4.76 ( http://nmap.org ) at 2010-04-04 15:15 CEST
Interesting ports on vdomaine.com (10.0.0.134):
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
2000/tcp open  callbook
MAC Address: 00:1E:2A:B4:CA:xx (Netgear)

Pour indiquer au serveur qu’il doit autoriser les connexions provenant d’autres ordinateurs du réseau, il faut modifier le fichier de configuration de Mysql, le fichier /etc/mysql/my.cnf et modifier 2 lignes:

La première, dé-commentée par défaut, indique au serveur d’ignorer les requêtes extérieures. Il faut donc la commenter (ou la supprimer)

#skip-external-locking

La seconde indique au serveur sur quelle adresse il faut écouter les requètes. Par défaut, il s’agit de 127.0.0.1. Si vous voulez autoriser le réseau local, n’indiquez pas une adresse réseau mais bien l’adresse du serveur sur le réseau. D’où l’intérêt d’avoir des réglages IP fixes ou des baux permanents attribués par le DHCP. Dans le cas contraire, je vous promet des heures de recherche infructueuses avant de revenir dessus.

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 10.0.0.134

Une fois le serveur Mysql relancé, un nouveau scan montre l’ouverture effective pour Mysql:

[root@halter]:# nmap 10.0.0.134</code>
 
Starting Nmap 4.76 ( http://nmap.org ) at 2010-04-04 15:16 CEST
Interesting ports on vdomaine.com (10.0.0.134):
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
2000/tcp open  callbook
3306/tcp open  mysql
MAC Address: 00:1E:2A:B4:CA:xx (Netgear)

A partir de ce moment, une connexion au serveur a déjà beaucoup plus de chances de réussir:

manu@halter:~$ mysql -p -h 10.0.0.134 -u othtest -P 3306
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.1.41-3ubuntu11 (Ubuntu)
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql&gt;

Ce n’est pas une astuce extraordinaire, mais maintenant que j’en ai fait un article, je suis sûr de m’en souvenir et de ne plus perdre une matinée à trouver le problème lorsque je rechangerais mon adressage… Alors, j’imagine que ça sera utile pour d’autres que moi.

Installer un serveur LAMP avec Ubuntu

Un serveur LAMP signifie Linux Apache Mysql Php. Il est possible d’installer et configurer chacun des services manuellement, mais il existe une autre façon plus simple et moins connue de faire tout ceci en une seule fois.

Dans un terminal, entrez ceci:

sudo tasksel install lamp-server

Et c’est tout!

Ou alors:

sudo tasksel

tasksel

Et sélectionnez LAMP server, ou tout autre service que vous désirez installer.