wake-up-neo.com

Wo befindet sich php7.0-fpm.sock?

Ich habe ein einfaches Projekt mit Verzeichnisstruktur

Ich richte nginx config für meine Drupal-Site ein, und für fastcgi_pass habe ich 127.0.0.1:9000 verwendet, aber ich möchte einen Unix-Socket verwenden, wie in dieser Conf vorgeschlagen:

 # PHP 7 socket location.
   fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

aber ich kann php/php7.0-fpm.sock; nicht finden

Ich habe den folgenden Pfad in meiner Centos-Distribution

/var/run/php-fpm/php-fpm.pid
14
hidar

Überprüfen Sie die php-fpm config, in der der Socket erstellt wird, mit:

$ cat /etc/php/7.0/fpm/pool.d/www.conf

Suchen Sie nach listen, zum Beispiel:

listen = /run/php/php7.0-fpm.sock

php-fpm erstellt die Socket-Datei after, mit der Sie den Prozess gestartet haben. 

Sudo service php7.0-fpm stop
Sudo service php7.0-fpm start

Überprüfen Sie das Verzeichnis, ob die Socket-Datei erstellt wurde:

$ cd /run/php && ls -la

17
BenRoob

Überprüfen Sie zunächst, ob php-fpm Auf Ihrem System ausgeführt wird. Verwenden Sie dazu beispielsweise pgrep:

# pgrep -fa php-fpm
5666 php-fpm: master process (/etc/php-fpm.conf)
5667 php-fpm: pool www
5668 php-fpm: pool www
5669 php-fpm: pool www
5670 php-fpm: pool www
5671 php-fpm: pool www

In diesem Fall wird angezeigt, dass die Konfigurationsdatei /etc/php-fpm.conf Aktiv ist und verwendet wird. Bevor Sie die Konfigurationsdatei überprüfen und nach der Direktive listen = Suchen, können Sie schnell nach /proc/net/unix suchen, zum Beispiel:

# grep php /proc/net/unix

Welches kann etwas zurückgeben wie:

ffff8800bfb2f400: 00000002 00000000 00010000 0001 01 28561 /tmp/php-fpm.sock

In diesem Fall zeigt es, dass sich der Pfad für den PHP-FPM-Socket in /tmp/php-fpm.sock Befindet. In diesem Fall kann der Pfad mit /etc/php-fpm.d/www.conf Überprüft werden: listen= /tmp/php-fpm.sock

Falls Sie kein Ergebnis erhalten und php-fpm Läuft, können Sie durch Überprüfen der Konfiguration feststellen, dass die Standardeinstellungen verwendet werden, indem Sie sie in einem TCP= Socket angeben:

listen = 127.0.0.1:9000

Etwas, das Sie ändern könnten, um auf einem Unix-Socket wie Ihrer vorgeschlagenen conf zu lauschen:

listen = /var/run/php/php7.0-fpm.sock

In einigen Linux-Distributionen wird normalerweise Folgendes verwendet:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Vergessen Sie nach dem Ändern Ihrer Konfiguration nicht, die Dienste neu zu starten systemctl restart php-fpm. Um zu überprüfen, ob der Socket erstellt wurde, können Sie Folgendes tun:

$ file /var/run/php/php7.0-fpm.sock

Wenn Socket vorhanden ist, sollte Folgendes ausgegeben werden:

/var/run/php/php7.0-fpm.sock: socket
11
nbari

sie können es sehen, indem Sie laufen 

$ ss --unix |grep 'php' 
1
Breign

Es ist wahrscheinlich, dass eine ältere libpcre3-Einheit installiert ist, die die Abhängigkeit im Paket php7.0 erfüllt, aber nur das neuere Bibliothekspaket pcre_jit_stack_free bereitstellt.

Wenn dies der Fall ist, führen Sie eine apt-get-Installation von libpcre3 aus, und Sie können loslegen.

Ref .: https://github.com/oerdnj/deb.sury.org/issues/372

Ich hoffe das hilft dir.

0