Application Root

Note that upload folders and audit trail folder are relative to application root. This enables the user to put the uploaded files and the audit trail log files in folder outside of the script folder. (In older versions, the file upload folder is relative to the script, it was supposed to be a subfolder under the script.)

Where is the application root? PHPMaker scripts looks for the application root in the following sequence:

 

1. Root Relative Path

Root Relative Path is the path relative to destination folder. The destination folder is the folder where the generated scripts reside.

When you generate scripts, you must specify the [Application root folder] and the [Destination folder] correctly based on your folder structure. The relative folder structure on your local computer must be the same as that on your production server.

For example, if you put the generated scripts in a subfolder,

In this case, the Root Relative Path is therefore the parent folder of the script, i.e. "..". The scripts will use this relative path to find the application root.

It is recomended that you set the [Application root folder] to the root folder of your Website where is accessed by http://www.mycompany.com/ so you can specify your upload folder and audit trail folder straightforwardly using the Website root as a starting point. For example, if you specify "upload/" as upload path, since it is relative to application root, the upload folder will be accessible by http://www.mycompany.com/upload/.

On your testing server, you may work with multiple projects and test your projects one folder level lower at http://localhost/<projectname>/ (cf. http://<projectname>/). In this case you should set the [Application root folder] in each project as the root folder of the project (the folder that is accessed by http://localhost/<projectname>/). After uploading to the production server, the site may be then accessed by http://www.mycompany.com/ (cf. http://localhost/<projectname>/), but as long as the relative location of the two folders (Application Root folder and the script folder) are the same, the scripts will still work properly.

 

2. Document root

If Root Relative Path is empty, the script checks the following variables: $_SERVER["APPL_PHYSICAL_PATH"].

If you use IIS on Windows (e.g. you are using PHP with MS Access or SQL Server on Windows), this variable should return the physical path of the application root of your web site, read Creating Virtual Directories in IIS in Introduction to PHP and MySQL.

If Root Relative Path is empty, the script checks the following variables: $_SERVER["DOCUMENT_ROOT"] or $_ENV["DOCUMENT_ROOT"].

If you use Apache, it is usually the physical path of your Website root. e.g. On Linux, it may return

/home/username/public_html which can be accessed by http://www.mycompany.com/

You can put your generated scripts in your Website root, or you can put the generated scripts in a subfolder under your website root, e.g.

/home/username/public_html/scripts which can be accessed by http://www.mycompany.com/scripts/

When you generate scripts, you still need to specify the [Application root folder] and the [Destination folder] based on your folder structure so that the relative location of the two folders is correct.

 

3. Script Path

If both Root Relative Path and Document Root are empty, the script will use the path of the current script.

 

4. Custom Path

The above three approaches should handle most cases. If in some special cases they don't return the path you want, you can modify the function ew_AppRoot() in phpfn*.php. You can simply specify your real server path directly. For example,

Windows:

function ew_AppRoot() {
    return 'C:\Inetpub\wwwroot\MyWebRoot\'; // replace with your real server path directly, include the trailing path delimiter   
}

Linux/Unix:

function ew_AppRoot() {
    return '/home/username/public_html/';
// replace with your real server path directly, include the trailing path delimiter   
}

Remember that you must also check the value of the constant EW_ROOT_RELATIVE_PATH, make sure it correctly points to your application folder relative to the script folder. Using above example, you specify that the application root is "C:\Inetpub\wwwroot\MyWebRoot", if your scripts are placed in "C:\Inetpub\wwwroot\MyWebRoot\MyScripts\", then EW_ROOT_RELATIVE_PATH should be "..".

TIP: You can call the PHP function phpinfo() (i.e. <?php phpinfo(); ?>) to view your server information, including the server paths. Alternatively, in the generated scripts (that includes phpfn<version>.php), you can call the PHPMaker function ew_WritePaths() (i.e. <?php echo ew_WritePaths(); ?>) to view the path settings in your project.

 



 ©2002-2012 e.World Technology Ltd. All rights reserved.