To test whether or not MySQL is working, you can execute the following commands: C:\mysql\bin\mysqlshow C:\mysql\bin\mysqlshow -u root mysql C:\mysql\bin\mysqladmin version status proc C
Trang 1FIGURE A.4
The Services Control Manager allows you to configure the services running on your machine.
To test whether or not MySQL is working, you can execute the following commands:
C:\mysql\bin\mysqlshow
C:\mysql\bin\mysqlshow -u root mysql
C:\mysql\bin\mysqladmin version status proc
C:\mysql\bin\mysqladmin -u root shutdown
These commands all work the same with the various Windows operating systems
MySQL will create two databases, the mysqland testdatabases The mysqldatabase will be
used for storing the permissions and access to the server The testdatabase is not required,
but gives you a safe place to execute commands to see if things are configured correctly
If you need more information, please refer to the MySQL Web site,http://www.MySQL.com
We are now ready to install Apache under Windows Let’s begin!
Installing Apache Under Windows
Apache 1.3 and later is designed to run on Windows NT 4.0 and Windows 2000 The installer
will only work with the x86 family of processors, such as Intel’s However, Apache can also
run on Windows 95 and 98, but these have not been tested In all cases TCP/IP networking
must be installed Make sure you use the Winsock 2 library if you decide to install it under
either Win95 or Win98
It is recommended that you download the version of Apache for Windows with the exe
exten-sion if you are a beginner and don’t want to compile the source code This single file contains
the Apache server ready to be installed
Run the file you downloaded, apache_1_3_x_win32.exe by double-clicking on it
The installation process should look familiar to you As shown in Figure A.5, it looks similar
to many other Windows installers
A I
Trang 2F IGURE A.5
The Apache installer is easy to use.
The install program will prompt you for the following:
• The directory to install Apache (The default is C:\Program Files\Apache
• The start menu name (The default is Apache Web Server.)
• The installation type The Typical option installs everything except source code The Minimum option does not install the manuals or source code Choose Custom if you want the source code
After installing Apache, you might need to edit the configuration files that live in the conf
directory We will look at editing the configuration file httpd.confwhen we install PHP
Running Apache for Windows
Essentially there are two ways you can run Apache:
• From a console window
• As a Windows service The service option is generally used with Window NT and Windows 2000 Use this option if you want Apache to start automatically when your machine boots, and to keep it running after you log off The console option is intended primarily for Windows 95 and Windows 98 users However, a server was introduced with version 1.3.13 that enables Win 95 and Win 98 users to run Apache as a service This server is considered highly experimental by its developers
We will install Apache as a service only after we have successfully tested it from the console window Therefore, we’ll first cover how to start Apache from the console and then cover the service method
Trang 3Running Apache in a Console Window
To run Apache from the console window, select the Start Apache as console App option from
the Start menu This will open a console window and start Apache inside it This window will
remain active and open until you stop the Apache server
To stop it, you could either run the Shutdown Apache as Console App option from the Start
menu or open another command window and type the following (for version 1.3.3 and earlier):
C:\Program Files\Apache Group\Apache> apache -k shutdown
Unlike MySQL, Apache doesn’t start as a background process, so you can also stop it by
pressing Control-C or Control-Break in the Apache console window or closing the console
window (Again, this only works for versions older than 1.3.3.)
Running Apache as a Service
Before you can start Apache as a service, you must install it as a service Keep in mind that
multiple Apache services can be installed on one machine with different names and
configura-tions
To install the default Apache service (named Apache), run the Install Apache as Service (NT
only) option from the Start menu Open the Services window (in the Control Panel), select
Apache, and then click Start Apache will now be running, hidden in the background You can
later stop Apache by clicking Stop As an alternative to using the Services window, you can
start and stop the Apache service from the command line with
NET START apache
NET STOP apache
Note that this is similar to the MySQL server for NT and Windows 2000
Apache, unlike other NT and Win2000 applications, logs any error to its own error.logfile
found within the Apache server root folder It does not provide details through the standard
Event Log
As mentioned previously, multiple instances of Apache can be installed and run as services To
signal an installed Apache service to start, restart, or shut down, you will need to provide its
service name as follows:
apache -n “service name” -k start apache -n “service name” -k restart apache -n “service name” -k shutdown
For the default Apache service, the -nApache option is still required because the -k
commands without the -noption are directed at Apache running in a console window The
quotes are only required if the service name contains spaces
A I
Trang 4Apache will be listening to port 80 (unless you changed the Port, Listen, or BindAddress direc-tives in the configuration files) after it starts To connect to the server and access the default page, launch a browser and enter this URL:
http://localhost/
This should respond with a welcome page similar to that shown in Figure A.1, and a link to the Apache manual If nothing happens or you get an error, look in the error.logfile in the logs
directory If your host isn’t connected to the Internet, you might have to use this URL:
http://127.0.0.1/
This is the IP address that means localhost
If you have changed the port number from 80, you will need to append :port_numberon the end of the URL
Note that Apache CANNOT share the same port with another TCP/IP application
Differences Between Apache for Windows and UNIX
Here are the main differences between Apache for Windows and Apache for UNIX:
• Apache for Windows is multithreaded, but it does not use a separate process for each request, as with UNIX Instead there are usually only two Apache processes running: a parent process and a child, which handles the requests Within the child, a separate thread handles each request So, process management directives are different
• The directives that accept filenames as arguments now must use Windows filenames instead of UNIX ones However, because Apache uses UNIX-style names internally, you must use forward slashes, not backslashes Drive letters can be used; if omitted, the drive with the Apache executable will be assumed
• Apache for Windows has the capability to load modules at runtime, without recompiling the server If Apache is compiled normally, it will install a number of optional modules
in the \modulesdirectory To activate these, or other modules, the new LoadModule directive must be used For example, to active the status module, use the following (in addition to the status-activating directives in access.conf):
LoadModule status_module modules/mod_status.so
See the online manual for details at
http://httpd.apache.org/docs/mod/mod_so.html#loadmodule
• Apache for Windows version 1.3 series is implemented in synchronous calls This poses
an enormous problem for CGI authors, who won’t see unbuffered results sent immedi-ately to the browser This is not the behavior described for CGI in Apache, but it is a
Trang 5side-effect of the Windows port Apache 2.0 is making progress to implement the expected asynchronous behavior, and we hope to discover that the NT/2000 implementa-tion enables CGIs to behave as documented
If you need to enable Apache with SSL in Windows, you will need to compile the Apache
source code Refer to the Apache.org, OpenSSL.org, and ModSSl.org sites for more
informa-tion on how to do this, or look at the UNIX installainforma-tion for reference It’s not difficult, but will
require more work
Installing PHP for Windows
Okay, now we are ready to install PHP for Windows Make sure you stop Apache before you
start the PHP installation process The process is extremely simple if you understand that,
unlike PHP 3, PHP 4 is divided into several components, which require that several DLLs be
used That is, you can’t run PHP in its CGI mode as a standalone executable You must ensure
that the DLLs in the distribution exist in a directory (any directory) that is in the Windows
path The easiest way to do this is to copy these DLLs to your SYSTEM(Windows 9x) or
SYSTEM32(Windows NT) directory, which is under your Windowsdirectory The DLLs that
need to be copied are MSVCRT.DLL (it might already be there) and PHP4TS.DLL
We have provided the outline here as a “cookbook” installation guide You should have no
problem installing and setting up PHP in your Windows machine, if you follow it
1 Start by copying the php.ini-dist to your ‘%WINDOWS%’directory and rename it to
‘php.ini’ The ‘%WINDOWS%’variable usually points to C:\WINDOWSfor Windows 9x and
C:\WINNTfor NT servers
2 Edit the php.inifile and change the extension_dir setting to point to the directory
con-taining the DLL modules for the extensions Set the doc_root to point to the Web servers document root, that is, the outside visible root directory of the server
3 Uncomment out in the php.inifile the modules you would like to load when PHP starts
Uncomment the extension=php_*.dlllines to load the modules Note that some mod-ules require additional libraries installed on the system for the module to work correctly
Also note, that MySQL support is now built in to PHP 4; it doesn’t require loading via this method
Now all you need to do is edit the httpd.conffile in the Apache conf directory to configure
Apache to work with the PHP CGI binary Add the following directives to the configfile
• ScriptAlias /php/ “c:/path-to-your-php-dir/”
• AddType application/x-httpd-php php
• AddType application/x-httpd-php phtml
• Action application/x-httpd-php “/php/php.exe “
A I
Trang 6Note that with the AddType directive, you can specify how Apache should handle the various file extensions In the case previously mentioned, we specify that Apache treats any file con-taining php and phtml as a PHP-interpreted file You could, for example, treat regular htm and html files as PHP scripts by adding the following directive:
• AddType application/x-httpd-php html
• AddType application/x-httpd-php htm You will find more information about other directives that you can set in the configuration file
at the Apache Web site,http://www.apache.org
Let’s Test Our Work
Start Apache and test to ensure that you have PHP working Create a test.phpfile and add the following lines to it:
<? phpinfo() ?>
Make sure the file is in the document root directory of Apache and then pull it up on the browser, as follows
http://localhost/test.php
or
http://your-ip-number-here/test.php
If you see a page similar to that shown in Figure A.2, you know that you have Apache and PHP working together Remember to test for MySQL working with them Do this by writing a simple PHP script to connect to the server and insert/extract some data on the database
Adding PHP and MySQL to Microsoft IIS and PWS
This section will cover how to add PHP and MySQL support to IIS with the ISAPI (php4isapi.dll) module It assumes that you have read and installed MySQL as described in the previous section
The first thing you need to do is to install the DLLs as mentioned in the previous section—that
is, install the MSVCRT.DLL and PHP4TS.DLL to the Windowsdirectory Also make sure that you know what to put into the test.phpfile as described previously
Installation Notes for Microsoft IIS
Here are the “cookbook” procedures for the installation of PHP in Microsoft Internet Information Server:
1 Copy either the php.ini-distor the php.ini-optimizedfile into your Windows direc-tory, and rename it to ‘php.ini’ Change the defaults by modifying any of the directives inside it
Trang 72 Start the Microsoft Management Console (it might appear as the Internet Services
Manager, either in your Windows NT 4.0 Option Pack branch or in the Control Panel, Administrative Tools under Windows 2000)
3 Right-click the Web server node and select Properties Under ISAPI Filters, add a new
ISAPI filter This dialog box is shown in Figure A.6 Use PHP as the filter name, and supply a path to the php4isapi.dllthat is included in the PHP 4 distribution
A I
F IGURE A.6
Adding the PHP interpreter as an ISAPI filter.
4 Under Home Directory, click the Configuration button and add a new entry to the
Application Mappings Use the path to the php4isapi.dllas the executable, supply php
as the extension, leave Method exclusions blank, and check the Script engine check box
5 Stop IIS completely by typing ‘net stop iisadmin’on a command prompt
6 Now start IIS again by typing ‘net start w3svc’on a command prompt
7 Put the test.phpfile under your Web server’s document root The test.phpfile will
contain the following line:
<?php phpinfo(); ?>
If it works, you should see something similar to Figure A.2
Installation Notes for Microsoft PWS
1 Install the php.inifile and the DLLs as mentioned previously
Trang 82 Edit the enclosed PWS-php4.regfile to reflect the location of your php4isapi.dll Forward slashes should be escaped, for example:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\ Script Map] “.php”=”C:\\Program Files\\PHP\\php4isapi.dll”
3 In the PWS Manager, right-click a given directory you want to add PHP support to, and select Properties Check the Execute check box, and confirm
That’s it! At this point, PWS should have built-in PHP support
Other Configurations
You can set up PHP and MySQL with other Web servers such as Omni, HTTPD, and Netscape Enterprise Server These will not be covered in this appendix, but you can find information on how to set them up at the MySQL and PHP Web sites:
http://www.MySQL.com
and
http://www.php.net
respectively
Trang 9B
Web Resources
Trang 10This appendix lists some of the many resources available on the Web, which can be used to find tutorials, articles, news, and sample PHP code These are just some of the many out there Obviously there are far more than we could possibly list in one appendix And many more that are popping up daily as the usage of and familiarity with PHP and MySQL continues to increase among Web developers
Some of these resources will be in different languages like German or French or something other than your native language We suggest using a translator like http://www.
PHP Resources
PHP.Net—http://www.php.net—The original site for PHP Go here to download all the sources of PHP and for a copy of the manual
ZEND.Com—http://www.zend.com—The source for the ZEND engine that powers PHP 4.0
A portal site that contains forums, and a database of sample classes and code that you can use
A must see
PHPWizard.net—http://www.phpwizard.net—The source of many cool PHP applications like phpMyAdmin; an excellent front end GUI for Managing MySQL Servers You can also find tutorials on PHP at this site
PHPBuilder.com—http://www.phpbuilder.com—The portal for PHP tutorials At this site, you will find tutorials on just about anything you can think of Site also has a forum and mes-sage board for people to post questions
DevShed.com—http://www.devshed.com—Portal type site offers excellent tutorials on PHP, MySQL, Perl, and other development languages A must see for newbies
PX-PHP Code Exchange—http://px.sklar.com—A great place to start Here you will find many sample scripts and useful functions The site is organized for finding things easily The PHP4 Resource—http://www.php-resource.de—A very nice source for tutorials, arti-cles, and scripts The only “problem” is that the site is in German We recommend using a translator service site to view it This is how we view it
WeberDev.com—http://www.WeberDev.com—Formerly known as Berber’s PHP sample page, this site grew significantly from nothing to a place for tutorials and sample codes The site tar-gets PHP and MySQL users, and covers security and general databases, as well as NT The only issue is that it requires you to subscribe But it’s well worth it, considering the informa-tion it provides