Tuto : installer PMB 7 et LAMP sur Debian 10 (en VPS)

décembre 2020 modifié dans Installations
Bonjour à tous,
je poste ici mon aide mémoire. Ce tuto n'a pas à vocation à vous apprendre comment installer Debian ni les bases d'administration d'un serveur sous Linux. Je considère que les commandes sont connues (à minima) et que vous avez une idée de ce que vous faites.
Si vous ne comprenez pas les commandes, je ne peux que vous recommander de faire une recherche sur Internet et de lire un peu de documentation, le Net en regorge.

Je me réfaire à la doc d'installation de PMB7, surtout au pré-requis de PMB7 dispo ici.

Les termes en MAJ et gras sont à changer selon les votres. ;)

Prérequis

  • Avoir les droits root sur le serveur
  • Debian 10 installé et à jour (j'utilise un VPS chez OVH)

Configuration de LAMP

Configurer un "utilisateur sudo" avec droit admin
sudo su -
adduser USER
usermod -aG USER
exit
su - USER

Installer AMP

ATTENTION !!! Ne pas dépasser PHP 7.3 !
sudo apt-get update
sudo apt-get install apache2 apache2-doc php7.3-common libapache2-mod-php7.3 php7.3-cli
php-gd php-apcu php-bz2 php-curl php-intl php-mbstring php-mysqlnd php-soap php-sqlite3
php-xml php-zip mariadb-server libimage-exiftool-perl_xfonts-75dpi fontconfig libxext6
libxrender1 xfonts-base php7.3-dev php-pear libyaz4-dev tree poppler-utils unzip

Configurer Apache

Activer les modules
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod ssl
sudo service apache2 restart
Créer un Vhost pour PMB
sudo nano /etc/apache2/sites-available/pmb.conf
Ci-dessous, la config à copier-coller dans le fichier ouvert.
<VirtualHost *:80>
    ServerName pmb.fr
    ServerAlias www.
pmb.fr
    DocumentRoot "/var/www/pmb"
    <Directory "/var/www/
pmb">
        Options +FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>
    ErrorLog /var/log/apache2/error.
pmb.log
    CustomLog /var/log/apache2/access.
pmb.log combined
</VirtualHost>
On active le Vhost
sudo a2ensite pmb.conf
sudo service apache2 restart

Installer les paquets non présent dans les dépôts

Paquet .deb installer à la main (wkhtmltox)
cd /tmp/
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
sudo dpkg -i /wkhtmltox_0.12.6-1.buster_amd64.deb
Paquet à installer par PEAR (yaz)
sudo pecl install yaz
sudo nano /etc/php/7.3/apache2/conf.d/yaz.ini
À mettre dans le fichier yaz.ini :
extension=yaz.so
sudo ln -s /etc/php/7.3/apache2/conf.d/yaz.ini /etc/php/7.3/mods-available/yaz.ini
sudo phpenmod yaz
Paquet compilé (php-xdiff)

cd /usr/local/src/
sudo wget http://www.xmailserver.org/libxdiff-0.23.tar.gz
sudo tar xzf libxdiff-0.23.tar.gz
cd libxdiff-0.23.tar.gz
sudo ./configure
sudo make
sudo make install
sudo nano /etc/php/7.3/apache2/conf.d/xdiff.ini
À mettre dans le fichier :
extension=xdiff.so
sudo ln -s /etc/php/7.3/apache2/conf.d/xdiff.ini /etc/php/7.3/mods-available/xdiff.ini
sudo phpenmod xdiff
sudo service apache2 reload

Modifier le php.ini

On fait une sauvegarde du fichier.
sudo cp /etc/php/7.3/apache2/php.ini /etc/php/7.3/apache2/php.ini.sav
On ouvre le fichier et on le modifie avec les caractéristiques demandées dans la doc d'installation de PMB7
sudo nano /etc/php/7.3/apache2/php.ini

Configurer Mariadb

J'ai laissé tombé MySQL. La version est trop évoluée sur Debian 10. Il est préférable de se simplifier la vie avec MariaDB qui est un fork de MySQL et qui est resté pleinement compatible (les commandes MySQL sont les mêmes que celles de MariaDB)

Sauvegarde du fichier de conf
sudo cp /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf.save
Puis on ouvre le fichier de conf
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Et on y colle /  modifie ces paramètres
character_set_server= utf8
collation_server= utf8_unicode_ci
key_buffer_size = 1G
max_allowed_packet= 64M
query_cache_limit = 2M
query_cache_size =16M
Autre fichier à modifier
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.save
À mettre avant les !includes
[mysqld]
#
# Rajout pour PMB
#
default_storage_engine = MyISAM
interactive_timeout = 300
join_buffer_size = 4M
open_files_limit = 10000
sql_mode = ''
wait_timeout = 300
Sécurisation de la base MariaDB
sudo mysql_secure_installation
Création de l'utilisateur PMB
sudo mysql
CREATE USER 'USER_PMB'@'localhost' IDENTIFIED BY 'VOTRE_MOT_DE_PASSE';
GRANT ALL PRIVILEGES ON * . * TO 'USER_PMB'@'localhost';
FLUSH PRIVILEGES;
On teste
mysql -h localhost -u PMB_USER -p
Création de la BDD de PMB
sudo mysql
CREATE DATABASE pmb;

Autres installations

Installer sendmail

sudo apt-get install sendmail
sudo sendmailconfig
Y pour tous pour valider la config.
sudo service apache2 restart

Installez Adminer

J'ai choisi Adminer à la place de PhpMyAdmin, car Adminer est bien plus simple et léger. Si on ne bidouille pas trop en base, c'est suffisant.
Adminer est simple, la doc est ici.
sudo apt install adminer
cd /usr/share/adminer/
sudo ./compile.php
sudo mv adminer-*.php adminer.php
Passage en root pour la commande suivante, sudo ne passe pas !
su -
echo "Alias /adminer.php /usr/share/adminer/adminer.php" | tee /etc/apache2/conf-available/adminer.conf
exit
sudo a2enconf adminer.conf
sudo systemctl reload apache2
Test dans le navigateur
http://VOTRE_IP_SERVEUR/adminer.php
La suite dans le poste d'après ...

Réponses

  • Installation de PMB

    cd /home/USER
    wget https://forge.sigb.net/attachments/download/2910/pmb7.3.1.zip
    unzip pmb7.3.1.zip
    sudo cp -r pmb7.3.1 /var/www/pmb/
    sudo chown -R www-data:www-data /var/www/pmb/
    Dans le navigateur
    Note, j'utilise un nom de domaine, mais vous pouvez travailler direct avec l'IP.
    http://VOTRE_ADRESSE.FR/tables/install.php
    Remplissez le formulaire selon que la base PMB existe déjà ou pas. (dans ce tuto, elle existe).
    Puis :
    • Connexion avec les identifiants par défaut qui sont admin / admin
    • Mettez à jour la BDD
    • Changer le mot de passe admin
    Et voilà !
  • merci infiniment mais il reste l'importation de votre base de donne  d'une version antérieur de PMB veuillez suivre votre memoSVP
  • Bonjour,
    je n'importe pas une BDD d'une version antérieur de PMB.
    Je par sur une basse neuve, que je crée sois avant l'installation (donc directement dans MariaDB) soit pendant l'installation. Ça c'est une question de goût, les deux fonctionne.
    Cdlt
  • merci pour votre reponse


  • Bonjour,
    Merci beaucoup ! L'article est très clair. J'ai fait l'installation avec une base de données vide et cela marche normalement. Mon soucis c'est de faire la restauration de la base. J'étais sur PMB5 et la base a évolué. Je suis également sur MariaDB. Concernant surtout les données de type date, si c'est vide (""), la base de données refuse cela. Je sais que ce n'est pas le sujet de votre poste. Mais peut être vous avez une solution par rapport à cela.
    Merci d'avance !
  • Bonjour,
    Je suis désolé je n'ai jamais eu à faire ce type d'opération.
    Cependant, je dirais bien qu'il faudrait avant tout travailler sur votre ancienne base, directement en SQL peut être pour traiter par lot les données qui bloquent, du type renseigné une date fictive (facilement identifiable) à la place d'une date vide.
    Bon courage pour votre import.
  • Bonjour,
    Je viens d'appliquer à la lettre ce tuto,  l'install de pmb se passe bien, je lance pmb en tant qu'admin-admin.
    PMB s'ouvre puis lorsque je veux éditer les paramètres pour l'utilisateur admin, j'obtiens unknown user.
    Problème déjà rencontré dans d'autres configurations sans solution jusqu'à maintenant, je pensais aller au bout avec ce tuto...
    Qu'est-ce qui peut faire qu'après la connexion avec admin, l'accès à la table users soit bloqué ?
    debian10.9, php7.3, mariaDB... comme indiqué dans le tuto, et tout a été installé aujourd'hui....
  • Bonjour,
    Enfin réussi à régler le problème ...unknown user.
    A l'install de pmb 7, la version de la base est 5.19, on demande de mettre à jour pour aller à la version 5.33.
    Avant de faire ces mises à jour successives, j'ai importé la base de mon ancienne version de pmb 4.2. Le unknown user a persisté, puis j'ai fait les mises à jour successives en nettoyant la base (réindexation) lorsque des problèmes de mise à jour apparaissaient. A la 5.22, le problème était réglé.
    J'en ai bavé pendant plusieurs jours....si cela peut servir !!!
    Bon courage !
  • Bonjour,
    Enfin réussi à régler le problème ...unknown user.
    A l'install de pmb 7, la version de la base est 5.19, on demande de mettre à jour pour aller à la version 5.33.
    Après vérifications, il suffit de faire les mises à jour de la base de la 5.19 à la 5.33, en nettoyant la base chaque fois que cela s'avère nécessaire, puis de quitter PMB avant de le relancer à nouveau.
    Bon courage !
  • Bonjour, désolé pour al réponse tardive.
    Je suis content que vous ayez trouvé. Je n'ai jamais rencontré ce souci, je n'aurai pas pu vous aider.
    Merci pour le retour, ça pourra sûrement servir à quelqu'un !
  • Bonjour
    Merci pour ce tutoriel qui a résolu nombreux de mes problèmes. Mon informaticien a installé PMB avec et tout fonctionne (presque). Je n'arrive cependant pas à configurer correctement Z39.50, en effet il n'a pas réussi à installer Yaz comme indiqué dans le tutoriel. Que faut-il que je vérifie pour que cela fonctionne ?
  • Bonjour, j'ai répondu sur le fil de discussion. Je ne sais pas pourquoi, je n'ai pas les notifications du forum.
    Il est possible de l'installer complètement à la main (compile, etc) mais ce n'est pas la technique que j'ai choisi.
    J'utilise PECL, qui est une méthode semi-automatique. Il faut être sûr que le php-pear soit installé.

    Copie du fil de discution communautaire : Pour que je puisse vous aider, il faudrait me dire exactement à quel étape vous avez eu un souci. La ligne de commande tapée et le message d’erreur qui en résulte.
    Installer YAZ est la partie la plus pénible, c’est un peu sensible.
  • Quelques précision là : https://gist.github.com/RatserX/5f5de411888f23c16a8711b36222e6e1
    C'est pas Debian, mais les commandes pecl doivent être bonne.

  • Vous pouvez éventuellement installer directement ce paquet : http://ftp.indexdata.dk/pub/phpyaz/debian/jessie/php5-yaz_1.2.0-1.indexdata_i386.deb
    Mais il est a destination d'une ancienne version de Debian (8), peut être qu'il ne s'installera pas.

  • Bonjour,

    Merci pour ce tutoriel qui m'a mis sur la bonne piste pour pouvoir utiliser le protocole Z39.50 sur une installation LAMP Debian 10. J'avais cherché longtemps avant de m'inscrire sur ce forum et de trouver ce tuto.

    Mais pour le coup, la partie expliquant comment installer yaz n'explique pas que la commande `pecl install yaz` dépend de la présence préalable du paquet libyaz5-dev. Précision utile que j'ai retrouvée par ailleurs.
  • Bonjour, c'est tout à fait juste.
    Je ne l'ai pas précisé car j'ai conçu ce tuto comme un ensemble : si on le prend dans l'ordre, il n'y a aucun raison pour qu'on n'ai pas ce paquet d'installé et donc qu'on sache le protocole YAZ en dépende.
  • décembre 2021 modifié
    merci beaucoup pour ce tuto  ca marche tres bien chez moi.
      meme yaz  !
  • Bonjour et merci pour ces notes d'installation qui m'ont permis d'installer un serveur LAMP sur une Débian 9.
    J'ai l'intention d'y installer un pmb 7.3.7, mais avant de me lancer dans cette troisième tentative, j'ai eu un petit soucis à l'étape de la compilation d'Adminer : message indiquant "PHP Warning:  PHP Startup: Unable to load dynamic library 'xdiff.so' (tried: /usr/lib/php/20180731/xdiff.so (/usr/lib/php/20180731/xdiff.so: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/xdiff.so.so (/usr/lib/php/20180731/xdiff.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0"
    Aurais-je oublié une étape lors de l'installation du paquet "php-xdiff" ?
    Merci

Connectez-vous ou Inscrivez-vous pour répondre.