1 - Getting Started with Phalanger

1.1 - Specifications

Requirements

The Phalanger is a Microsoft .NET Framework application. It requires the Microsoft .NET Framework 1.1 which is currently available only for the Windows platform. Microsoft Windows 2000,Windows XP Professional, and Windows 2003 Server are recommended operating systems for this application.

Integration with ASP.NET is the principal feature of Phalanger. This requires Internet Information Services (IIS) with ASP.NET installed. The ASP.NET is installed automatically for IIS-enabled systems with the .NET Framework setup.

To benefit from the additional Visual Studio integration feature a Microsoft Visual Studio 2003 with Visual Studio Integration Partners (VSIP) package has to be installed. The package is included in the Phalanger distribution.

Features

The Phalanger is a complex solution giving web-application developers the ability to benefit from both the ease-of-use and effectiveness of the PHP language and the power and richness of the .NET platform. This solution enables developers to painlessly deploy and run existing PHP code on an ASP.NET web server and develop cross-platform extensions to such code taking profit from the best from both sides. Compatible with PHP 5.0, the object model in Phalanger enables to combine PHP objects with the .NET ones. It is possible to use a class written in PHP from a .NET application or even to import a .NET class (written for example in C# or Visual Basic .NET) into PHP scripts provided that this class respects the Phalanger object model.

From the other point of view, Phalanger provides the .NET programmers with the giant amount of practical PHP functions and data structures - many of them reimplemented in the managed environment of the .NET Framework. The whole library of PHP functions and classes (including those implemented in the PHP extensions) is accessible to a .NET programmer regardless to his or her favorite programming language together with type information.

Not to omit the greatest, it must be stated that the compilation of PHP scripts gives yet more power to the existing PHP web applications inside the Phalanger environment. All the static (run-time immutable) code in the scripts gets parsed and compiled only once and all following accesses to a page benefit from the unleashed execution of the native compilation of the script. Yet the usage of Phalanger is not limited to web applications. The compiler supports output of standalone executables or dynamic link libraries enabling you to create managed PHP console applications or library modules reusable from any other .NET Framework application.

For last but not the least, the Phalanger will allow you to develop PHP applications from your favorite Visual Studio. Distributed with the Visual Studio Integration Partners Package, the Phalanger integrates into the Microsoft Visual Studio .NET 2003 to provide you with a customized PHP project type enabling integrated compilation and debugging of PHP scripts.

1.2 - Introduction to Phalanger

The Phalanger is a powerful solution for all the web-application developers who wish to get as much as possible from their PHP skills while staying on the Windows platform.

As a Phalanger-enabled developer you can easily produce and deploy powerful web applications in your favorite PHP language without the need for switching from your Visual Studio. You can benefit of the rapid development of a PHP script combined with the richness of the function libraries inside of the PHP extensions and the power and the robustness of the .NET Framework. Go find out more on Visual Studio Integration to Section 3.4.

With Phalanger you may reuse your PHP code in any .NET Framework application. Just compile your scripts as a Phalanger Library and reference it in your application. Read more about the Phalanger Console Applications and Libraries in Section 3.2.

In addition to PHP application development you may of course easily benefit of the whole Phalanger Class Library functionality in your .NET applications. The Class Library is designed to be easy to use whether from PHP scripts or .NET applications. You may even use the functionality provided by the PHP extensions in your managed code as simply as if you were using .NET Framework classes and methods. Refer to Using the Class Library and Extensions in Section 3.2 for more information.

In all the above scenarios the Phalanger beats its opponents in the overall performance. In contrast to the original PHP interpreter, our module is compiling the scripts into the MSIL (Microsoft Intermediate Language). While the first page access is delayed due to compilation, all following accesses benefit of the fast execution of the native code which is always far more effective than script interpretation. This gain is most important in case of common PHP-script libraries (for example PHPLIB, PEAR, Nuke etc.) which are complex yet immutable and thus their script files are compiled only once. On the other hand there may be some code in the PHP scripts which is not known in the time of compilation and has to be compiled at run-time. Although this procedure handicaps script compilation a little, it is known that PHP constructs imposing run-time compilation are used rather rarely and if, there is not much code to deal with.

The Phalanger is the best choice for heavy load enterprise web-applications where you get the most of the robustness and the scalability of the underlying ASP.NET infrastructure while keeping the ease of development and management of the PHP code. Thanks to the sophisticated caching mechanism of the ASP.NET applied on the Phalanger compilations, the effect of pre-compilation time penalty is soon compensated by the time-saving native execution on heavy traffic sites.

The principal goal of the Phalanger project is to enable full functionality of existing PHP scripts without any modification. The only condition is that these scripts do rely neither on special functionality provided by the UNIX platform or the Apache server nor on undocumented, obsoleted or even faulty functionality of the PHP interpreter. A code not requiring such special support from the platform may be deployed just by copying into a virtual directory and a few configuration settings.

1.3 - Sample Applications

We added several sample applications to the installation package to make you familiar with the Phalanger features as quickly as possible. Those samples comprise of several PHP web pages, PHP console applications, applications written in C# using the Phalanger to access extensions and finally an example of an extensibility of the Phalanger Class Library. To test the sample applications immediately after installation you can click on shortcuts created during installation in your Start menu (folder Phalanger, subfolder Samples). If you have chosen the “Install web application samples on web server” option during the installation, shortcuts to the sample web applications would also be added to the menu. Then if you click on a web page shortcut, a new window of your default browser will be opened and the respective web application will be started. Note that the first request to an application is always a little bit delayed but the following ones are as fast as the compiled code executes on the .NET Framework.

A list of applications shipped with the Phalanger follows. There is a shortcut to each of them added to the Start menu during installation.

  • A web application containing several elementary scripts

Three scripts working with HTML forms, uploaded files, session and configuration are installed to a virtual path http://localhost/SimpleScripts/Index.html where they can be run from.

  • A web application containing a set of scripts working with extensions

A script drawing to an image via the gd2 PHP extension and a script generating a PDF file via the pdf extension can be found on the http://localhost/Extensions/Index.html virtual path.

  • Interactive tester of the Phalanger features web application

We developed an interactive tester which takes PHP scripts source codes and executes them. It shows the output and the source code of selected script. This application can be used for comfortable interactive testing of the Class Library functions, for example.

  • Simple PHP console applications

Four console applications which illustrate the calls to the class library file-system functions, inclusions and usage of the PHP 5 classes, input from a console and finally a simple calculator. Applications source files are supplied in a form of VS.NET 7.1 solution containing four PHP projects. The solution is placed in:

{Install Directory}\Samples\ConsoleApplication\ConsoleApplication.sln.

A shortcut to this location is added to the Start menu during installation.

  • Three examples of how to use PHP extensions from the C# programming language

Three C# console applications which present how the extensions exif, ming and zlib can be called from the C# programming language. A VS.NET solution containing all three C# projects is placed in {Install Directory}\Samples\Extensions\Extensions.sln

  1. Exif extension sample – Uses the exif extension to extract EXIF headers from an image file.
  2. Ming extension sample – Uses the ming extension to create a Flash movie with a rotating red square. The movie is saved as “ming_test.swf” in the current directory.
  3. Zlib extension sample – uses the zlib extension to create a .gz file and compress a string.
  • An example of how to extend the Phalanger Class Library

The Phalanger Class Library comprises of a set of assemblies containing implementations of PHP library functions, constants, classes and interfaces. The base class library (PhpNetClassLibrary.dll) contains about 450 PHP functions nowadays which are documented in the PHP manual as built-in functions. Reference to this library is placed to your Machine.config during installation and hence will be automatically available to all Phalanger applications. Phalanger also comes with a managed implementation of the mssql extension (PhpNetMsSql.dll) and dozens of native PHP extensions wrapped by managed wrappers. In order to use these extensions, a reference to the corresponding assemblies must be added to a configuration file. This can be done on a global level (Machine.config) or on a per-application level (Web.config or <application>.exe.config). Plase see the aforementioned sample applications for details.

If you find that you need some functionality which is not supported by this version or the Phalanger or even some that is not available in the original PHP function set you can add your own functions, constants, classes and interfaces written in an arbitrary .NET language (e.g. in C#, VB.NET etc.). Although it is not so difficult to extend the Class Library, some basic knowledge of the Class Library principles is needed. So if you want to implement your own functions, constants, classes or interfaces you are encouraged to read the Phalanger Class Library Developer’s Documentation. Note that in the current version of Phalanger extending the Class Library with new PHP classes is not recommended since it is quite complex. It will be easier to do so in the next version.

2 - Installation

Download installation packages from http://www.php-compiler.net and run the Setup.exe file. The installation procedure consists of four steps:

A) Microsoft .NET Framework 1.1 is installed on your system.

This step is skipped if you have .NET Framework 1.1 already installed. Note that the .NET Framework version required by Phalanger is exactly 1.1, which is not a problem as side-by-side installation of more .NET Framework versions is fully supported.

B) The Phalanger Core, Compiler, Class Library and tools are installed on your system.

The installer lets you decide whether you want it to integrate Phalanger with IIS. If you choose to perform the integration, several virtual directories with sample applications will be created on your localhost IIS web site. If you do not let the installer perform the integration, you can set up your IIS manually by following these instructions:

  1. Open the Computer Management snap-in by right clicking on My Computer and then choosing Manage.
  2. Expand Services and Applications and Internet Information Services. If you see no Internet Information Services node, you do not have IIS installed on your system. If this is the case, go to Control Panel, Add or Remove Programs, Add/Remove Windows Components and install IIS.
  3. Under Internet Information Services locate the Web Sites node and pick the web site that you wish to integrate Phalanger to.
  4. Right click on the web site and choose New and then Virtual Directory… Enter an arbitrary alias, choose a target directory that contains your PHP scripts and finish the wizard leaving Access Permissions in their default state. Ensure that the user under which ASP.NET is running (usually ASPNET) has appropriate privileges on the target directory (right-click on the directory in Windows Explorer, choose Propertiesfrom the pop-up menu and the card Security for the list of privileges). If IIS is configured to use an account for anonymous access to the web site or virtual directory (right-click on the virtual directory you&#8217;ve just created, click on Directory Security card and then click on button Edit… in the part Anonymous access and authentication control) you should also ensure that this account has appropriate privileges set on the target directory.
  5. If you have the .NET Framework 2.0 installed along with the .NET Framework 1.1 the ASP.NET tab would be present in the virtual directory properties. Click on this tab and set the ASP.NET version to 1.1 if it is set otherwise.
  6. Now right click on the newly created virtual directory and choose Properties. In the properties dialog, click the Configuration button and add the following mapping:

    Executable: $WinDir$\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
    (replace $WinDir$ by your Windows directory - usually C:\Windows)
    Extension: .php

  7. Go back to the virtual directory properties and switch to the Documents tab. You can optionally add default documents (for example index.php, default.php) that will open when clients specify no file.
  8. Close the properties dialog. Your web site should now be set up for the Phalanger.

The installer will copy all files to the chosen directory and place copies of several assemblies into the Global Assembly Cache (GAC). The Phalanger configuration section is automatically added to the Machine.config configuration file that is located in:

$WinDir$\Microsoft.NET\Framework\v1.1.4322\CONFIG

Shortcuts to the Phalanger Command Prompt, samples and user reference are created in the Phalanger start menu folder.

Directory structure created in the chosen target directory:

Directory Description
\Bin Binaries of the core, compiler, class library and tools. The Phalanger Command Prompt start menu shortcut appends this directory to the PATH environment variable.
\Doc User reference documentation.
\Dynamic Contains pre-generated dynamic wrappers of class libraries.
\Extensions Contains a set of PHP extensions that have been tested with Phalanger and some of their dependencies.
\Samples Non-web samples. Available from the Phalanger start menu folder through shortcuts.
\TypeDefs Contains type definition files used for generating managed wrappers of extensions.
\WebRoot Web samples. If you’ve chosen to integrate Phalanger with IIS, these samples are accessible at http://localhost/SimpleScripts, http://localhost/Extensions and http://localhost/Luboss.
\Wrappers Contains pre-generated managed wrappers of PHP extensions. The installer places all wrappers into GAC during installation.

Note on PHP Extensions

Please note that no PHP extension in the Extensions directory is enabled by default. To do so, either edit your Machine.config file or create your application’s configuration file Web.config or <application>.exe.config. The Extensions\dlls directory contains dependencies of some extensions. The installer can copy these dependencies to the

$WinDir\System32

directory for you. Please read Extensions\dlls\readme.txt. To use a PHP extension that is not distributed with Phalanger, follow these steps:

  1. Make sure that the extension is intended to be used with PHP 4. PHP 5 extensions are not supported.
  2. Place the extension into the Extensions directory.
  3. (Optional, advanced) Write a type definition file named [extension_name].xml and put it into the TypeDefs directory. Please see the Developer’s Guide for details on type definition files.
  4. Execute Bin\extutil -w to generate a managed wrapper of the extension.
  5. Verify that a new file named [extension_name].mng.dll was created in the Wrappers directory and add it to GAC. Now you can use the extension.

C) The Visual Studio Integration Partner Package is installed on your system.

This step is enabled only if Visual Studio .NET 2003 is detected on your system. VSIP is a required component for Phalanger Visual Studio Integration. Make sure that you install the Visual Studio .NET Environment SDK feature.

D) Visual Studio .NET 2003 Integration is installed on your system.

This step is enabled only if Visual Studio .NET 2003 is detected on your system. The installer has no configurable options and creates no start menu folders. If the installation was successful, you should see the Phalanger icon on Visual Studio splash screen and in Help - About…

3 - Usage of the Phalanger

The Phalanger project is a complex solution for PHP application development and deployment. Please note that Phalanger is a tool rather that a product and thus the following chapter describes the various situations the Phalanger can be helpful to application developers. If you are interested in ready-to-use applications please refer to the Sample Applications in Section 1.3).

3.1 - Using the Class Library and Extensions from C#

The Phalanger Core and the Class Library are offering many classes and methods which can other programs on the .NET platform benefit from. Besides, the managed wrappers of the PHP extensions allow the .NET programmers to use any function provided by a PHP extension. Although the Phalanger was primarily developed to introduce the PHP language to .NET platform, the first straightforward deployment scenario is to reference its assemblies in other .NET programs. It suffices to place references to the Core or the Class Library assemblies to the list of referenced assemblies of your program and then you can use classes from the namespace PHP.Library (the Class Library) and PHP.Core (the Core). If you want to use managed wrappers just add a reference to those which you are interested in. There is a sample application on this scenario in the Samples (see Section 1.3).

3.2 - Creating Phalanger Console Applications and Libraries

If you are programming in the PHP language you can now use this language to write console applications or class libraries. This is the second possibility how to use the Phalanger.

A console application is produced by the phpc command-line compiler if it receives the /target:exe option. A library of PHP functions and classes is generated if the /target:dll option is supplied. To display the list of command-line compiler’s options type phpc /help on the command line. The shell window with predefined paths to the compiler can be opened via the shortcut “Phalanger Command Prompt” which is added to your Start menu.

Although you can use command-line compiler to compile your PHP console applications and libraries there is another more convenient way provided by the Phalanger. If you install VS.NET integration, you can create a PHP project in the VS.NET and compile applications from there which is quite more comfortable.

Console applications and libraries comprise of a set of scripts which are compiled together into one multi-module assembly. There is no major difference between a console applications and a library. The only one is that the library is not executable. Each executable assembly should have a method called entry point by which its execution is started. For C# console applications the entry point is always the public static method Main() of the class chosen by the user in the C# project properties or supplied on the command line of csc C# compiler. In the case of the Phalanger the user chooses a script which is started as the first one. This can be set in the PHP project properties or by supplying an option /entrypoint to the phpc command-line compiler. See the Section 1.3) for samples.

If you distribute your Phalanger console application you should distribute the Phalanger along with it. However, it suffices to copy a PhpDotNet.msi installation package since the others are not necessary to run the application.

As it is usual on the .NET platform a console application which executable is named App.exe reads its configuration from the file App.exe.config located in the same directory. The prototypic configuration file (named Application.config) for the console applications containing all supported configuration options along with their default values and respective PHP names can be found in the {Install Directory}/Samples. So you can copy it to the bin directory of you application, rename it and modify it. Note, that only those options whose values differ from the default ones need to be stated in that file. The others can be omitted.

3.3 - Deploying Phalanger Web Applications

The most complex and also the most powerful features of the Phalanger focus the world of web applications. A web application written in the Phalanger has much in common with the applications written in the ASP.NET since the Phalanger is integrated into the ASP.NET and exploits its great features such as the configuration management, session handling, file uploading, source code modification watching and much more. So, if you are familiar with ASP.NET, you will find Phalanger web applications similar to the ASP.NET ones.

A Phalanger web application comprises of script source files placed in a virtual directory on the IIS web server. This directory should be configured as a web application as it is described in Chapter 2. Some sample web applications are installed if you have chosen so in the Phalanger installation.

The application is configured by the Web.config files which may be placed in any subdirectory of the virtual directory. Configuration contained in theWeb.config file is applied on all scripts in the directory where it is placed and in all subdirectories as it is usual in the ASP.NET web applications. The Phalanger has many configuration options which can be set in the Web.config file. The prototypic Web.config file which contains all supported configuration options along with their default values and respective PHP names can be found in the directory {Install Directory}/WebRoot/Samples/SimpleScripts. If you are configuring your own application, you don’t need to state all options in your configuration file but only those which values differ from the default ones.

Since the Phalanger handles requests, sessions and file uploading via ASP.NET, the following ASP.NET configuration options are also applicable (see ASP.NET documentation at MSDN for details):

  • section system.web, node globalization
  • section system.web, node sessionState
  • section system.web, node httpRuntime

Since the source files of the web applications are placed on the server in the virtual directory, they can be modified while some requests are still pending. This is handled correctly by the Phalanger (in the same way as the APS.NET does). So you can modify source files without caring about how they are recompiled because the Phalanger does it for you automatically.

There are some sample web applications shipped with the Phalanger as described in the Sample Applications in Section 1.3).

3.4 - Using the Phalanger from within the VS .NET 2003

Integration of the PHP language Microsoft Visual Studio .NET 2003 brings a comfortable development of PHP applications. A new Project of type Phalanger can be created to manage multiple PHP scripts in a single environment with much more than compilation control and syntax highlighting.

Getting started

Please make sure that the Visual Studio 2003 development environment is not running while installing the integration. After the Phalanger Visual Studio Integration is installed, open the environment.

First of all create a new Phalanger project:

  1. In the File menu select New | Project (or press Ctrl+Shift+N) to open the “New Project” dialog box.
  2. In the tree view at the left click Phalanger Projects.
  3. Select the icon Phalanger Project in right pane.
  4. Fill in the name for your new project into the “Name” edit box.
  5. Select the root directory where you new project should be created in the “Location” edit box.
  6. Click the “OK” button.

A new solution with one Phalanger project in it is created.

You can add new or existing files through the project context menu:

  1. Right click your project in the Solution Explorer and select Add|New Item… or Add | Existing Item…
  2. An appropriate dialog box will be displayed. Select an existingphp source fileor choose the location and filename for the new one.
  3. Click “Open” to open the source file in text editor.

Now you are ready to write your first Phalanger application. Let’s for example try this code:

<?php
  $x = "Hello World!";
  echo $x;
  sleep(3);
?>

Now choose Build Project or Rebuild Project from the Build menu. A console application (an .exe file with the name of the project) is created. Press the F5 key to start it. You should see a console window with a “Hello world!” greeting for a while.

Project build properties

There are several options that may be set to Phalanger compiler to gain more control on the compilation process. All these options are easily accessiblevia the project property page.

Right click a Phalanger project in the Solution Explorer and choose Properties.

A Project Property Pages dialog box will appear. Select Build in the tree view at the left if it is not already selected. You can controlhow your application is compiled in this dialog box:

Basic settings

  • Assembly name

The name of assembly (file) that will be generated. Simply the name of compiler’s output file. This file is an executable (ifConsole Application is selected - see below) or dynamic link library (if Class Library is selected).

  • Generate debug information

Whether or not generate a PDB file with debug symbols. If this option is checked, some additional checks are generated to the resulting code too.

  • Output path

A directory where the output file(s) will be stored in.

  • Project type

If Console Applicationis selected, an executable file is the result of the compilation. If Class Libraryisselected, the result is dynamic link library. You can reference this DLL from other projects to access classes or functions declared in the library.

  • Entry point

Is active only if theConsole Application project type is selected. If you have more php source files in your project and start resulting .exe file, it is obvious where the execution should start. Here you can specify the file that will be executed. Other files should be included to this file; otherwise their code is never reached. If this entry point is not specified, it is the first file in the project.

Advanced settings

  • Match include regular expression

When compiler processes an inclusion expression it tries to match it against this .NET regular expression (using Regex.Match). If it matches the inclusion is not deferred to runtimethat makes it more efficient, otherwise the inclusion is processed in run-time using include_path configuration option. E.g. “([^”])*“ matches string literals in double quotes and marks their content as a group 1.

  • Replace include regular expression

A .NET regular expression replacement pattern. If inclusion expression matches it is replaced with this .NET regular expression replacement pattern (see method Match.Replace for details). A result of the replacement is treated as a path to the included script and should be either relative to the application source root or absolute. E. g. DirInsideSourceRoot/Subdir/$1 which means a group #1 marked by the regular expression is inserted in the place of $1.

  • Use subnamespaces

User defined classes are compiled into .NET types. Those types are placed into the PHP.User.subnamespace namespace. The subnamespace is either empty (if this option is not checked) or derived from a relative path to a script where a PHP user class is declared (if the option is checked). Do check this option if you get a compiler error ”A class or an interface ‘…’ is redeclared in the assembly scope“. This means that two user classes or interfaceshave the same type name in the scope of the assembly, which can be avoided by prepending their names with subnamespaces.

  • Additional compiler command line options

If you want to provide additional arguments to the compiler that cannot be specified in other field of this dialog box, you can add the parameter (option) here. Do not duplicate arguments by specifying parameters with the same meaning as the existing fields in this dialog box. It would result an error message from the compiler.

If some field in the dialog box is active, you can see a short description of that compiler option in the Description section.

Debugging

Warning: Debugging is a feature of the Visual Studio, not the Phalanger. The current version of the Phalanger doesn’t support debugging, although it generates some debug information which can be used by VS.NET. Nonetheless, it may be sometimes useful to use this VS .NET feature though it does not support all the debugging comfort you may be used to with other Visual Studio project types (for example the PHP script variables are not displayed correctly etc.).

You can start debugging by selecting Debug | Start menu item or pressing F5 key. This is possible of course only in Console Application project type. Class Library projects’ debugging is described later.

Standard Visual Studio debugging options can be used. You can add a breakpoint by clicking gray stripe at the left of the text editor window (or by pressing F9 key). The execution will be stopped at this point and you can step by F10 key. You can also see some variables in Locals window. But these variables are compiler internal variables and not these you have in your code. It is possible to find there which values the php variables have but it requires more knowledge how php code is compiled by Phalanger compiler.

There are two ways of debugging a Class Library project: Either the Class Library project must be referenced from another project that can be executed or some external program that causes loading the library and executing their code must be executed. To specify this external program, open Project properties dialog box, in the tree view at the left side select Debug. Debug Mode change to Program.In Start Application field fill full path to executable file and in Start Application Path the application working directory. In Arguments field externalapplicationcommand line arguments can be specified.

4 - Troubleshooting

Problem: Global variables from a request or a session are reported to be undefined

Check whether the RegisterGlobalsconfiguration option has its value set to ”true“. The default value is ”false“ thus there is no Web.config file or the configuration option is missing there the global variables are not registered.

Problem: Wrong encoding is used in the Phalanger web application pages.

Check Machine.config configuration file for values set in system.web section, node globalization, attributes requestEncoding and responseEncoding. Values of these attributes are used tot encode responses by the ASP.NET server. The Phalanger output is going through the ASP.NET buffers which perform the encoding.

Problem: A source code of a script is displayed instead of its output.

Check whether IIS is well configured, i.e. whether a virtual directory exists, whether a web application is created on that virtual directory and the application mapping table contains the following row:

".php","C:\Windows\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll","ALL"

The path stated in the middle column should target the ASP.NET ISAPI module of the .NET Framework version 1.1. If you have more versions of the .NET Framework installed on your system check whether the virtual directory is associated with the version 1.1. See also IIS manual for details of virtual directory creation and settings.

Check also whether there is the following configuration option:

<add verb="*" path="*.php" type="PHP.Core.PageFactory, PhpNetCore, 
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />

contained in the Machine.config file, configuration section system.web, subsection httpHandlers.

Problem: A source code of a script is displayed instead of its output.

The ASP.NET which sometimes doesn’t load Web.config configuration files located in the directories on the request path if web applications are nested (i.e. one application is defined on the directory which contains the other). A remedy is not to define nested web applications and for each web application to create a new virtual directory.

Problem: After uninstalling Phalanger, the installation directory remains on disk and cannot be deleted.

The directory is locked because there are still some Phalanger applications running. Close all Phalanger applications and then try again. It might also be necessary to unload Phalanger web application from IIS or completely stop IIS.

Problem: After installing/uninstalling Phalanger Visual Studio .NET Integration or other products that integrate into VS.NET, the Visual Studio splash screen is broken.

Locate the devenv.exe file under your Visual Studio .NET installation folder and execute devenv.exe /setup.

Problem: After enabling a native PHP extension, ”The specified module could not be found“ error message is thrown.

  1. Ensure that the paths given under the /configuration/phpNet element in the configuration file $WinDir$\Microsoft.NET\Framework\v1.1.4322\CONFIG\Machine.config are valid.
  2. Ensure that the extension you are trying to load is a PHP 4 extension and is located in the directory specified by Extensions.Natives configuration entry.
  3. Check extension’s dependencies. Many extensions depend on third party libraries and need them in order to be loaded successfully. Please see the Extensions/dlls/readme.txt and the PHP manual for details.

Problem: Phalanger web pages don’t work, IIS returns ”500 Internal Error".**

If you installed IIS after installing .NET Framework, ASP.NET must be registered with IIS manually. Run cmd.exe, switch to the $WinDir$\Microsoft.NET\Framework\v1.1.4322 directory and execute aspnet_regiis -i.

 
  phalanger/user/start.txt · Last modified: 2005/09/23 12:33
 
Recent changes RSS feed Driven by DokuWiki