Forum Linux.redhat démarrage apache

Posté par  .
Étiquettes : aucune
0
12
mar.
2007
Bonjour
j'obtient cette erreur là lorsque je veux démarrer le serveur apache sous rhel4

Starting httpd: /usr/sbin/httpd: error while loading shared libraries: libpcreposix.so.0: cannot open shared object file: Permission denied
[FAILED]

Lorsque je vérifie les droit d'accès sur cette librairie: j'obtient ceci:

lrwxrwxrwx 1 root root 21 Apr 5 2006 libpcreposix.so -> libpcreposix.so.0.0.0
lrwxrwxrwx 1 root root 21 Apr 5 2006 libpcreposix.so.0 -> libpcreposix.so.0.0.0
-rwxrwxrwx 1 root root 8656 Jun 16 2004 libpcreposix.so.0.0.0

je n'ai donc pas compris pourquoi est ce qu'il me sort ces erreurs là
  • # répertoire

    Posté par  . Évalué à 3.

    Les fichiers sont OK pour une lecture par apache (quoique le mode 777 ne soit pas très intelligent à utiliser).
    Mais les répertoires ?

    Exemple :
    [admin@one ~]$ mkdir tmp
    [admin@one ~]$ touch tmp/toto
    [admin@one ~]$ cat tmp/toto
    [admin@one ~]$ chmod -x tmp
    [admin@one ~]$ cat tmp/toto
    cat: tmp/toto: Permission non accordée
    [admin@one ~]$

    N'oublies pas qu'apache s'exécute sous le compte apache !
    • [^] # Re: répertoire

      Posté par  . Évalué à 1.

      tu penses que je devrais changer de propriètaire carrèment??
      prcq mm si j'ajoute le +w au répertoire /usr/lib j'obtient toujours la mm erreur
      • [^] # Re: répertoire

        Posté par  (site web personnel) . Évalué à 3.

        Une librairie NE DOIS JAMAIS ÊTRE EN ÉCRITURE !!!

        Les modes normaux pour les librairies :
        644 pour tous les .so.xxx
        755 pour libc.so.xxx (c'est la seule a avoir besoin du droit en exécution)

        Après dans tous souci, vérifie ça :
        $ ls -l -d /usr
        $ ls -l -d /usr/lib

        # chmod 755 /usr
        # chmod 755 /usr/lib
        $ l -l /usr/lib/libpcreposix.so.0.0.0
        # chmod 644 /usr/lib/libpcreposix.so.0.0.0

        Pense a faire un ldd /usr/bin/httpd (ou /usr/bin/apache, enfin le nom de l'exécutable)

        Après vérifie que tu a pas fait le con avec selinux...

        ps : ce genre de soucis n'arrive pas sous mandriva...
        (sauf si tu veux te faire un chroot non prévu...)
        • [^] # Re: répertoire

          Posté par  . Évalué à 1.

          j'obtient toujours la mm erreur

          /usr/sbin/httpd: error while loading shared libraries: libpcreposix.so.0: cannot open shared object file: Permission denied
          [FAILED]
          • [^] # Re: répertoire

            Posté par  . Évalué à 1.

            Je ne connais pas rhel, mais ça ne pourrait pas venir de SElinux par hasard?
            • [^] # Re: répertoire

              Posté par  . Évalué à 1.

              je n'ai pas su trouver ou réside le pb. du coup j'ai désinstallé apache e tje l'ai réinstaller en recompilant la source.
              je ne sais pas comment voir si le problème viendrais de SELinux
              • [^] # Re: répertoire

                Posté par  . Évalué à 2.

                Truc bête, t'es bien root quand tu démarres ton serveur ? Sinon vois aussi du coté de ldconfig.

                Fais aussi un ldd /usr/sbin/httpd pour voir s'il va bien chercher la bonne biblio.
                • [^] # Re: répertoire

                  Posté par  . Évalué à 1.

                  bonjour
                  voilà ce que j'obtient lorsque je fais ldd /etc/sbin/httpd
                  libpcre.so.0 => /lib/libpcre.so.0 (0x00fc1000)
                  libpcreposix.so.0 => not found
                  libaprutil-0.so.0 => not found
                  libldap-2.2.so.7 => not found
                  liblber-2.2.so.7 => not found
                  libexpat.so.0 => not found
                  libapr-0.so.0 => not found
                  pourtant j'ai bien c librairie là installée dans mon système
                  • [^] # Re: répertoire

                    Posté par  . Évalué à 2.

                    Linux utilise deux voies pour retrouver les bibliothèques partagées :

                    1) /etc/ld.so.conf

                    Ce fichier contient une liste de répertoires réputés recéler des bibliothèques partagées. Il faut vérifier si les répertoires qui contient ta lib s'y trouvent aussi. A priori, /usr/lib doit y être, c'est un minimum.

                    Ensuite, il faut relancer la commande ldconfig pour que le système reconstruise le cache.

                    2) La variable d'environnement LD_LIBRARY_PATH.

                    Elle fonctionne exactement comme PATH pour les exécutables. Sur tous les UNIX, elle est définie par défaut par le système et peut-être modifiée à convenance par l'utilisateur. Sous Linux, elle est souvent vide du fait de ldconfig.
                    • [^] # Re: répertoire

                      Posté par  . Évalué à 1.

                      Même lorsque je définis mon LD_LIBRARY_PATH et que je déclare le /usr/lib /lib et le /usr/httpd/lib, j'obtient toujours

                      libpcre.so.0 => /lib/libpcre.so.0 (0x00ec7000)
                      libpcreposix.so.0 => not found
                      libaprutil-0.so.0 => not found
                      libldap-2.2.so.7 => not found
                      liblber-2.2.so.7 => not found

                      lorsque j'execute le ldd /usr/sbin/httpd .
                      J'ai essayé d'installer le httpd-2.0.52 en source, j'ai réussi à le faire marcher mais je ne retrouve pas les module que g déclaré enabled lors de la compilation, j'ai besoin du mod_dav et je ne retrouve rien dans le dossier modules, ni aileurs d'ailleurs. Je ne comprends pas ou se trouve le problème
                      • [^] # Re: répertoire

                        Posté par  (site web personnel) . Évalué à 2.

                        Bon remplis ton /etc/ld.so.conf comme ceci :
                        /usr/lib
                        /usr/local/lib
                        (rajoute ce que tu dois)

                        Puis lance :
                        # ldconfig
                        (sans le # signe que tu lance la commande en root)

                        Et là ré-essaye ton ldd /usr/sbin/httpd

                        Si ça marche pas, dégage moi cette daube de rhel/fedora et met une mandriva, en 10 minutes ton serveur sera configurer et fonctionnel...
                        # urpmi apache-mpm-prefork apache-mod_php drakwizard
                        # drakwizard
                        (configurer un serveur web (apache2))
                        Et roulez jeunesse...
                        • [^] # Re: répertoire

                          Posté par  . Évalué à 1.

                          oui j'ai déjà essayé et ça ne marche pas :)
                          et je suis obligé d'utiliser une distrib rhel4.. c bien dommage.. sinn moi j'aurais mis debian
                          :)
                          merci pour vos réponses :)
                        • [^] # Re: répertoire

                          Posté par  . Évalué à 1.

                          oui j'ai déjà essayé et ça ne marche pas :)
                          et je suis obligé d'utiliser une distrib rhel4.. c bien dommage.. sinn moi j'aurais mis debian
                          :)
                          merci pour vos réponses :)
                • [^] # Re: répertoire

                  Posté par  . Évalué à 1.

                  sinon oui je suis root

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.