Tables
Test d'un serveur apache sur alpine léger en frontal
(arrêt des autres conteneurs)
# apk update && apk upgrade # apk add apache2
Modification de la page d'affichage par défaut :
# vi /var/www/localhost/htdocs/index.html
Rendre le conteneur accessible sur le port 80 (à faire sur l'hôte):
# lxc config device add apache myport80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80
(pour vérifier à partir de lhôte -> curl 10.178.91.17)
# rc-service apache2 start # netstat -ntpl
Test à partir de l'ordinateur local OK !
Installation de php :
# apk add php php83-apache2 apache2-ctl mlocate
apache2-ctl : pour lister les modules
mlocate : pour localiser les fichiers et dossiers (Utiliser updatedb pour rafraîchir la base de données)
Pour lister les modules installés :
# apachectl -M
(php_module apparaît)
Modification de la page par défaut, à renommer en index.php :
<?php phpinfo(); ?> # rc-service apache2 restart
Test sur l'ordinateur bureau : -> ok
Tables sur alpine léger
Création du conteneur alpine léger
# apk update /upgrade # apk add apache2
création du fichier /etc/apache2/conf.d/remoteip.conf avec
RemoteIPHeader X-Real-IP RemoteIPTrustedProxy 10.178.91.228 d42:b9ca:1a60:95fc:216:3eff:fe2f:924c
modification de /etc/apache2/httpd.conf décommenter :
LoadModule remoteip_module modules/mod_remoteip.so
# rc-service apache2 start -> mouline
relancer nginx dans proxy :
# systemctl restart nginx
-> accès ok !
faire fonctionner php modif de /var/www/localhost/htdocs/index.html en
<?php phpinfo(); ?>
(ne fonctionne pas, normal ! php n'est pas installé...)
# apk add php (ajoute php) # php -v -> indique la version
installation d'apache2-ctl pour vérifier les modules installés :
# apk add apache2-ctl
puis
# apachectl -M -> liste les modules
pas de mod_php
installation de php83-apache2
# apk add php83-apache2 -> php_module apparaît, mais ça ne fonctionne pas
tentative de modification des droits : www-data n'existe pas...
# addgroup -g 82 -S www-data -> le groupe existe déjà # adduser -u 82 -D -S -G www-data www-data -> pas d'erreur
Vérification :
# cut -d: -f1 /etc/passwd -> l'itilisateur apparaît
(cut -d: -f1 /etc/group -> liste les groupes) Changement des drois sur htdocs
# chown -R www-data:www-data /var/www/localhost/htdocs/
... Ne change rien...
!!!! RENOMMER index.html en index.php -> la page de php s'affiche !
Installation de 'Tables'
Copie des fichiers/dossiers dans /tmp du conteneur :
# lxc file push /home/domi/Documents/transfertTables/* tables/tmp/ -pr
Déplacement des fichiers/dossiers dans .../htdocs/
# mv /tmp/* /var/www/localhost/htdocs/ # rc-service apache2 reload
La page s'affiche, mais pas le PDF : error 500 -> il doit manquer un module...
Test des modules présents sur le serveur qui fonctionne et qui pourraient avoir un rapport
php83-ctype : gestion des caractères -> marche pas php83-curl : gestion des requêtes par url -> marche pas php83-dom : Document Object Model (XML) -> marche pas php83-fileinfo : marche pas ftp ; gettext marche pas iconv, imagick : ignorées intl ; mbstring toujours pas... mysqli ; mysqld ; openssl ; pdo ; phar : ignorées posix readline : non trouvé, mais il existe des apk -> installation, n'apparaît pas session ; shmop : ignorées simpleXML ; sockets marche pas sodium ; sysvmsg ; sysvsem ; sysvshm ; tokenizer : ignorées wddx introuvable, voir dans conf php xml ; xmlreader ; xmlwriter ; xsl ; opcache marche pas zip ; zlib : ignorées
Abandon, test avec une autre image...
Solution :
installer php-gd et php-zlib
Corriger phpToPDF.php : AddPage($orientation = , $size = , $rotation = 0) (il manque deux arguments) Corriger pdf1.php en supprimant les lignes vides (au moins au début du document) Je suppose qu'il y a une option pour ignorer ce genre d'erreurs sur le serveur virtuel...
Fonctionne en frontal Fonctionne derrière le proxy
- Pour automatiser le démarrage d'un service
sur débian :
# systemctl enable *service* (p. ex. nginx)
sur alpine :
# rc-update add *service* (p.ex. apache2)