Difference between revisions of "KB00004:Symfony2 Requirements"

From PartKeepr Wiki
Jump to: navigation, search
Line 3: Line 3:
 
= Common Issues =
 
= Common Issues =
 
== Memory limit too small ==
 
== Memory limit too small ==
The php.ini memory_limit directive must be set to 256MB or higher.  
+
The php.ini memory_limit directive must be set to 64MB or higher. Please adjust the variable in your php.ini file and restart your web server afterwards.
 
 
The reason for the high memory_limit setting is that Symfony2 builds a cache to increase performance. This process takes quite some memory.
 
  
 
== Directory must be writable ==
 
== Directory must be writable ==

Revision as of 16:30, 8 October 2015

PartKeepr uses Symfony2, a web framework. This page documents several issues why the Symfony2 Requirements check may fail.

Common Issues

Memory limit too small

The php.ini memory_limit directive must be set to 64MB or higher. Please adjust the variable in your php.ini file and restart your web server afterwards.

Directory must be writable

Various directories need to be writable by the web server. The first step to fix this error is to find out as which user the Apache2 web server runs. Copy and paste the following line:

ps -ef | egrep "(httpd|apache2)" | grep -v `whoami` | grep -v root | head -n1 | cut -d" " -f1

Then, change to the directory where you installed PartKeepr and execute the following command:

chown -R <webserver user from above command> <the directory which fails the check

For example, if the web server user is www-data and the directory which fails the test is app/cache, you would invoke the command like this:

chown -R www-data app/cache

date.timezone setting must be set

On some distributions, the date.timezone setting is not configured. The installer gives you the path to the php.ini file used by the web server. Open the file in a text editor and find the text date.timezone. Remove the trailing ; character (which indicates a comment) and append your timezone, for example:

date.timezone=Europe/Berlin

If you are unsure which timezone you can use, you can execute the following command to get a list of all timezones:

php -r 'echo join(timezone_identifiers_list(), "\n");'

After you have saved the file, make sure you have restarted your web server so that the new setting takes effect.

GD library not found

You need to install and activate the GD Library for PHP. On Debian, you can install it using:

apt-get install php5-gd

No way to remotely load files detected

PartKeepr needs to be able to load data from the web, for example, to update the tips of the day database and to upload files by an URL.

Either set the directive allow_url_fopen to true in your php.ini file or install the cURL extension for PHP.


Vendor libraries must be installed

If you are running PartKeepr from the source repository, you need to pull in the dependencies for PartKeepr. Ensure you have composer installed, then change to the directory in which you have installed PartKeepr and execute:

composer install

This will take several minutes, depending on your internet connection speed.

Less common issues

session_start() must be available

The session support seems to be disabled for your PHP installation. This could happen if you have compiled PHP yourself, or using a distribution like Gentoo where you have used the wrong USE flags. Refer to your distribution's manual to find out on how to enable session support.

ctype_alpha() must be available

The ctype support seems to be disabled for your PHP installation. This could happen if you have compiled PHP yourself, or using a distribution like Gentoo where you have used the wrong USE flags. Refer to your distribution's manual to find out on how to enable ctype support.

token_get_all() must be available

The tokenizer support seems to be disabled for your PHP installation. This could happen if you have compiled PHP yourself, or using a distribution like Gentoo where you have used the wrong USE flags. Refer to your distribution's manual to find out on how to enable tokenizer support.

simplexml_import_dom() must be available

The SimpleXML support seems to be disabled for your PHP installation. This could happen if you have compiled PHP yourself, or using a distribution like Gentoo where you have used the wrong USE flags. Refer to your distribution's manual to find out on how to enable SimpleXML support.

PCRE extension must be available

Either the PCRE extension is not available or it is too old. Usually this problem only occurs if you compiled PHP yourself, please see the documentation on the PCRE extension for further details.

Other issues

If there are other issues not covered here, please use the PartKeepr Community Support.