Home  >  Article  >  Backend Development  >  Windows WAMP PHP extension development

Windows WAMP PHP extension development

WBOY
WBOYOriginal
2016-07-30 13:31:131132browse

1. Development preparation
Install WAMP, the version used is WampServer Version 2.5, of which the PHP version is 5.5.12.
WAMP installation directory: D:wamp
apache directory: D:wampbinapache
php directory: D:wampbinphp
Download the PHP-5.5.12 source code package and unzip it to any directory. For example: E:php-5.5.12
2. Query the compilation related information of the php version through phpinfo(), mainly check:
CompilerMSVC11 (Visual C++ 2012)
Architecturex86
Zend Extension BuildAPI220121212 ,TS,VC11
PHP Extension BuildAPI20121212,TS,VC11
From the above information, we can see that the php in WampServer 2.5 is compiled on x86 (win32) through MSVC11 (VS2012) and the TS (Thread Safe) attribute is set .
So you need to use the same compilation environment and TS settings when compiling extension plug-ins (the default value is TS)
3. Generate the config.w32.h file required when compiling plug-ins
Open the "VS2012 Developer Command Prompt" and enter E :php-5.5.12 directory;
Execute the buildconf.bat command, which generates the configure.js file in the current directory;
Execute the configure command to generate the E:php-5.5.12mainconfig.w32.h file.
If bison-related errors occur during execution, it means that you have not installed bison. You can open the configure.js file and comment the following three lines, and then re-execute the configure command.
if (!PATH_PROG('bison')) {
ERROR('bison is required')
}
Why can this be done? Because we don’t need to compile PHP, we only need to generate the config.w32.h file to compile Extensions.
4. Plug-in compilation file preparation
Enter the E:php-5.5.12ext directory, copy the E:php-5.5.12extskeleton directory and rename it to the name of the plug-in you need to develop, such as my_plugin;
Change php_skeleton.h, skeleton.c and skeleton.dsp are renamed to php_my_plugin.h, my_plugin.c and my_plugin.dsp;
Open the above three files respectively, replace extname in the file with my_plugin, and replace EXTNAME with MY_PLUGIN (make sure the case is consistent);
D:wampbinphpphp5.5.12devphp5ts.lib is copied to the my_plugin directory.
5. Compile plug-in and install
Use VS2012 to open the my_plugin.dsp file, select Release_TS (generate Release version) and configure the compilation to C code (Solution Properties-Configuration Properties-C/C++-Advanced-Compile to-Compile to C code (/TC));
Compile the solution and generate the php_my_plugin.dll file corresponding to the plug-in (located in the E:php-5.5.12Release_TS directory);
Copy the compiled dll file to the Wamp PHP extension directory (D:wampbinphpphp5. 5.12ext);
Edit the D:wampbinapacheapache2.4.9binphp.ini file, look for the "extension=" keyword and add "extension=php_my_plugin.dll" after the original PHP plug-in;
Special attention: the edited php.ini It is not D:wampbinphpphp5.5.12php.ini, because when Wamp initializes PHP, it reads the file D:wampbinapacheapache2.4.9binphp.ini.
Restart the Apache server.
6. Test the plug-in
If the plug-in is loaded successfully, restart the Apache server and access phpinfo() to see the newly added my_plugin plug-in.
Generate the my_plugin_test.php file and place it in the D:wampwww directory. The file content is as follows:
echo confirm_my_plugin_compiled("my_plugin");
?>
Use a browser to access the newly created my_plugin_test.php file above, and a message will appear. The following page shows that the plug-in is running normally:
Congratulations! You have successfully modified ext/my_plugin/config.m4. Module my_plugin is now compiled into PHP.

Copyright statement: This article is an original article by the blogger and may not be used without the blogger's permission. Reprint.

The above introduces the development of Windows WAMP PHP extension, including aspects of it. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php: image processingNext article:php: image processing