Homebrew PHP memory limit verhogen voor Composer

Ik heb op mijn blog al regelmatig geschreven over Homebrew (brew), PHP en Composer. Soms komt het voor dat bij het uitvoeren van een Composer commando memory limit fouten optreden. Bijvoorbeeld:

$ composer update

Loading composer repositories with package information
Updating dependencies (including require-dev)

PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted at Zend/zend_vm_execute.h:551 (tried to allocate 32 bytes) in phar:///usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Dergelijke fouten zijn vrij eenvoudig op te lossen door de memory limit te verhogen. Dit kan eenvoudig door in het PHP configuratie bestand de memory limit te verhogen.

Hiervoor moet je echter wel weten wat de locatie is van PHP configuratie bestand. Met Homebrew is dit gelukkig eenvoudig te achterhalen. Hiervoor moeten we eerst weten van welke PHP versie we gebruik maken:

$ php -v

PHP 5.6.3 (cli) (built: Nov 16 2014 12:01:32) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

Vervolgens kunnen we met het Homebrew info commando aanvullende informatie opvragen:

$ brew info php56

Dit commando zal de nodige informatie geven over PHP en onder het kopje “Caveats” zal de locatie van het PHP configuratie bestand vermeld staan:

The php.ini file can be found in:
    /usr/local/etc/php/5.6/php.ini

Vervolgens kan dit bestand met behulp van nano eenvoudig aangepast worden.

nano /usr/local/etc/php/5.6/php.ini

De memory_limit kan vervolgens eenvoudig aangepast worden van bijvoorbeeld:

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 1024M

naar:

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 4096M

Met behulp van het volgende commando kan gecontroleerd worden of de wijziging goed is doorgevoerd:

$ php -i | grep memory_limit

memory_limit => 4096M => 4096M

Website kopie maken met HTTrack

Soms wil je even een statische kopie van een website maken voor offline gebruik of als backup. Met behulp van wget kan eenvoudig een kopie gemaakt worden:

wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org

De wget tool neemt echter niet altijd alle gekoppelde stylesheets, scripts, afbeeldingen, etc. mee. Om een betere kopie te krijgen kan het daarom handig zijn om gebruik te maken van HTTrack. Met behulp van brew is deze tool eenvoudig te installeren op een Mac:

brew install httrack

Vervolgens kan met het httrack commando eenvoudig een kopie van een website gemaakt worden.

PHP_CodeSniffer 2.0.0 gebruiken op Mac

Op 5 december kondigde Squiz Labs de release van PHP_CodeSniffer 2.0.0 aan. Met deze nieuwe versie van PHP_CodeSniffer is het mogelijk om fouten automatisch te corrigeren. Met behulp van Brew kan eenvoudig PHP_CodeSniffer 2.0.0 geïnstalleerd worden. Hiervoor dient het volgende commando uitgevoerd te worden in de terminal.

brew install php-code-sniffer --devel