PHP
Uit DeVliegendeWiki
Inhoud |
Arrays
Zie Arrays (PHP)
Display Errors
Gebruik phpinfo() om de status van display_errors af te lezen. Gebruik
<?php
ini_set('display_errors', 1);
?>
om dit aan te passen.
Wellicht een betere oplossing voor bv. een testserver: Pas bestand
/etc/php5/apache2/php.inf
aan, of welk bestand dan ook dat bij je PHP-versie hoort. Configureer de volgende instellingen:
display_errors = On
en
display_startup_errors = On
Bron: http://technomancer.me.uk/blog/enabling-php-error-messages-drupal
E-mail versturen
Om vanuit PHP e-mail te versturen, heb je in ieder geval de volgende issues:
- Er moet een mailserver geconfigureerd zijn. Dat kun je via phpinfo() testen;
- Veel ontvangende mail-servers doen een soort reverse lookup om te verifiëren dat de verzendende mailserver ook echt bestaat.
Er is ook een andere manier: Vergelijkbaar met nail (ipv. mail) kun je een externe SMTP-server specificeren. Dat vind ik eigenlijk veel logischer. De locale server functioneert dan als een gewone e-mailclient.
1. Controleer phpinfo()
Bv.:
<?php phpinfo(); ?>
2. Test-email
Bv.:
<?php
$Message="Dit is de body";
$Topic="Onderwerp";
mail('info@example.com', $Topic, $Message);
?>
Bron: http://php.net/manual/en/function.mail.php
Fatal error: Allowed memory size ... exhausted
Complete foutmelding:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 8 bytes) in /var/www/MySite/sites/default/modules/views/modules/views_user.inc on line 102
Waarschijnlijk wordt dit verzoorzaakt door een PHP-geheugenlimiet. Het genoemde getal twee keer gedeeld door 1024, geeft namelijk 16 MB, een veelvoorkomende limiet.
In /etc/php5/apache2/php.ini de volgende regel als volgt aangepast:
memory_limit = 64M ; Maximum amount of memory a script may consume (16MB)
Herstart vervolgens Apache, zodat de aangepaste instellingen van kracht worden. Herstarten lijkt in ieder geval te lukken met:
/etc/init.d/apache2 restart
Bronnen:
- http://drupal.org/node/194409
- http://drupal.org/node/29268
- https://help.ubuntu.com/community/ApacheMySQLPHP#Run,%20Stop,%20Test,%20And%20Restart%20Apache
Fatal error: Maximum execution time exceeded
Complete foutmelding:
Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/MySite/sites/default/modules/backup_migrate/backup_migrate.module on line 1178
Het betreffende gebied in php.ini:
;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; max_execution_time = 30 ; Maximum execution time of each script, in seconds max_input_time = 60 ; Maximum amount of time each script may spend parsing request data ;max_input_nesting_level = 64 ; Maximum input variable nesting level memory_limit = 256M ; Maximum amount of memory a script may consume (16MB)
Het gaat hierbij om de eerste regel.
PHPInfo
<?php // Show all information, defaults to INFO_ALL phpinfo(); // Show just the module information. // phpinfo(8) yields identical results. phpinfo(INFO_MODULES); ?>
Voorbeeld:
<?php
print("Hello World");
?>
Bronnen:
Server-bestanden
Server-bestanden met zowel HTML als PHP, moeten de extensie .php hebben.
