/framework/lib/jpgraph/docportal/chunkhtml/ch03s07.html
HTML | 88 lines | 88 code | 0 blank | 0 comment | 0 complexity | ef9f64bc3a8f1b52118638a037b9d61d MD5 | raw file
- <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>3.7. Troubleshooting the installation</title><link rel="stylesheet" href="manual.css" type="text/css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.74.0"><link rel="home" href="index.html" title="JpGraph Manual"><link rel="up" href="ch03.html" title="Chapter 3. The Long Version: Installing the Library"><link rel="prev" href="ch03s06.html" title="3.6. Verifying the library installation"><link rel="next" href="pt02.html" title="Part II. Basic graph creation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.7. Troubleshooting the installation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s06.html">Prev</a> </td><th width="60%" align="center">Chapter 3. The Long Version: Installing the Library</th><td width="20%" align="right"> <a accesskey="n" href="pt02.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2511832"></a>3.7. Troubleshooting the installation</h2></div></div></div><p>Unfortunately there are many parameters in a server installation that may affect
- the execution of PHP so the steps below can only give some indications of how to
- further investigate some potential problems.</p><p>Experience shows that most of the trouble are caused by either an old buggy
- version of the free-type TTF library or using an old antiquated version of the GD
- library. So before starting trouble shooting the scripts please make sure that you
- have an up to date PHP installation with the bundled version of the GD library (as
- describe in the previous sections) and a working FreeType library installed.</p><div class="orderedlist"><ol type="1"><li><p><span class="bold"><strong>No image is displayed.</strong></span></p><p>The first thing you should do is to isolate the problem by calling
- your graph script directly in the browser. There are then two variants
- of this problem. </p><p>
- </p><div class="orderedlist"><ol type="a"><li><p>No data is sent back from the server.</p><p>You can verify this by calling your graph script directly
- in the browser and then check the source (click "view
- source" menu item in the browser). If this is a truly blank
- image then no data was sent back from the browser.</p><p>This means that the PHP process has been terminated
- prematurely before it could send any data back. This could
- be caused by either the PHP process crashing (due to a bug
- in either PHP or your HTTP server) or the HTTP server
- crashed. This is often due to a broken PHP installation and
- more than often a problem with the True Type libraries. </p><p>It could also be caused by the PHP script running longer
- than the maximum allowed execution time (as specified in
- <code class="filename">php.ini</code>). The first thing you
- should do is to increase the maximum allowed execution time.
- If this does not solve the problem you should look in the
- log files for both your HTTP server and PHP to try to find
- clues to if the PHP process really crashed. Another
- possibility is that the PHP process uses more than the
- maximum allowed memory (as set in
- <code class="filename">php.ini</code>) and then it is terminated.
- So a good first step is to put some really high values for
- memory and time just to take away these parameters.</p></li><li><p>The data sent back is corrupt.</p><p>Depending on your browser this can show up differently but
- a common symptom is a "red X" in the browser. In order to
- debug this you should make sure that you have followed the
- steps in <a class="xref" href="ch03s03.html#sec2.config-dev-server" title="3.3.1. Configuring JpGraph/PHP on a development server">Section 3.3.1</a> to make sure you
- have output buffering disabled and have maximum error
- checking enabled in PHP. The most common cases for this type
- of problem is having enabled output buffering and some minor
- errors in the script which causes PHP to emit warnings which
- gets included in the image data. </p><p>A very common mistake is to have some white spaces in the
- script before the opening "<code class="code"><?php</code>". This
- white space will be added to the output buffer and then get
- mixed up with the image data causing the image data to be
- corrupt. A similar problem can occur if multiple newlines
- are added after the final <code class="code">"?>"</code>
- </p></li></ol></div><p>
- </p></li><li><p><span class="bold"><strong>An error message saying "Fonts are not available or not
- readable" </strong></span></p><p>When an image contains TTF fonts you might get an error message saying
- that the fonts are not available or not readable. If this is the case it
- is first necessary to check that the font files really exist in the
- directory that is specified in <code class="filename">jpg-config.inc.php</code>
- and that they are also readable by the HTTP/PHP process. If this is the
- case then it is necessary to check that the names of the font files are
- the one that JpGraph assumes, see <a class="xref" href="ch03s02.html#sec3.name-of-ttf-files" title="Name of TTF font files">the section called “Name of TTF font files”</a>. Another problem can be if
- the PHP installation is running in "safe mode" (See <code class="uri"><a class="uri" href="http://se.php.net/manual/en/ini.sect.safe-mode.php" target="_top">PHP
- Manual: Security and safe mode</a></code>) and has enabled strict
- directory policy via an "<code class="code">open_basedir</code>" restriction. This
- will prevent the PHP process from reading any files outside the
- specified base directory. If this is enabled there is no way around for
- PHP to read any files outside this restriction and any TTF files
- necessary must be moved so that they can be accessed within the realms
- of the specified basedirectory.</p><p>If you are running IIS and Win2k and get the error "Can't find font"
- when trying to use TTF fonts then try to change the paths to UNIX style,
- i.e. "<code class="filename">/usr/local/fonts/ttf/</code>". Remember that the
- path is absolute and not relative to the <code class="filename">htdocs</code>
- catalogue.</p><p>If you are running on Unix server please keep in mind that file names
- are case sensitive.</p></li><li><p><span class="bold"><strong>An error message saying "Headers have already been
- sent"</strong></span></p><p>A common mistake is to have a space in the beginning of the image
- script which the HTTP server will send back to the browser. The browser
- now assumes that the data coming back from this script is text since it
- hasn't received an explicit header. When then the image headers get sent
- back to the browser to forewarn the browser of the forthcoming image
- data the browser will not like that as it has already assumed the data
- stream was a text stream. The browser will then give the infamous
- "Headers already sent error".</p><p>Make sure that your script has no white space before the opening
- "<code class="code"><?php</code>" statement or a number of blank lines after
- the concluding "<code class="code">?></code>"</p></li><li><p><span class="bold"><strong>Issues specific to Windows and IIS</strong></span></p><p>Some windows installations seems to have a problem with a PHP script
- ending in more than one newline (This newline seems to be sent to the
- browser and will cause a <span class="italic">Header already sent error</span>). To correct this
- problem check all your scripts for more than one empty newline after the
- ending "<code class="code">?></code>" statement. All files provided with the library
- end in exactly one final newline and should not be a problem.</p></li><li><p><span class="bold"><strong>TTF fonts are not displayed correctly</strong></span></p><p>If the TTF fonts only shows up as yellow then the installation is used
- a buggy (too old) installation of the FreeType font library and the only
- thing to do is to re-install and setup PHP+GD again with a newer version
- of the FreeType library. Another symptom of a an (old) buggy FreeType
- library is that the fonts are not correctly rotated (the text string is
- rotated but not the individual characters).</p></li></ol></div><p>As a final advise you should read the FAQ (available in this manual
- see <a class="xref" href="apc.html" title="Appendix C. FAQ">Appendix C</a>) or on the JpGraph website at <code class="uri"><a class="uri" href="http://www.aditus.nu/jpgraph/jpgraphfaq.php" target="_top">http://www.aditus.nu/jpgraph/jpgraphfaq.php</a></code></p><p>Depending on your sever it might also help to recompile PHP yourself instead of
- the version included with the system. You can find typical configuration scripts to
- compile PHP4 and PHP5 in the appendices, see <a class="xref" href="api.html" title="Appendix I. Compiling PHP">Appendix I</a>
- </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="pt02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.6. Verifying the library installation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part II. Basic graph creation</td></tr></table></div></body></html>