[commits] [Wiki] changed: FAQ/Admin/Troubleshoot

Wiki Guest wikiguest at horde.org
Mon Jun 25 07:01:47 UTC 2018


guest [83.147.239.75]  Mon, 25 Jun 2018 07:01:47 +0000

Modified page: https://wiki.horde.org/FAQ/Admin/Troubleshoot
New Revision:  89
Change log:  wwwwwwwww

@@ -1,319 +1 @@
-[[toc]]
-
-+ Horde Administrator's FAQ
-
-++ Troubleshooting and Common Problems
-
-[[# wsod]]
-+++ A blank white screen appears, or the browser opens a download  
dialog instead of displaying the screen, or the screen is not rendered  
completely
-
-In order to get an idea of what really happened, take a look in the  
web server's error log, in which more verbose errors should be found,  
at least if you properly configured  
[http://de2.php.net/manual/en/ref.errorfunc.php error logging in your  
PHP setup].
-
-Possible reasons could be a fatal PHP error, not being displayed to  
the browser (which is a good thing on production systems, but bad if  
you are trying to hunt down a  
problem)[http://www.php.net/manual/en/ref.errorfunc.php#ini.display-errors],  
or a segfaulting server process (happens most times in the  
[http://www.php.net/manual/en/ref.imap.php c-client library] while  
using IMP 4 or older). If you correctly configured your web server and  
PHP to log all errors, you should find more information in your web  
server's or PHP's log files, or whereever you log the errors (syslog  
etc.).
-
-Another place to see is the Horde log which is being configured in  
Horde's setup. By default Horde is logging to the syslog if using  
Horde 4 or later, resp. to the file /tmp/horde.log if using Horde 3 or  
older.
-
-If you have a partially rendered screen and you have installed into a  
separate PEAR (other than the system wide PEAR install), make sure you  
set the PHP_PEAR_SYSCONF_DIR environment variable as described in the  
INSTALL docs.
-
-+++ After logging in users are immediately thrown back to the login screen
-+++ The login screen keeps reloading constantly
-+++ Error messages like "User is not authorized" in IMP
-If looking at the Horde log file you see a successful login attempt,  
and the login screen doesn't contain any error message, or the login  
screen keeps reloading while you are using the "Automatic"  
authentication driver, e.g. during the initial setup.
-
-This happens if sessions aren't working properly for some reason.  
These are possible troubleshooting steps and their solutions:
-
-: Check that PHP sessions are working at all using the sessions test  
on the {{/horde/test.php}} test script. : If not, make sure that your  
browser accepts cookies. Otherwise check  
http://www.php.net/manual/en/ref.session.php for more information and  
hints.
-: Try logging in with the default PHP session handler if you  
configured a custom session handler in Horde's setup. : If this works,  
something is broken with your custom session handler setup or backend.  
Continue troubleshooting there.
-: If using Horde 3.1.2 or later, change the configuration to allow  
non-cookie, url-based sessions. : If this works, cookies aren't stored  
in your browser. This could be caused by the browser configuration or  
a faulty session cookie setup, see the next point. If you already  
locked yourself out of Horde, edit the configuration file  
{{horde/config/conf.php}} manually and set  
{{$conf['session']['use_only_cookies'] = false;}}.
-: Make sure that you are using the correct cookie domain and path  
settings in Horde's setup. : Cookies are not stored in the browser if  
you don't use a FQDN (fully qualified domain name), e.g.  
``http://localhost/horde/``, or if the specified cookie path  
({{/horde}} by default) doesn't match the webroot of your Horde  
installation, e.g. ``http://webmail.example.org/``,  
``http://www.example.org/horde-3.1.2/``. To find this, go to the Horde  
configuration page on the General tab, and the last box on that page  
says "What path should we set cookies to?". Alternatively, in  
conf.php, look for the value $conf['cookie']['path']. Set that to the  
base URL for horde.
-: If session.auto_start is set to 1 in the php.ini file the login  
page will loop. : Set it to 0.
-: Delete any cookies in your browser for Horde to test any of the  
above changes. : Otherwise wrong cookies might be stored in your  
browser and the above actions still fail
-: Check the session storage. : By default sessions are stored on the  
file system, check that your hard-disc partitions still have plenty of  
room for session storage.
-: Check hordeauth parameter in imp/config/backends.php. : If you are  
using an IMAP server for authentication, and after login in horde and  
go to imp, and there you see a login screen, setup {{'hordeauth' =>  
true,}} to true in your imap server on imp/config/backends.php.
-
-+++ After installation I only have a js/ directory in the web root.
-+++ Some !JavaScript files seem to be missing, I get a 404 error  
message in the web server log files.
-+++ Some classes, e.g. Horde_Registry_Application, cannot be found,  
even though I installed the package that should contain them.
-+++ You get a warning message that !JavaScript has been disabled in  
your browser.
-These symptoms may be caused by three issues:
-
-# The installation failed and you didn't notice. Installing Horde  
through PEAR produces a //lot// of output, and it's too easy to miss  
the single error message that's buried in all that informational  
output. Search the output of the installation process carefully for  
any failed installations or required dependencies that cannot be  
installed.
-# The PEAR configuration setting "horde_dir" is not set correctly. If  
this configuration is not correctly set, or cannot be received from  
PEAR, then some files are not installed into the correct web root, or  
cannot be found there. This can be caused by any of:
- * You didn't run the Horde_Role post-install script. One of the  
steps of installing Horde through PEAR is to install the Horde_Role  
package:  
http://www.horde.org/apps/horde/docs/INSTALL#installing-with-pear. You  
forgot to run {{pear run-scripts horde/horde_role}}.
- * You ran the Horde_Role post-install script, but entered a wrong  
path. The path you need to enter there must be an **existing**  
directory on the **filesystem** inside the **web root** directory of  
your server (aliases and symlinks aside). If for example your web  
server's web root (http://www.example.com/) directory is {{/var/www}},  
and you want Horde to be accessed through  
http://www.example.com/groupware/, you need to create the directory  
{{/var/www/groupware}} and enter exactly that when running the  
post-install script for Horde_Role.
- * You have a correct horde_dir set (verify by running {{pear  
config-show -c horde}}), but it's not correct received when running  
Horde. This was reported to happen with some web server setups if the  
user that is running the web server has a local PEAR configuration,  
e.g. a {{.pearrc}} in his home directory. This local configuration is  
overriding the system-wide configuration for the {{horde_dir}}. Remove  
that configuration, or use it to set {{horde_dir}} manually.
-# You installed Horde with a separate PEAR installation, but didn't  
tell PHP and PEAR where to find this installation. Make sure you  
followed the installation documentation to update the {{.htaccess}}  
file in the Horde directory. If you did that already, make sure that  
the web server is configured to use .htaccess files at all.
-# You upgraded, and you originally installed Horde with a separate  
PEAR installation, and your changes to the {{.htaccess}} (see above)  
got lost during the upgrade. Apply them again, or even better, set  
them in the web server configuration.
-# You upgraded, and you originally installed Horde with a separate  
PEAR installation, but didn't use the same commands for invoking the  
PEAR installer during the upgrade like you used for installing Horde.  
Hint: {{/var/www/horde/pear/pear -c /var/www/horde/pear.conf upgrade  
-a -B -c horde}}
-
-+++ After logging in the message "Last login: Never" is displayed. Always.
-You didn't configure a permanent preference backend like SQL or LDAP.  
Preference backends are used to store user settings and personal stuff  
like the last login time. As an administrator go the the setup screen  
for Horde, select the {{Preference System}} tab, and enter the  
necessary settings. The {{PHP Sessions}} backend does //not// store  
the user settings permanently. You might also need to create some  
storage resource in the backend of your choice, e.g. a table in your  
SQL database or a scheme in your LDAP directory. But this is covered  
in the [http://www.horde.org/horde/docs/?f=INSTALL.html installation  
documentation].
-
-When you are using preferences data from Horde 2.x with Horde 3.0,  
you have to delete all {{last_login}} preferences, as mentioned in the  
[http://www.horde.org/horde/docs/?f=UPGRADING.html#upgrading-horde-from-2-x-to-3-0-x upgrading instructions]. This could be done with an SQL statement  
like:
-<code>
-DELETE FROM horde_prefs WHERE pref_name = 'last_login';
-</code>
-
-+++ After logging in, users are always prompted to run maintenance.
-
-Similar to the problem above with last login time, you may have a  
corrupted preference value, in this case, the {{last_maintenance}}  
preference. You can clear it for all users on a SQL backend by running  
a statement such as:
-<code>
-DELETE FROM horde_prefs WHERE pref_name = 'last_maintenance';
-</code>
-
-The only side effect of this will be all users seeing the maintenance  
prompt one more time, and then it should behave normally.
-
-+++ Users using Internet Explorer always get a blank white screen.  
Other browsers work fine.
-
-Internet Explorer has known problems with the combination of HTTP-1.1  
keepalive and SSL encryption. Many Apache configurations use a  
!BrowserMatch or !SetEnvIf directive, like this one, to solve this  
problem:
-
-<code>
-SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown  
downgrade-1.0 force-response-1.0
-</code>
-
-++ Common error messages
-
-+++ "Database migration files not found. Please check PEAR's data_dir  
configuration setting."
-This error message is from Horde and appears if {{migration/}}  
directories from Horde Framework packages either cannot be located, of  
if the {{package.xml}} files for those packages cannot be parsed. The  
latter should log additional information to the Horde log file (syslog  
by default).
-
-A few things to check:
-
-* {{pear list-channels}} must include pear.horde.org
-* {{pear config-show horde_dir}} must point to Horde's webroot
-* The current command line user might have different (sytem or user)  
PEAR configuration files ({{pear config-show}})
-  * On some distributions (namely SUSE) there are different  
configuration directories compiled into the CLI and webserver/fpm  
versions of PHP, e.g. {{/etc/php7/cli vs. /etc/php7/apache2}}. Fix  
this by pointing them to the same directory for PEAR only with the  
{{PHP_PEAR_SYSCONF_DIR}} environment variable.
-
-+++ "Call to undefined function: _( )"
-This error occurs when PHP is not compiled with gettext support. As  
of version Horde 2.0, PHP needs to be compiled with gettext support.  
Rebuild PHP with the {{--with-gettext}} option to {{configure}}, or if  
using RPM's install the php-gettext RPM. ({{_()}} is a synonym for  
{{gettext()}} in PHP.)
-
-+++ "Document contains no data"
-The browser error message, "Document contains no data", only tells  
you that nothing was sent from the web server to the browser. In other  
words, something went quite wrong, yet you've no idea what.
-
-See [http://wiki.horde.org/FAQ/Admin/Troubleshoot#wsod A blank white  
screen appears]
-
-+++ "Failed opening test.php for inclusion"
-The set_perms.sh script and some packaged distributions change the  
permissions on the {{test.php}} script so that it can't be run. This  
increases the security of your web server by not revealing to  
intruders information about how PHP is compiled/configured or what  
Horde applications are installed. To use the script while setting up  
Horde, add read permission for your web server to the script:
-
-<code>
-chmod +r horde/test.php
-</code>
-
-Remember to remove read permission ({{chmod a-r}}) from the file when  
you have finished testing.
-
-+++ "Fatal error: Allowed memory size of ### bytes exhausted..."
-Either recompile PHP //without// the {{--enable-memory-limit}}  
option, or increase the value of {{memory_limit}} in your {{php.ini}}  
file.
-
-Note that when making a change to your {{php.ini}} file you will  
probably need to restart your web server software in order for the  
changes to become active.
-
-+++ "Fatal error: Undefined class name 'log' in ..."
-+++ "Failed opening 'Log.php' for inclusion"
-Your PHP PEAR implementation is missing the PEAR Log package. This is  
a common problem with the PHP 4.2.1 PEAR for example. You can install  
it via the network if you have a standalone php/pear command. See the  
file {{[http://www.horde.org/horde/docs/?f=INSTALL.html  
horde/docs/INSTALL]}} for more information on how to install the  
required PEAR packages this way. Otherwise you can download Log and  
other required PEAR packages (e.g. from http://pear.php.net/get/Log)  
and manually install them inside your PEAR directory. You may also  
need to install the modules Mail_Mime and Net_Socket. Horde's  
{{test.php}} script will give you an overview of which required PEAR  
packages are installed and which are missing.
-
-For more detailed instructions on installing PEAR modules, see the  
PEAR documentation at http://pear.php.net/manual/.
-
-+++ "Only variable references should be returned by reference"
-+++ "Only variables can be passed by reference"
-These messages appear after upgrading to PHP 4.4 or PHP 5.1. These  
PHP versions raise notices about reference usage that older version  
accepted happily. Only Horde 3.x and the H3 application versions are  
fixed to not cause these messages, so either upgrade to the latest  
versions, or set your error reporting level in PHP to exclude E_NOTICE  
level messages.
-
-E.g. in {{php.ini}}:
-
-<code>
-error_reporting = E_ALL & ~E_NOTICE
-</code>
-
-You can also turn off the display of error reporting entirely,  
although this might cause problems diagnosing problems in the future.   
After you get a good, working installation you can turn off the  
display of error messages to the browser and just log them.
-
-E.g. in {{php.ini}}:
-
-<code>
-display_errors = Off
-log_errors = On
-error_log = syslog ; goes to NT event log on NT-based machines
-; error_log = /var/log/php_error
-</code>
-
-Note that when making a change to your {{php.ini}} file you will  
probably need to restart your web server software in order for the  
changes to become active.
-
-+++ "output handler 'ob_gzhandler' cannot be used twice in..."
-**[Horde 2.x]:** You enabled output compression in both your php.ini  
configuration file and in your horde configuration file (either  
horde/config/horde.php or horde/config/conf.php). Disable it in one of  
these two locations. Current Horde versions check to see if the gz  
output buffer is in place before adding it again.
-
-+++ "top.opener.parent is not an object"
-This error is the result of a bug in Internet Explorer.  
[mailto:stuart at eclipse.net.uk Stuart] suggests that the following  
commands (executed on the Windows system on which Internet Explorer is  
installed) will solve the problem:
-
-<code>
-regsvr32 c:\windows\system32\actxprxy.dll
-regsvr32 c:\windows\system32\shdocvw.dll
-</code>
-
-The FAQ maintainer has //not// tested the above! Make sure you have a  
backup of your system before playing with deep Windows magic.
-
-+++ "Unable to load dynamic library php_whatever.dll - The specified  
module could not be found."
-
-This error message is a misrepresentation of the actual problem.  
Often occurs when some dependency needed for php_whatever.dll is  
missing.e.g. need to copy iconv.dll (from the dlls folder under to the  
php install directory) to windows\system32 to get php_gettext.dll to  
load.
-
-+++ "Unable to open VFS file for writing"
-If you see this message from kronolith or trean (or any other  
application that uses crontabs) you are running a crontab script as a  
different user as you did in the first run. Adjust your crontab  
(running it as same user as the webserver is a good idea) and also  
change the ownership of {{<your_vfs_root>/.horde}}.
-
-+++ "undefined function: bindtextdomain()"
-This error occurs when PHP is not compiled with gettext support. As  
of Horde 2.0, PHP needs to be compiled with gettext support. Rebuild  
PHP with the {{--with-gettext}} option to configure, or if using RPM's  
install the php-gettext RPM.
-
-+++ "undefined function: imap_open"
-This error is the result of using IMP without compiling IMAP support  
into PHP. Be sure that your PHP installation supports IMAP, and  
rebuild it with the {{--with-imap}} flag to configure if it does not  
(or install the php-imap RPM in an RPM installation).
-
-+++ "imap_utf7_decode: Unexpected end of string"
-+++ "undefined function: imap_utf7_encode()"
-This error most often occurs when IMP tries to use a folder name with  
an ampersand (&) in it. The easiest solution is to rename the folder  
to something without an ampersand in it (on the server, or with a  
different IMAP client).
-
-The error can also occur if IMAP support has not been compiled into  
PHP. Ensure that your PHP installation supports IMAP.
-
-+++ "undefined function: mysql_connect()"
-+++ "undefined function: mysql_pconnect()"
-This error occurs when IMP is configured to use !MySQL, but PHP was  
not built with support for !MySQL. Rebuild PHP, ensuring that !MySQL  
support is compiled in, and that the line
-
-<code>
-extension = mysql.so
-</code>
-
-appears in your {{php.ini}}
-
-+++ "Warning: Unable to open '/tmp/...'" when attaching
-On some systems (commonly Solaris and !FreeBSD), the  
{{upload_tmp_dir}} setting in {{php.ini}} must be set to {{/var/tmp}}.
-
-Note that when making a change to your {{php.ini}} file you will  
probably need to restart your web server software in order for the  
changes to become active.
-
-++ Verifying Components
-
-+++ How can I tell if my Web server works?
-Testing your webserver is straightforward: place a file containing  
some HTML (or even just some text) in the directory in which it  
expects to find its data (in Apache, {{!DocumentRoot}}), and make the  
file world-readable. Start up the webserver if it is not already  
running, and in your browser, load
-
-<code>
-http://hostname.example.com/filename
-</code>
-
-(substituting the name of the server and the filename as  
appropriate). If you see the contents of the file, your web server is  
running. If you receive an error, check your web server's error log to  
see what went wrong.
-
-+++ How can I tell if PHP works?
-The simplest way to test PHP is to create a file, {{phpinfo.php3}},  
somewhere under your web server's document root, with the following  
contents:
-
-<code type="php">
-<?php phpinfo() ?>
-</code>
-
-Upon accessing it with a browser, you should be presented with a  
summary of your PHP configuration. If you see the program text itself,  
your web server does not know to interpret the file with PHP.
-
-+++ How can I tell if Horde works?
-Horde includes a PHP program which will test both your Horde and PHP  
installations. If you have horde installed in the usual location,  
point your browser at
-
-<code>
-http://hostname.example.com/horde/test.php
-</code>
-
-Verify the following from the information {{test.php}} offers:
-
-* You are running a supported version of PHP.
-* Gettext support reads "Yes"
-* IMAP support reads "Yes"
-* If you plan on using !MySQL, !PostgreSQL, or LDAP, their "Support"  
lines read "Yes".
-* {{magic_quotes_runtime}} set to Off reads "Yes".
-* The session counter increments when the page is reloaded.
-* All the PEAR options return "Yes".
-
-This page also may have links to test pages for other installed  
modules, and/or links to other PHP information pages available.
-
-+++ How can I tell if my IMAP server works?
-The simplest way to test an IMAP server is to send mail to an account  
on the IMAP server, and then use a standard IMAP client like Netscape  
Mail, Outlook Express, PINE, mutt, or Eudora Pro to read the mail.
-
-If you don't have a standard IMAP client handy, or if a standard  
client fails, you can telnet to port 143 of your IMAP server and try  
the following exchange (where "normal" server responses are  
//emphasized//):
-
-   //* OK imap.example.com IMAP4rev1 v12.264 server ready//
-   {{0 login yourusername yourpassword}}
-   //0 OK LOGIN completed//
-   {{0 logout}}
-
-If you don't get {{OK LOGIN}}, then your server is probably  
misconfigured (unless you are using a specific authentication module  
such as Kerberos, in which case you will probably have to test it with  
a real IMAP client or the mtest program included with the UW-IMAP  
c-client distribution).
-
-+++ How can I tell if my database works?
-The most straightforward way of testing your database is to create  
the Horde databases themselves; if the creation proceeds without  
error, then the database is probably functioning normally.
-
-You can also use the following code, contributed by <chowes at ics.bc.ca>:
-
-<code>
-<html>
-<head><title>DB Test</title></head>
-<body>
-
-This is a test:<br>
-<?php
-
-function test()
-{
-    if (!($db = mysql_connect('localhost','root','yourpassword'))) return 1;
-    if (!mysql_query('create database testdb', $db)) return 2;
-    if (!mysql_select_db('testdb', $db)) return 3;
-    if (!mysql_db_query('testdb', 'create table testtest ( test  
char(60))', $db)) return 4;
-    if (!mysql_db_query('testdb', 'insert into testtest values  
(\'hello world!\')', $db)) return 5;
-    if (!($result = mysql_db_query('testdb', 'select * from  
testtest', $db))) return 6;
-    if (mysql_num_rows($result) > 0) echo mysql_result($result, 0, 0);
-    if (!mysql_db_query('testdb', 'delete from testtest', $db)) return 7;
-    if (!mysql_query('drop database testdb', $db)) return 8;
-    return 9;
-}
-
-$r = test();
-echo "<br>result code = $r";
-?>
-
-</body>
-</html>
-</code>
-
-Then, load the file with your browser. It will create a database, a  
table, and a row; put data into the row; then delete the row, the  
table, and the database. If successful, the output will read
-
-<code>
-This is a test: hello world!
-result code=9
-</code>
-
-If it does not, at least you can see where it breaks, by matching the  
result code with the {{return}} statement in the program; the line on  
which the matching return statement lies is the one which failed. For  
instance, if result code=1, then mysql isn't running, or a bad  
host/username/password has been entered.
-
-++ ((FAQ/Admin/Troubleshoot/IMP|Troubleshooting IMP))
-
-++ ((FAQ/Admin/Troubleshoot/Turba|Troubleshooting Turba))
-
-++ Troubleshooting Chora
-
-+++ Why do I get a //404, Object not found// error when clicking on  
any cvsroot subdirectories?
-Some web servers do not support PATH_INFO, or have it disabled by  
default, in which case this problem will arise. Try to disable  
PATH_INFO usage by setting {{$conf['options']['use_path_info']}} to  
false in {{horde/chora/config/conf.php}}.
-
-++ Troubleshooting Vacation
-
-+++ I get an "501 5.6.0 Data format error" error in the replay from Vacation
-I get the following error when setting up vacations using the  
Vacation Horde module.
-
-<code>
-The original message was received at Tue, 7 Mar 2006 17:03:07 +0100
-from xxx.senderdomain.com [xxx.xxx.xxx.xxx]
-
-   ----- The following addresses had permanent fatal errors -----
-"|/usr/bin/vacation xxx"
-    (reason: Data format error)
-    (expanded from: <xxx at example.com>)
-
-   ----- Transcript of session follows -----
-501 5.6.0 Data format error
-</code>
-
-find this line of code in your  
"pathtohorde/vacation/lib/Driver/forwards.php" file
-<code>
-// Try to change permissions, but ignore any errors.
-$this->_vfs->changePermissions('', '.forward', '0600');
-</code>
-and append the following after this line
-<code>
-$this->_vfs->changePermissions('', '.vacation.db', '0640');
-$this->_vfs->changePermissions('', '.vacation.msg', '0640');
-$this->_vfs->changePermissions('', '.vacation.dir', '0640');
-$this->_vfs->changePermissions('', '.vacation.pag', '0640');
-</code>
-delete your vacation entry using the vacation module and recreate it.
-Problem should be solved.
++Hacked By MR.Moein



More information about the commits mailing list