Lors de la configuraton manuelle d'un environnement web sur CentOS 6.5, il est courant de rencontrer des défis liés aux dépôts obsolètes et aux configurations de packages. Ce guide couvre les étapes essentielles pour remettre en état les dépôts YUM, installer Apache HTTPD et PHP 5.6, résoudre les problèmes de permissions pour l'exécution de scripts shell, et désinstaller proprement PHP.
Réparation des dépôts YUM pour CentOS 6.5
Les dépôts officiels pour CentOS 6 ne sont plus maintenus, ce qui peut entraîner des erreurs lors de l'utilisation de YUM. La solution consiste à reconfigurer les fichiers de dépôt pour pointer vers des miroirs archivés. Modifiez le fichier /etc/yum.repos.d/CentOS-Base.repo comme suit :
# CentOS-Base.repo - Configuration alternative pour CentOS 6.10
[base]
name=CentOS-6.10 - Base - Mirror alternatif
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
[updates]
name=CentOS-6.10 - Updates - Mirror alternatif
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
[extras]
name=CentOS-6.10 - Extras - Mirror alternatif
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
Pour activer les paquets supplémentaires via EPEL, ajustez le fichier /etc/yum.repos.d/epel.repo en désactivant la vérification GPG pour simplifier l'installation :
[epel]
name=EPEL 6 - $basearch
baseurl=http://mirrors.aliyun.com/epel/6/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
Après ces modifications, nettoyez et reconstruisez le cache YUM :
sudo yum clean all
sudo yum makecache
Installation d'Apache HTTPD
Procédez à l'installation du serveur web Apache avec les paquets par défaut :
sudo yum -y install httpd
Éditez le fichier de configuration /etc/httpd/conf/httpd.conf pour définir un nom de serveur explicite :
# Décommentez et modifiez la ligne ServerName
ServerName localhost:80
Démarrez le service Apache et configurez-le pour le démarrage automatique :
sudo service httpd start
sudo chkconfig httpd on
Le contenu web est par défaut dans le répertoire /var/www/html.
Installation de PHP 5.6 à partir de dépôts externes
La version de PHP incluse par défaut dans CentOS 6.5 est obsolète. Pour installer PHP 5.6, ajoutez les dépôts EPEL et Remi en exécutant :
sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Activez temporairement les dépôts Remi pour lister les paquets disponibles :
sudo yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
Installez PHP 5.6 et les modules courants :
sudo yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd
Vérifiez l'installation avec :
php -v
Résolution des permissions pour l'exécution de scripts shell
Si un script PHP tente d'écrire des fichiers dans le répertoire courant lors de l'exécution de commandes shell, des erreurs de permission peuvent survenir. Une approche courante est d'ajuster les permissions sur le réperotire du projet. Par exemple, pour le répertoire /var/www/html/projet :
# Accorder des permissions complètes au répertoire spécifique
sudo chmod -R 777 /var/www/html/projet
Attention : l'utilisation de 777 n'est pas recommandée en production. En environnement de test, cette méthode résout généralement le problème en donnant un accès total aux utilisateurs, groupes et autres.
Désinstallation de PHP
Pour désinstaller proprement PHP et ses modules, listez d'abord tous les paquets installés :
rpm -qa | grep php
Supprimez les paquets dans un ordre qui évite les dépendances brisées. Commnecez par les paquets qui n'ont pas de dépendants, par exemple :
# Exemple de désinstallation séquentielle
sudo rpm -e php-common
sudo rpm -e php-mysql
sudo rpm -e php
Ajustez les noms de paquets en fonction de la sortie de rpm -qa.