﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="generator" content="Adobe RoboHelp 8">
<title>PHP Executables Preferences</title>
<link rel="StyleSheet" href="default.css" type="text/css">
<style type="text/css">
<!--
body { border-left-style:None;
border-right-style:None;
border-bottom-style:None;
background-color:Transparent;
border-top-style:None; }
-->
</style>
<style type="text/css">
<!--
body { border-left-style:None;
border-right-style:None;
border-bottom-style:None;
background-color:Transparent;
border-top-style:None; }
-->
</style>
<script type="text/javascript" language="JavaScript">
//<![CDATA[
function reDo() {
  if (innerWidth != origWidth || innerHeight != origHeight)
     location.reload();
}
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
	origWidth = innerWidth;
	origHeight = innerHeight;
	onresize = reDo;
}
onerror = null; 
//]]>
</script>
<style type="text/css">
<!--
div.WebHelpPopupMenu { position:absolute;
left:0px;
top:0px;
z-index:4;
visibility:hidden; }
p.WebHelpNavBar { text-align:right; }
-->
</style>
<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
<script type="text/javascript" language="javascript" src="whver.js"></script>
<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
<script type="text/javascript" language="javascript1.2" src="whlang.js"></script>
<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
<script type="text/javascript" language="javascript1.2">//<![CDATA[
<!--
if (window.gbWhTopic)
{
	var strUrl = document.location.href;
	var bc = 0;
	var n = strUrl.toLowerCase().indexOf("bc-");
	if(n != -1)
	{
		document.location.href = strUrl.substring(0, n);
		bc = strUrl.substring(n+3);
	}

	if (window.setRelStartPage)
	{
	addTocInfo("Reference\nPHP Preferences\nPHP Executables Preferences");
addAvenueInfo("Reference","new_project_layout_preferences.htm","php_interpreter.htm");

	}

	document.write("<p style=\"text-align:left\"> ");
AddMasterBreadcrumbs("ide_help.htm", "", "&gt;", "Home", "pdt_table_of_contents.htm");
document.write("<a href=\"reference.htm\">Reference<\/a> &gt; <a href=\"preferences.htm\">PHP Preferences<\/a> &gt; PHP Executables Preferences<\/p>");


	if (window.setRelStartPage)
	{
	setRelStartPage("ide_help.htm");

		autoSync(0);
		sendSyncInfo();
		sendAveInfoOut();
	}

}
else
	if (window.gbIE4)
		document.location.reload();
//-->
//]]></script>
</head>

<body leftmargin="5" topmargin="5" rightmargin="5" bottommargin="5"><script type="text/javascript" language="javascript1.2">//<![CDATA[
<!--
if (window.writeIntopicBar)
	writeIntopicBar(4);
//-->
//]]></script>
<div style="width: 100%; position: relative;" id="header">
	
	
 <p align="right"><a 
	 title="Documentation Survey" href="http://spreadsheets.google.com/viewform?formkey=dC1scEswTjFia2tDQ3Y5TVJBbkNQcWc6MQ">Documentation 
	 Survey</a> 
	 | <a href="javascript:crlf=&quot;&quot;;h=location.href;t=document.title;e = &quot;&quot; + (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text); if (e!=null) location=&quot;mailto:documentation@zend.com&quot; + &quot;?Subject= Feedback on PDT for page &quot; + escape(t) + &quot;&amp;Body=&quot; + escape(e).replace(/ /g, &quot;+&quot;) + crlf + &quot; &quot;; void 0"><span 
	 style="background-color: #ffffff;">Submit Documentation</span><span 
	 style="background-color: #ffffff;"> Feedback</span></a><span 
	 style="background-color: #ffffff;"></span><span style="background-color: #ffffff;"> 
	 </span><span style="background-color: #ffffff;">| 
	 </span><span 
	 style="background-color: #ffffff;"><a title="View Latest Version and Get PDF Online" 
											 href="http://www.zend.com/en/resources/zend-documentation/" 
											 target="_blank">View Latest 
	 Version and Get PDF Online</a></span></p>
</div>


<h1>PHP Executables Preferences 
 </h1>
<p>The PHP Executables Preferences page allows you to add, edit, remove 
 and find PHP Executables.</p>
<p>The internal debugger in the defined PHP Executable is used for <a href="locally_debugging_a_php_script.htm">local 
 PHP Script debugging</a>.  </p>
<p class="Note">Note:</p>
<p class="NoteText">You must configure 
 a PHP Executable before you can debug locally.</p>
<p>The PHP Executables Preferences 
 Preferences page is accessed from Window | Preferences | PHP | PHP Executables Preferences 
 .</p>
<p class="picture"><img src="php_executables.png" alt="php_executables.png" style="border: none;" width="352" height="256" border="0"></p>

<table cellspacing="0" width="100%">
	<col style="width: 7.093%;">
	<col style="width: 92.907%;">
	<tr valign="top">
		<td style="width: 7.093%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-size: 6pt;">&#160;</p></td>
		<td style="width: 92.907%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-weight: bold;">&#160;</p></td>
	</tr>
	<tr valign="top">
		<td style="width: 7.093%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-size: 6pt;"><img src="ref_icon.png" alt="Instructions on how to complete a procedure" title="Instructions on how to complete a procedure" style="border: none;" width="28" height="33" border="0"></p></td>
		<td style="width: 92.907%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-weight: bold;"><a name="add_executable" id="add_executable"></a>To 
		 add a PHP executable to the list:</p>
		<ol type="1">
			<li class="p" style="margin-left: -20px;"><p>Click Add.<br>
			The Add PHP Executable dialog will appear.</p></li>
		</ol>
		
		<p class="FIgureCaption"><img src="php_executable_add_pdt.png" alt="php_executable_add_pdt.png" style="border: none;" width="431" height="203" border="0"></p>
		
		<ol start="2" type="1">
			<li class="p" style="margin-left: -20px;"><p>Enter a name for 
			 the PHP Executable.</p></li>
			<li class="p" style="margin-left: -20px;"><p>In the Executable 
			 path selection, enter the location of the PHP executable on 
			 your file system.</p></li>
			<li class="p" style="margin-left: -20px;"><p>Select the PHP 
			 ini file to be associated with the PHP Executable by clicking 
			 Browse (optional).</p></li>
			<li class="p" style="margin-left: -20px;"><p>Select the PHP 
			 Debugger to be used with the executable. By default this will 
			 be the Zend Debugger.</p></li>
			<li class="p" style="margin-left: -20px;"><p>Click Finish.</p></li>
		</ol></td>
	</tr>
	<tr valign="top">
		<td colspan="2" style="width: 100%; padding-right: 10px; padding-left: 10px;"><p>The 
		 PHP executable will be added to your list.</p></td>
		
	</tr>
</table>
<table cellspacing="0" width="100%">
	<col style="width: 7.093%;">
	<col style="width: 92.907%;">
	<tr valign="top">
		<td style="width: 7.093%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-size: 6pt;">&#160;</p></td>
		<td style="width: 92.907%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-weight: bold;">&#160;</p></td>
	</tr>
	<tr valign="top">
		<td style="width: 7.093%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-size: 6pt;"><img src="ref_icon.png" alt="Instructions on how to complete a procedure" title="Instructions on how to complete a procedure" style="border: none;" width="28" height="33" border="0"></p></td>
		<td style="width: 92.907%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-weight: bold;">To search for a PHP executable 
		 on your local file system:</p>
		<ol type="1">
			<li class="p" style="margin-left: -20px;"><p>Click Search.</p></li>
			<li class="p" style="margin-left: -20px;"><p>In the Directory 
			 Selection dialog, select the folder to search.</p></li>
			<li class="p" style="margin-left: -20px;"><p>Click OK. PDT will search 
			 for PHP executables in the location specified.</p></li>
		</ol></td>
	</tr>
	<tr valign="top">
		<td colspan="2" style="width: 100%; padding-right: 10px; padding-left: 10px;"><p>Any 
		 found PHP executables will be added to the list.</p>
		<p>To change the name of the new PHP executable, select it from 
		 the list and click Edit.</p>
		<p>If a PHP executable is not found in the specified directory, 
		 select a different location or add the PHP Executable manually 
		 by following the instructions under '<a href="#add_executable">To 
		 add a PHP executable to the list</a>', above.</p></td>
		
	</tr>
</table>


<table cellspacing="0" width="100%">
	<col style="width: 7.093%;">
	<col style="width: 92.907%;">
	<tr valign="top">
		<td style="width: 7.093%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-size: 6pt;">&#160;</p></td>
		<td style="width: 92.907%; padding-right: 10px; padding-left: 10px;"><p>&#160;</p></td>
	</tr>
	<tr valign="top">
		<td style="width: 7.093%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-size: 6pt;"><img src="link_icon.png" alt="link_icon.png" style="border: none;" width="32" height="40" border="0"></p></td>
		<td style="width: 92.907%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-weight: bold;">Related Links:</p>
		<p><a href="php_support.htm">PHP Support</a> </p>
		<p><a href="php_interpreter.htm">PHP Interpreter Preferences</a> 
		 </p></td>
	</tr>
	<tr valign="top">
		<td style="width: 7.093%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-size: 6pt;">&#160;</p></td>
		<td style="width: 92.907%; padding-right: 10px; padding-left: 10px;"><p>&#160;</p></td>
	</tr>
</table>
<div style="width: 100%; position: relative;" id="footer">
	
 <p style="text-decoration: underline; " 
										 align="center">PHP Development 
	 Tools</p>
	
	
</div>
<script type="text/javascript" language="javascript1.2">//<![CDATA[
<!--
if (window.writeIntopicBar)
	writeIntopicBar(0);

highlightSearch();
//-->
//]]></script>
</body>
</html>
