Configuring Apache for PHP CGI Scripts

This section describes how to configure Apache server to support PHP CGI scripts.

With both PHP engine and Apache Web server installed on my Windows system, I continued to configure the Apache server to support PHP CGI scripts:

1. Open the Apache configuration file, \local\apache\conf\httpd.conf, in a text editor

2. First I have to define a CGI script directory alias, mapping an Apache document directory to a real directory where php-cgi.exe is located. Go to alias_module section and add one line:

<IfModule alias_module>
...
   ScriptAlias /cgi-bin-php/ "/local/php/"
</IfModule>

3. Then I need to add an access control section for this directory as:

<Directory "/local/php/">
     AllowOverride None
     Options None
     Require all granted
</Directory>

4. Next, I have to define a new MIME type to support the .php file extension. Go to mime_module section and one line:

<IfModule mime_module>
...    
    AddType application/x-httpd-php .php 
</IfModule>

5. The last setting is to tell Apache to serve the new MIME type with php-cgi.exe located in the directory alias /cgi-bin-php/: At the root level below the LoadModule section, define an "Action" entry:

#LoadModule xml2enc_module modules/mod_xml2enc.so

Action application/x-httpd-php "/cgi-bin-php/php-cgi.exe"

6. The configuration changes are done. Now restart the Apache server by closing the following command line window and re-enter it again:

C:\herong> \local\apache\bin\httpd

Another way to integrate Apache with PHP is to set PHP as a load module. This is more efficient than the CGI script interface. But for my personal testing purpose, the CGI script interface is good enough.

Table of Contents

 About This Book

 PHP Installation on Windows Systems

Integrating PHP with Apache Web Server

 Downloading Apache 2.4.37 Binary for Windows

 Installing Apache 2.4.37 on Windows Systems

 Publishing HTML Documents as Web Pages

Configuring Apache for PHP CGI Scripts

 Publishing PHP Scripts as Web Pages

 Permission Error on php-cgi.exe

 charset="*" - Encodings on Chinese Web Pages

 Chinese Characters in PHP String Literals

 Multibyte String Functions in UTF-8 Encoding

 Input Text Data from Web Forms

 Input Chinese Text Data from Web Forms

 MySQL - Installation on Windows

 MySQL - Connecting PHP to Database

 MySQL - Character Set and Encoding

 MySQL - Sending Non-ASCII Text to MySQL

 Retrieving Chinese Text from Database to Web Pages

 Input Chinese Text Data to MySQL Database

 Chinese Text Encoding Conversion and Corruptions

 Archived Tutorials

 References

 Full Version in PDF/EPUB