Here are some common faults encountered with phpList and their resolutions:
On installing phpList, you see a page entitled Error: please make sure that index.php is your default document for a directory as follows:
This is a phpList-specific error message intended to appear if:
index.html
(a static page) before index.php
(a dynamic page)If you are using a web-hosting service, this would be a matter for your provider to resolve.
If you manage your own host using Apache, you'll need to edit the configuration for this server and find the DirectoryIndex
directive. This line tells the web server which file is the "default" page under a given directory. There may be several options in descending order of priority. Ensure that index.php
is included and that it is included before index.html
.
The quick-and-dirty way to address this problem may be simply to delete index.html
so that index.php
will take priority.
(You can read about the functionality of Apache's DirectoryIndex
directive at http://httpd.apache.org/docs/trunk/mod/mod_dir.html).
You may encounter the message error: IMAP is not included in your PHP installation, cannot continue when attempting to process bounces, as shown in the following screenshot:
This is because a vital PHP module (php-imap) is missing from your installation. This module is used not only for IMAP connections, but also for POP3 connections and contains the functions that phpList requires to poll the bounce mailbox for new messages.
To resolve this message, either request your web hosting provider to install the php-imap module or install it on your own web server.
This error indicates that one of the following four variables in config/config.php
is incorrect:
localhost
)Confirm each of these either by using a web-based control panel or from a command-line on your host.
If you have command-line access to your web host, you can test these details using the mysql
command as follows:
mysql -h <hostname> -u <user> -p<password> <databasename>
A failed attempt will show you a message similar to the following:
ERROR 1045 (28000): Access denied for user 'baduser'@'localhost' (using password: YES)
A successful attempt will give the following prompt:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 984
Server version: 5.0.77-log Source distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
The HTTP Error 500: Internal server error is the error thrown when the server encountered an unexpected condition which prevented it from fulfilling the request. This can be caused by several factors, but in the case of phpList, if you haven't made any changes to the source code, the most likely scenario is that your web server is running PHP as a CGI as opposed to an Apache module.
Some web-hosting providers will prefer to run PHP as a CGI for its security and privilege-separation advantages.
One resolution to this problem in the context of phpList is to edit .htaccess
in the root of your publicly-accessible phpList files and comment out this line (around line #12):
php_flag magic_quotes_gpc on
By changing it to:
# php_flag magic_quotes_gpc on
Like the previous Error 500, the 404 Error status is a generic HTTP status meaning that the server couldn't find an appropriate file to match the URL you requested.
phpList needs to know the URL at which it's installed in order to generate appropriate hyperlinks, both on the web interface, and in the e-mails it delivers.
To resolve this fault, confirm that the value of Website address on the configure page is correct:
Also confirm the values of $pageroot
and $adminpages
in config/config.php
.
If you've migrated your phpList installation from one URL to another, you may find that you are unable to save any changes made to the configure page, because phpList will redirect you to the previous URL when attempting to save. In this instance, you'll need to use a database editor to manually change the value of the website
field in the phplist_config
table in the database.
This warning (The pageroot in your config does not match the current location) will be displayed on the admin interface if the values of $pageroot
and $adminpages
do not correspond to the current URL:
For example, if you were accessing the admin interface at http://your-installation/demo/phplist
, but you had configured $pageroot
as /lists
, then this error would be presented. It indicates that the URLs generated by phpList in both the configuration section and in any e-mails sent would be invalid.
Confirm that the values of $pageroot
and $adminpages
both align with the URL currently used to access the admin interface.
PHP's "safe mode" (deprecated in upcoming version 6) was intended to increase the security of the web server by restricting certain PHP functions. This has various restricting effects on phpList, the primary one being that automated bounce list processing is not possible.
If you are seeing this message, either you or your hosting provider should disable safe mode, if possible. If it's not possible to disable safe mode, you will need to process bounces manually. There is also the possibility of problems occurring when sending messages to lists that exceed 500 subscribers.
This message indicates that the filesystem path in which you've configured phpList to save its attachments, either doesn't exist, or is not writable by the web server process:
Open config/config.php
and look for the following line (around line #583):
$attachment_repository = '/tmp';
Change the value of $attachment_repository
to match the location (ideally a non-public location) where you want phpList to store uploaded files. Make sure that this directory exists and that the web server process has write-access to it.
This message suggests that the PHP configuration on your web host has been set up with a specific range of directories that PHP may access. This open_basedir
setting is often configured on shared hosts for additional security.
This warning is more often found in combination with the previous warning (The attachment repository does not exist or is not writable). If you see the two of these messages together, there's a high likelihood that the open_basedir
security setting is preventing PHP from accessing your chosen $attachment_repository
directory. Contact your hosting provider to determine which directories are usable under their open_basedir
configuration", and make sure that your $attachment_repository
directory is located within one of these usable directories.
Magic_quotes_gpc
is a PHP setting (deprecated in version 6) that automatically escapes incoming data (that is, from HTML forms) to prevent SQL injection attacks. For now, phpList will work better when magic_quotes_gpc
is enabled and it will present this warning message when it is not:
The .htaccess
file supplied with phpList will automatically enable magic_quotes_gpc
if possible. If you are seeing this message, it's likely your PHP configuration has been "locked down" to prevent magic_quotes_gpc
from being enabled and you will need to contact your web hosting provider.
In contrast to the magic_quotes_gpc
feature just discussed, magic_quotes_runtime
will automatically escape any data returning from an external source at runtime, such as a database query or a filesystem attachment. phpList will also work better when magic_quotes_runtime
is set to off:
You will see this message if you've enabled RSS processing, but your PHP installation doesn't include XML support:
To resolve this, compile PHP with XML support, install the appropriate php-xml module, or request your web hosting provider to arrange it.
You may see this error if you've configured phpList to use a custom SMTP host and the PHPMailer component is unable to connect to this host to deliver outgoing e-mails. To check your SMTP host details, edit config/config.php
on line #670, and ensure that your SMTP server is set correctly. Also ensure that you have connectivity from your phpList installation to this SMTP server (that is, check firewalls and access rules).
# To use a SMTP please give your server hostname here, leave it blank to use the standard # PHP mail() command. define("PHPMAILERHOST",'i.dont.exist.com'),
18.191.189.23