Tag: PHP

MacPorts: mehrere PHP-Versionen gleichzeitig

MacPorts unterstützt jegliche PHP-Versionen. Diese können auch ohne Probleme gleichzeitig installiert werden. Die Pakete werden in MacPorts unter php56, php70, php71, ... usw. gelistet. Die notwendigen Befehle, um eine einzelne Version zu installieren:

MacPorts aktualisieren:

sudo port selfupdate
sudo port upgrade outdated

PHP Version (beispielsweise PHP 7.0) und ggf. erforderliche Module installieren:

sudo port install php70
sudo port install php70-apache2handler
sudo port install php70-... (je nach erforderlichen Modulen)

Nun zum Aktivieren der gewünschten PHP-Version: hier muss beachtet werden, dass es einen Unterschied zwischen der Konsole und der Anwendung von PHP in Apache gibt! So aktiviert man die PHP-Version an den unterschiedlichen Stellen:

PHP für die Konsole aktivieren:

sudo port select php php70

Überprüfen kann man die Version in der Konsole mit php -v.

PHP für Apache aktivieren:
In der Datei /opt/local/apache2/conf/http.conf die folgende Zeile einfügen oder aktivieren.

#LoadModule php5_module modules/mod_php56.so
LoadModule php7_module modules/mod_php70.so

Überprüfen kann man die Version mit phpinfo() in einer einfachen PHP-Datei.

Apache Neustarten:

sudo port unload apache2
sudo port load apache2

 

Composer global verwenden

In der Dokumentation zu Composer wird erläutert, wie man global auf composer.phar zugreifen kann, ohne permanent php composer.phar ins Terminal eingeben zu müssen:

[…]

You can place the Composer PHAR anywhere you wish. If you put it in a directory that is part of your PATH, you can access it globally. On unix systems you can even make it executable and invoke it without directly using the php interpreter.

After running the installer following the Download page instructions you can run this to move composer.phar to a directory that is in your path:

mv composer.phar /usr/local/bin/composer

Note: If the above fails due to permissions, you may need to run it again with sudo.

Note: On some versions of OSX the /usr directory does not exist by default. If you receive the error “/usr/local/bin/composer: No such file or directory” then you must create the directory manually before proceeding: mkdir -p /usr/local/bin.

Note: For information on changing your PATH, please read the Wikipedia article and/or use Google.

Now just run composer in order to run Composer instead of php composer.phar.

 

Apache2, PHP und MySQL über MacPorts installieren

Es gibt hier im Blog bereits eine Vielzahl an Posts zu diesem Thema. Warum? Mit jedem Update von Mac OS X scheint sich wieder etwas zu ändern, sodass die Installation von Apache / PHP / MySQL mittels MacPorts nicht mehr funktionieren möchte.

Was bei den einzelnen OS X Versionen zu beachten ist, ist in den HowTo-Beiträgen auf macports.org bestens beschrieben: https://trac.macports.org/wiki/howto.

Detaillierte Information gibt es auf den Unterseiten zu Apache2, PHP und auch MySQL.

Firefox – Content Encoding Error / Google Chrome – ERR_CONTENT_DECODING_FAILED

Beim Öffnen einer Webseite, erhält man folgenden Fehler in Google Chrome:

Error 330 (net::ERR_CONTENT_DECODING_FAILED): Unknown error

Nutzt man FireFox dann sieht dieser Fehler so aus:

Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.

Woran liegt das?

Wo ist meine php.ini?

Wo die aktuell verwendete php.ini gespeichert ist, lässt sich ganz einfach über phpinfo() ermitteln! Dazu einfach eine neue php-Datei im Web-Verzeichnis speichern und mit folgendem Inhalt füllen:

1
<?php phpinfo() ?>

Wird diese Datei über den Browser aufgerufen, dann ist aus der Ausgabe der Funktion phpinfo() ersichtlich, welche php.ini gerade verwendet wird:

PHP: Datum in deutscher Form ausgeben

Das von PHP ausgegebene Datum ist standardmäßig in englisch. Um dieses in die deutsche Form zu bringen, müssen mit Hilfe von setlocale() lokale Informationen gesetzt werden. In diesem Fall “de_DE”.

setlocale('LC_TIME', 'de_DE');
echo strftime('%A').', der '.date('d.m.Y H:i:s').' Uhr.';

Die Ausgabe sieht dann wie folgt aus:

Dienstag, der 09.05.2006 14:15:43 Uhr.

Näheres zum Datums- und Zeitformat im PHP-Manual unter: PHP-Funktion date().