[[webdev:apache:aenderungen-2.4.7]]

Ubuntu Server 12.10 -> 14.04 Upgrade Apache+PHP5-FPM

Das waren die Probleme die beim Upgrade aufgetreten sind.

Welche Versionen sind dann auf dem Server?

php5-cli:

$ php5 -v
PHP 5.5.9-1ubuntu2 (cli) (built: Mar  3 2014 21:11:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

php5-fpm:

$ php5-fpm -v
PHP 5.5.9-1ubuntu2 (fpm-fcgi) (built: Mar  3 2014 21:11:27)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

http://ch2.php.net/ChangeLog-5.php#5.5.9

apache2:

$ apache2 -v
Server version: Apache/2.4.7 (Ubuntu)
Server built:   Mar 20 2014 16:37:45

http://httpd.apache.org/docs/2.4/new_features_2_4.html

Die Build Dates können abweichen hier, da dieser Eintrag vorm Release geschrieben wurde.

Die Seiten in /etc/apache2/sites-available/ müssen jetzt die Endung *.conf tragen. Ansonsten

ERROR: Site intranet does not exist!

Man kann es natürlich auch in der Konfiguration umbauen, so das es wieder ohne die *.conf Extension funktioniert.

Quelle: http://nixmash.com/linux/changes-that-will-affect-you-in-apache-2-4-7/

Auf einem anderen Server betreibe ich Apache 2.4.6 und beim anlegen eines neues VirtualHost erhalte ich kein Zugriff auf die Webseite: Forbidden. Im Log taucht folgendes auf:

AH01630: client denied by server configuration: /var/www2/

Apache hat seit 2.4.3 ein neues Security-Feature bekommen: Require. Per Default wird es in der httpd.conf auf On ausgeliefert. Den Hinweis und den Fix gefunden habe ich hier. Mehr dazu und wofür es gut ist:

http://httpd.apache.org/docs/current/misc/security_tips.html#protectserverfiles

<Directory /srv/www/public/>
   Order allow,deny
   Allow from all
   # die neue direktive:
   Require all granted
</Directory>

~~LINKBACK~~ ~~DISCUSSION~~

Ich weiss nicht ob es andere auch betrifft aber der www.conf-Container (wohl der default) wurde die Direktive Listen auf das Socket umgestellt. Von daher funktioniert die Kommunikation mit PHP nicht, weil hier PHP5-FPM und Apache über Localhost:9000 sprechen. Also wieder umstellen. Die anderen Container in pool.d/ waren nicht betroffen.

Wenn Mcrypt nicht funktionieren will, kann dieser Eintrag hilfreich sein:

http://askubuntu.com/a/360657

Es war ein früher Bug der die neue Verzeichnisstruktur von /etc/php5 nicht beachtet hat. Mittlerweile gefixt.

Man inkludiert seine (eine) Klasse aber der Interpreter meckert beim Initialisieren das die Klasse nicht gefunden wird oder die Datei wird einfach angezeigt.

Stichwort: Short Tags

Folgender Abschnitt aus der php.ini zeigt es:

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It is
; generally recommended that <?php and ?> should be used and that this feature
; should be disabled, as enabling it may result in issues when generating XML
; documents, however this remains supported for backward compatibility reasons.
; Note that this directive does not control the <?= shorthand tag, which can be
; used regardless of this directive.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = Off

Hint:

<?
 
print "code hier";

besser:

<?php
 
print "code hier";

oder in der php.ini den entsprechenden Schalter auf On stellen.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
  • webdev/apache/aenderungen-2.4.7.txt
  • Zuletzt geändert: 2014/12/20 20:25
  • von haiko