godi22
Anmeldungsdatum: 3. November 2011
Beiträge: 44
|
Hallo, ich habe von Ubuntu 15.10 auf 16.04.1 upgegradet. Leider funktioniert jetzt php mit dem webserver nginx nicht mehr. Ich habe schon probiert alles auf php 7.0 umzustellen. Nach folgender Anleitung:
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 Meine nginx config für php: # pass the PHP scripts to PHP-FPM server listening on unix socket
location ~ ^(.+\.php)(.*)$ {
try_files $fastcgi_script_name =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
} Ich habe auch eine info.php erstellt mit www-data rechten. Wenn ich diese aufrufe bekomme ich folgenden Fehler: 502 Bad Gateway
Bzw in der error.log: 2016/08/22 11:08:21 [crit] 3440#3440: *130 connect() to unix:/var/run/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: xxxx, server: xxxx, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7.0-fpm.sock:", host: "xxxx"
Leider weiß ich nicht mehr wie ich weiter vorgehen soll um den Fehler zu finden. Hat jemand eine Idee wo das Problem liegt?
Moderiert von tomtomtom: Kein Bezug zum Forum "Ubuntu installieren und aktualisieren" vorhanden. Ins passende Forum verschoben.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
godi22 schrieb: Leider weiß ich nicht mehr wie ich weiter vorgehen soll um den Fehler zu finden.
Was hast du denn bisher versucht? Was sagt
$ dpkg -l |grep php
$ ls -l /run/php
Sieht aus, als ob der Socket nicht existiert.
|
godi22
(Themenstarter)
Anmeldungsdatum: 3. November 2011
Beiträge: 44
|
Hallo Ausgabe für dpkg -l |grep php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | dpkg -l |grep php
ii php-cli 1:7.0+35ubuntu6 all command-line interpreter for the PHP scripting language (default)
ii php-common 1:35ubuntu6 all Common files for PHP packages
ii php-fpm 1:7.0+35ubuntu6 all server-side, HTML-embedded scripting language (FPM-CGI binary) (default)
ii php-mysql 1:7.0+35ubuntu6 all MySQL module for PHP [default]
ii php-pear 1:1.10.1+submodules+notgz-6 all PEAR Base System
ii php-xml 1:7.0+35ubuntu6 all DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]
rc php5-cgi 5.6.11+dfsg-1ubuntu3.4 amd64 server-side, HTML-embedded scripting language (CGI binary)
rc php5-cli 5.6.11+dfsg-1ubuntu3.4 amd64 command-line interpreter for the php5 scripting language
ii php5-common 5.6.11+dfsg-1ubuntu3.4 amd64 Common files for packages built from the php5 source
rc php5-fpm 5.6.11+dfsg-1ubuntu3.4 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php5-gd 5.6.11+dfsg-1ubuntu3.4 amd64 GD module for php5
rc php5-json 1.3.7-1 amd64 JSON module for php5
ii php5-mcrypt 5.4.6-0ubuntu6 amd64 MCrypt module for php5
ii php5-mysql 5.6.11+dfsg-1ubuntu3.4 amd64 MySQL module for php5
rc php5-readline 5.6.11+dfsg-1ubuntu3.4 amd64 Readline module for php5
ii php7.0-cli 7.0.8-0ubuntu0.16.04.2 amd64 command-line interpreter for the PHP scripting language
ii php7.0-common 7.0.8-0ubuntu0.16.04.2 amd64 documentation, examples and common module for PHP
ii php7.0-fpm 7.0.8-0ubuntu0.16.04.2 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php7.0-json 7.0.8-0ubuntu0.16.04.2 amd64 JSON module for PHP
ii php7.0-mysql 7.0.8-0ubuntu0.16.04.2 amd64 MySQL module for PHP
ii php7.0-opcache 7.0.8-0ubuntu0.16.04.2 amd64 Zend OpCache module for PHP
ii php7.0-readline 7.0.8-0ubuntu0.16.04.2 amd64 readline module for PHP
ii php7.0-xml 7.0.8-0ubuntu0.16.04.2 amd64 DOM, SimpleXML, WDDX, XML, and XSL module for PHP
|
Ausgabe für ls -l /run/php
| ls -l /run/php
insgesamt 4
-rw-r--r-- 1 root root 4 Aug 22 10:46 php7.0-fpm.pid
srw-rw---- 1 www-data www-data 0 Aug 22 10:46 php7.0-fpm.sock
|
Dies bedeutet eigentlich schon, dass der Socket existiert oder? Was ich schon versucht habe:
Die oben angeführte installation für php 7.0, ob der php prozess läuft und ob die Rechte für info.php richtig vergeben sind. Das dürfte mMn passen. Rechte von info.php im Ordner /var/www/html:
| -rw-r--r-- 1 www-data www-data 17 Aug 22 10:42 info.php
|
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
godi22 schrieb: Dies bedeutet eigentlich schon, dass der Socket existiert oder?
Ja. Bleibt die Frage, warum er sagt, dass er die Datei nicht findet. Hast du nginx mal neu gestartet?
Rechte von info.php im Ordner /var/www/html:
| -rw-r--r-- 1 www-data www-data 17 Aug 22 10:42 info.php
|
Sollte passen. Zeig mal noch:
$ ls -l /var
|
godi22
(Themenstarter)
Anmeldungsdatum: 3. November 2011
Beiträge: 44
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | ls -l /var
insgesamt 60
drwxr-xr-x 2 root root 4096 Aug 19 07:35 backups
drwxr-xr-x 19 root root 4096 Aug 12 10:06 cache
drwxrwsrwt 2 root whoopsie 4096 Aug 21 07:35 crash
drwxr-xr-x 81 root root 4096 Aug 12 13:39 lib
drwxrwsr-x 2 root staff 4096 Apr 17 2015 local
lrwxrwxrwx 1 root root 9 Sep 28 2015 lock -> /run/lock
drwxrwxr-x 16 root syslog 4096 Aug 22 10:46 log
drwxrwsr-x 2 root mail 4096 Apr 22 2015 mail
drwxrwsrwt 2 root whoopsie 4096 Apr 22 2015 metrics
drwxr-xr-x 2 root root 4096 Apr 22 2015 opt
lrwxrwxrwx 1 root root 4 Sep 28 2015 run -> /run
drwxr-xr-x 2 root root 4096 Aug 1 16:07 snap
drwxr-xr-x 7 root root 4096 Aug 12 09:42 spool
drwxrwxrwt 51 root root 12288 Aug 22 11:33 tmp
drwxr-xr-x 4 root root 4096 Mär 23 21:23 www
|
für /var/www/tml gelten die selben Rechte wie für /var/www. Diese sollten jedoch passen, da ich auf z.B. index.html zugreifen kann.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Ich wollte nur sehen, dass der Symlink von /var/run nach /run korrekt ist. Ist aber korrekt. Da fällt mir jetzt ehrlich gesagt auch nur wenig ein. Ich würde jetzt hingehen und den Prozess stracen. Also mit Telnet verbinden, die PID raussuchen und dann per strace ranhängen, damit man sieht, was er wirklich macht. Edit: Nur zur Sicherheit: nginx läuft bei dir auch als User www-data?
|
godi22
(Themenstarter)
Anmeldungsdatum: 3. November 2011
Beiträge: 44
|
Ja nginx läuft als www-data.
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Ich nutze zwar aktuell kein php, aber in 16.04.1 ist php7 drin, falls euch das weiterhilft. Fremdquellen aktiv? Oder noch alte Wily-Quellen?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
ChickenLipsRfun2eat schrieb: Ich nutze zwar aktuell kein php, aber in 16.04.1 ist php7 drin, falls euch das weiterhilft. Fremdquellen aktiv? Oder noch alte Wily-Quellen?
Guter Gedanke. Normalerweise sollte man aber PHP5 und PHP7 parallel installieren können, aber die Pakete sehen wirklich aus, wie von vor dem Upgrade. Das sollte er noch korrigieren.
@godi22 Ich habe das Problem vermutlich gefunden: nginx sucht den Socket unter
/var/run/php7.0-fpm.sock
Der Socket liegt aber unter
/var/run/php/php7.0-fpm.sock
|
godi22
(Themenstarter)
Anmeldungsdatum: 3. November 2011
Beiträge: 44
|
misterunknown schrieb: ChickenLipsRfun2eat schrieb: Ich nutze zwar aktuell kein php, aber in 16.04.1 ist php7 drin, falls euch das weiterhilft. Fremdquellen aktiv? Oder noch alte Wily-Quellen?
Guter Gedanke. Normalerweise sollte man aber PHP5 und PHP7 parallel installieren können, aber die Pakete sehen wirklich aus, wie von vor dem Upgrade. Das sollte er noch korrigieren.
@godi22 Ich habe das Problem vermutlich gefunden: nginx sucht den Socket unter
/var/run/php7.0-fpm.sock
Der Socket liegt aber unter
/var/run/php/php7.0-fpm.sock
Hallo, vielen Dank!
Das Problem war wirklich der Pfad zu php7.0-fpm.sock
Funktioniert nun. Jedoch habe ich jetzt nicht ganz verstanden was ich noch korrigieren sollte mit den Fremdquellen. Könnt ihr mir da noch einen Tipp geben?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
godi22 schrieb: Funktioniert nun.
👍
Jedoch habe ich jetzt nicht ganz verstanden was ich noch korrigieren sollte mit den Fremdquellen. Könnt ihr mir da noch einen Tipp geben?
Guck dir nochmal die installierten Pakete an:
dpkg -l |grep php
Dort sind noch alte PHP5-Pakete dabei, außerdem sind für PHP7 manche Pakete in der Minor-Version anders. Meines Erachtens solltest du damit schon erstmal grob aufräumen können:
apt-get remove --purge --auto-remove $(dpkg --get-selections "php5*"|awk '{ print $1 }')
apt-get clean
apt-get update
apt-get upgrade
Eventuell solltest du mal deine Softwarequellen überprüfen, ob da auch was weg kann. Du kannst die Einträge so anzeigen lassen:
egrep -v "(^#|^$)" $(find /etc/apt -name "*list")
|