Problèmes et questions sur les environnements graphiques et les applications.

Installation de Mariadb - php - apache - phpmyadmin

#21Messageil y a 5 ans

encore tout ré-installer ... alors qu'il ne semble avoir que des problèmes de droits.

Après pour faire pointer la racine du serveur sur ton home, il n'y a pas de règle ; normalement on modifie la config de apache mais certains préfèrent modifier le path sur disque avec un lien symbolique.

Où pointe la racine sur serveur est uniquement en fonction de la volonté du développeur web et c'est quelque chose qui peut changer à chaque projet :
- pour beaucoup de projets c'est ~/www/monprojet_07/htdocs/ (ou projet_x/public/)
- débutant/fourre-tout, c'est plus ~/www/ (www ou autre)
C'est selon les technologies utilisées par le développeur et ceci n'a rien à voir avec apache en lui même mais selon la structure du site web que le développeur à créé.
Et en milieu "pro", le dev va plutôt créer un serveur web pour chaque projet donc une config encore très très différente

Installation de Mariadb - php - apache - phpmyadmin

#22Messageil y a 5 ans

Oui, mais pour moi, c'est simplement pour suivre les cours d'openclassroom. Où tu peux voir que le "chef" de ce cours Matéo, demande d'installer XAMPP :
Extrait : Installer XAMPP.
Mais comme tu me dis que c'est une "usine à gaz"...
Donc, je voudrais faire simple. C'est uniquement pour les cours.
Car, le site où je suis administrateur était géré par son fondateur qui est gravement malade et m'a demandé de reprendre les rênes. Or, il fait ses scripts internes en php avec une DBMysql et je n'y comprends rien.
D'où les cours que je voulais suivre, j'ai un abonnement "premium".
Mais si tu as autre chose à me conseiller, ce serait le bienvenu. :gsourire::gsourire::wink::wink:

Installation de Mariadb - php - apache - phpmyadmin

#23Messageil y a 5 ans

pour le cours, au contraire il dit bien que sous linux la voie normale est d'installer les composants à l'unité. Il ne dit pas "installez xamp", mais nous propose uniquement un tuto d'install avec xamp (car c'est le plus proche des install windows et mac données avant)
la différence fonctionnelle, c'est que la racine avec son xamp est /opt/lampp/htdocs donc un changement extrêmement minime.

Comme dit déjà, tu n'as pas à te prendre la tête, tu suis le tuto (éventuellement 1..2 chmod si cela bloque) et après tu changes la racine de apache pour quelle pointe vers ton $HOME/xxx ce qui va te permettre uniquement d'éditer les fichiers et en créer sans mot de passe root.

Suivre un cours ne peut représenter que 10% du travail tout dépend de la façon qu'est écrit ton site web mais aussi de ton rôle (écrire ou administrer). Un administrateur généralement n'a pas besoin de coder mais de comprendre le rôle de chaque outils et surtout de les configurer. Par exemple, pour notre forum, nous ne touchons au code qu'une fois toutes les X années alors que l'administrateur a une ou plus mise à jour par an.

Installation de Mariadb - php - apache - phpmyadmin

#24Messageil y a 5 ans

Continuons nos pérégrinations.
Je suis le tutoriel à la lettre.
Pour apache, il ouvre enfin la page demandée par le test du tutoriel à http://localhost.
Là où ça se corse, c'est toujours au lancement de mysql.
Je fais exactement ce que dit le tutoriel et voici une liste d'erreurs :

[bruno bruno]# mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Installing MariaDB/MySQL system tables in '/var/lib/mysql' ...
2019-03-13 17:19:26 0 [ERROR] mysqld: Can't lock aria control file '/var/lib/mysql/aria_log_control' for exclusive use, error: 11. Will retry for 30 seconds
2019-03-13 17:19:57 0 [ERROR] mysqld: Got error 'Could not get an exclusive lock; file is probably in use by another process' when trying to use aria control file '/var/lib/mysql/aria_log_control'
2019-03-13 17:19:57 0 [ERROR] Plugin 'Aria' init function returned error.
2019-03-13 17:19:57 0 [ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed.
2019-03-13 17:19:57 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2019-03-13 17:21:37 0 [ERROR] InnoDB: Operating system error number 11 in a file operation.
2019-03-13 17:21:37 0 [ERROR] InnoDB: Error number 11 means 'Resource temporarily unavailable'
2019-03-13 17:21:37 0 [ERROR] InnoDB: Cannot open datafile './ibdata1'
2019-03-13 17:21:37 0 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
2019-03-13 17:21:37 0 [ERROR] InnoDB: Plugin initialization aborted with error Cannot open a file
2019-03-13 17:21:37 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-03-13 17:21:37 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-03-13 17:21:37 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-03-13 17:21:37 0 [ERROR] Aborting
Voici ce que le terminal préconise à la fin de cette liste d'erreurs :

Installation of system tables failed!  Examine the logs in
/var/lib/mysql for more information.

The problem could be conflicting information in an external
my.cnf files. You can ignore these by doing:

    shell> /usr/sbin/mysql_install_db --defaults-file=~/.my.cnf

You can also try to start the mysqld daemon with:

    shell> /usr/bin/mysqld --skip-grant-tables --general-log &

and use the command line tool /usr/bin/mysql
to connect to the mysql database and look at the grant tables:

    shell> /usr/bin/mysql -u root mysql
    mysql> show tables;

Try 'mysqld --help' if you have problems with paths.  Using
--general-log gives you a log in /var/lib/mysql that may be helpful.

The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
You can find the latest source at https://downloads.mariadb.org and
the maria-discuss email list at https://launchpad.net/~maria-discuss

Please check all of the above before submitting a bug report
at http://mariadb.org/jira
J'ai essayé ce qui est préconisé et voici les retours :

[bruno bruno]# /usr/bin/mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[bruno bruno]#  /usr/bin/mysqld --skip-grant-tables --general-log &
[1] 619
[bruno bruno]# 2019-03-13 17:53:41 0 [Note] /usr/bin/mysqld (mysqld 10.3.13-MariaDB-log) starting as process 619 ...
/usr/bin/mysqld: Please consult the Knowledge Base to find out how to run mysqld as root!
2019-03-13 17:53:41 0 [ERROR] Aborting
[1]+  Termine 1               /usr/bin/mysqld --skip-grant-tables --general-log

[bruno bruno]# /usr/bin/mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[bruno bruno]# exit
exit
#( 03/13/19@ 5:58 )( bruno@bruno ):~
   /usr/bin/mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Voilà, j'ai tout essayé et comme d'habitude mysql, du moins le serveur, ne fonctionne pas !!
Désolé d'avoir été si long, mais j'attends que ceci fonctionne avant de continuer le tutoriel.
Mais là, je ne sais plus quoi faire !! :rendre::rendre:

Installation de Mariadb - php - apache - phpmyadmin

#25Messageil y a 5 ans

Could not get an exclusive lock; file is probably in use by another process'
je pense que la dé-installation n'a pas été totale :
Dans le tuto on lance cette commande AVANT de lancer mysql(maria), sur ton message, je suppose que le service est encore "enable" donc déjà lancé ?

Installation de Mariadb - php - apache - phpmyadmin

#26Messageil y a 5 ans

Ce n'est pas du fait que mariadb-libs est utilisé par kodi ?
Je n'ai pas pu désinstaller le paquet à cause de sa dépendance.

Et juste après l'installation je dois passer la commande qui se trouve dans le code suivant et cela me retourne à chaque fois la même erreur. Je pense que tout vient de là :

sudo  mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Installing MariaDB/MySQL system tables in '/var/lib/mysql' ...
2019-03-13 18:59:29 0 [ERROR] mysqld: Can't lock aria control file '/var/lib/mysql/aria_log_control' for exclusive use, error: 11. Will retry for 30 seconds
J'ai regardé si plusieurs processus était en cours et j'obtiens ceci :

#( 03/13/19@ 7:24 )( bruno@bruno ):~
   ps -ef | grep mysqld
mysql      546     1  0 mar12 ?        00:00:54 /usr/bin/mysqld
bruno     8093  8067  0 19:24 pts/2    00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mysqld
J'y suis parvenu :pompom::biere::biere::fete:

J'ai tout désinstallé.

J'ai suivi ceci :

If you are completely stuck stop the service - systemctl stop mariadb disable the service - systemctl disable mariadb uninstall the package using pacman -Rns mariadb remove the folder /var/lib/mysql sudo rm -rf /var/lib/mysql Reboot your system and start over - other than the above removal -… 
Puis, j'ai repris le début du Wiki Archlinux, uniquement le premier paragraphe. Puis, j'ai repris le tutoriel de départ.

Je n'ai plus qu'une toute petite erreur dans phpmyadmin où on me signale que $cfg['TempDir'] (:/temp/) n'est pas accessible. phpMyAdmin est incapable de mettre en cache les modèles et de ce fait sera lent..
Mais je ne trouve pas $cfg['TempDir'] dans /etc/webapps/phpmyadmin/config.inc.php...

Installation de Mariadb - php - apache - phpmyadmin

#27Messageil y a 5 ans

Bon, ça a l'air de fonctionner en partie.
Dans le cours, il demande de créer un fichier.php avec du html et du php dedans.
Il demande de le placer dans un dossier nommé test qui est lui même dans /home/bruno/www/.
Comme j'ai une erreur 403 en tapant l'url http://localhost/www/test/fichier.php, je me suis aperçu que j'avais oublié de créer le lien symbolique.
J'ai donc repris le conseil de lemust et j'ai créé le lien symbolique suivant :
sudo ln -s /home/bruno/www /srv/html/. Et j'ai octroyé les droits qu'il avait préconisé :

sudo chmod o+x ~
sudo chmod o+x ~/www/
.
Malgré cela, j'ai toujours l'erreur 403.
Apache fonctionne bien.
php fonctionne bien
phpmyadmin s'affiche, il m'indique seulement deux erreurs incompréhensibles à ce stade pour moi :
Le stockage de configurations phpMyAdmin n'est pas complètement configuré, certaines fonctionnalités ont été désactivées. Voir l'analyse du problème.
Ou encore aller sur l'onglet « Opérations » de n'importe quelle base de données pour le définir à cet endroit.
et la deuxième : $cfg['TempDir'] (./tmp/) n'est pas accessible. phpMyAdmin est incapable de mettre en cache les modèles et de ce fait sera lent.
Dans le fichier de configuration de phpmyadmin, je ne trouve pas $cfg['TempDir']


Pouvez-vous m'expliquer où j'ai commis une erreur ?

Installation de Mariadb - php - apache - phpmyadmin

#28Messageil y a 5 ans

salut,

404 c'est fichier non trouvé
403 pas bons droits
500 plantage php

Il faut toujours consulter les logs erreurs !
Tu vas avoir "/truc/machin/bidule.php(.html) non trouvé"
- Soit ton url (dans navigateur) est fausse donc erreur normale (car fichier non présent sur disque)
- Soit ton lien symbolique est faut (ne correspond pas à ton url) et apache recherche dans le mauvais répertoire - si tu as refait la même chose qu'hier c'est sans doute normal...

Pour les droits, comme message précédent
- tu dois (éventuellement) faire un chmod 755 sur tes répertoires (/srv/http, /srv/http/www)
- les fichiers un chmod 644 suffit
Normalement on a pas à traficoter les droits ! il faut juste que les répertoires sont en exécutable pour tous (5) et que les fichiers soient en lecture pour tous (4). (parfois avec certaines configs il faut en plus que les fichiers php soient exécutables). Parfois on trouve sur le web des devs qui sont fiers d'avoir trouvé le 777 pour dépanner MAIS la vocation première d'un serveur local est d'être téléchargé sur le web et mettre tous les fichiers en écriture permise par tous sur un serveur mérite des :censure: l'admin doit absolument donner le minimum de droits

----
pour phpmyadmin, je ne l'ai pas installé depuis + de 10 ans (donc dur d'aider)
Pour la ligne qu'il demande dans config : on peut ajouter beaucoup d'options(doc "./tmp/" fr) dans le fichier de config ; si elles n'existent pas c'est que c'est une valeur par défaut (juste ici elles ne sont pas commentés comme souvent)
Ce ne sont que des warning ;)

Installation de Mariadb - php - apache - phpmyadmin

#29Messageil y a 5 ans

Merci papajoke.

C'était bien une histoire de droits.

J'ai appliqué ce que tu as préconisé et cela fonctionne.

Je vais enfin pouvoir mettre ce sujet en résolu.

Le pire, tu vas peut-être rigoler, c'est que depuis le début, j'aurais pu suivre les cours sans rien faire ici.
J'avais réussi à tout installer dans mon Windows 7 sous VirtualBox.

Voici maintenant 37 heures que je suis là-dessus. Je n'ai même pas été au lit.

Donc bientôt : :dormir::dormir::dormir::dormir::dormir::gsourire::gsourire:

Installation de Mariadb - php - apache - phpmyadmin

#30Messageil y a 5 ans

bon changement de titre :lol:

Oui, comme tu vois, normalement l'installation se fait en 15 minutes, simplement il ne faut pas riper à un moment sinon c'est extrêmement galère à retrouver le pourquoi (pour le débutant)
Ici, le problème est que le développeur ne désire pas l'utiliser dans un cadre courant pour ce logiciel.

je confirme, avec windows, c'est extrêmement facile puisque l'on a un seul logiciel pré-configuré et surtout pas de problème de droits( :rigole::cartonrouge: )
Mais les droits et le changement de racine n'est pas véritablement lié au serveur web, c'est une tâche presque courante pour nous sous linux.
Si linux est "particulier" avec les droits, c'est que comme tout bon serveur il doit bien être sécurisé ! ici apache n'a pas de droits root pour qu'un pirate ne puisse compromettre le serveur linux - donc il faut donner des droits particuliers pour que apache puisse avoir accès à uniquement certains fichiers du serveur (apache ou php dans certains cas)

Bon codage :sourire:

Installation de Mariadb - php - apache - phpmyadmin

#31Messageil y a 5 ans

petit truc qui peut-être intéressant ... :saispas:

php intègre aussi un petit serveur web (minimaliste), mais permet de faire quelques tests en particulier pour un débutant php.
doc officielle

Donc php peut remplacer un serveur comme apache

php -S localhost:8000 -t /srv/httpd/
Listening on http://localhost:8000
Document root is /srv/http
Press Ctrl-C to quit.
il ne me reste plus qu'a faire un CTRL+ click souris sur "localhost:8000" pour arriver sur le site web local
-S : ici on donne un port 8000 , un autre serveur (apache,nginx,...) lui occupe le port par défaut 80
-t : c'est la racine du site web, si non précisée c'est le répertoire courant

Les logs sont affichés directement dans la console, ce qui n'est pas une mauvaise chose pour le débutant

----
Et pour remplacer phpMyAdmin, il existe adminer
Répondre