Der Dienst httpd kann nicht gestartet werden - fcgid kann keinen gemeinsamen Speicher erstellen

Der Dienst httpd kann nicht gestartet werden - fcgid kann keinen gemeinsamen Speicher erstellen

Ich weiß nicht genau, warum, aber wenn ich versuche, den httpd-Dienst zu starten, wird er nicht gestartet.

Serverkonfiguration:

OS: CentOS 5.10
PHP: 5.5.7
Apache: 2.2.3

So habe ich herausgefunden, was los war:

$ sudo service httpd start
Starting httpd:                                            [  OK  ]
$ sudo service httpd status
httpd dead but subsys locked

Also habe ich die Subsys-Datei für httpd entfernt und es erneut versucht, aber es schlug wieder fehl.

Mein Vorgang zum Hinzufügen von fcgid war wie folgt:

  1. Ich habe mod_fcgid aus dem Quellcode erstellt und es in das Verzeichnis /etc/httpd/modules gelegt.

  2. Ich habe LoadModule fcgid_module modules/mod_fcgid.soder Liste der Module hinzugefügt

  3. Ich habe es auskommentiert, LoadModule cgi_module modules/mod_cgi.soda ich es nicht brauche.

  4. Ich habe ein Wrapper-Skript für PHP erstellt und es in /var/www/cgi-bin platziert:

  5. Ich habe einen Handler für PHP erstellt, der auf den Wrapper verweist.

  6. Dann versuche ich den httpd-Dienst zu starten

Folgendes ist der Fehler, den ich in /var/log/httpd/error_log erhalte:

[Mon Dec 16 12:18:26 2013] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
[Mon Dec 16 12:18:26 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Dec 16 12:18:26 2013] [notice] SSL FIPS mode disabled
[Mon Dec 16 12:18:26 2013] [notice] Digest: generating secret for digest authentication ...
[Mon Dec 16 12:18:26 2013] [notice] Digest: done
[Mon Dec 16 12:18:26 2013] [emerg] (17)File exists: mod_fcgid: Can't create shared memory for size 1200712 bytes

Ich sehe, dass dort „Datei wird beendet“ steht, aber ich habe überall nach zusätzlichen Dateien mit „fcgi“ im Namen gesucht und kann nichts finden.

Ich bin nicht sicher, ob es sich hier um ein Berechtigungsproblem handelt oder vielleicht etwas mit SELinux zu tun hat – oder vielleicht mit suEXEC?

Ich wäre für jeden Hinweis dankbar, da ich noch nicht einmal sicher bin, wo ich mit der Suche beginnen soll.


Ich habe es erneut versucht und diesmal war der Fehler etwas anders:

[Mon Dec 16 12:50:23 2013] [emerg] (13)Permission denied: mod_fcgid: Can't create shared memory for size 1200712 bytes

Ich bin nicht sicher, bei welchem ​​Ordner oder welcher Datei ich den Eigentümer ändern muss.


Ich habe SELinux auf eingestellt permissiveund der Prozess konnte problemlos gestartet werden – aber ich möchte SELinux nicht so lassen. Ich stelle eine weitere Frage, wie man Apache, fcgid und PHP unter SELinux zusammenarbeiten lassen kann.

Antwort1

Versuchen Sie, es nur testweise SELinuxzu deaktivieren, und prüfen Sie, ob dies die Ursache Ihres Problems ist:

[alexus@XXXXXXXXXX ~]$ getenforce 
Enforcing
[alexus@XXXXXXXXXX ~]$ sudo setenforce 0
[alexus@XXXXXXXXXX ~]$ getenforce 
Permissive
[alexus@XXXXXXXXXX ~]$ 

Führen Sie es außerdem zufällig als Chroot aus? Ich hatte zu FreeBSD-Zeiten ein ähnliches Problem, aber das hing mit Jail/Chroot zusammen.

verwandte Informationen