Appropriate for all courses in open source Web development with Apache, MySQL, and/or PHP.
This book brings together coverage of the newest versions of three popular open-source Web development tools in one easy-to-understand book. Julie C. Meloni teaches students everything they need to know to create and manage dynamic Web sites. No experience is necessary, except for basic familiarity with creating HTML Web pages. Meloni walks through installing, configuring, and using the PHP 5 scripting language, the MySQL 4.x database system, and the Apache 2 Web server. Then, one step a time, Meloni shows how to combine these technologies to quickly create a Web site and several simple interactive Web applications, including discussion forums, mailing list managers, online address books, shopping carts, and e-commerce storefronts. The book also teaches students how to fine-tune Apache and MySQL, and even covers simple Web server security. This new Second Edition has been thoroughly revised and updated to reflect significant changes in the latest versions of PHP, MySQL, and Apache. It also comes with an easy-to-use Starter Kit CD-ROM that makes it easy for students to install a safe and foolproof learning environment for either Windows or Linux-based PCs.
Julie C. Meloni is the technical director for i2i Interactive (http://www.i2ii.com), a multimedia company located in Los Altos, California. She's been developing Web-based applications since the Web first saw the light of day and remembers the excitement surrounding the first GUI Web browser. She has authored several books and articles on Web-based programming languages and database topics and you can find translations of her work in several languages, including Chinese, Italian, Portuguese, Polish and even Serbian.
Matt Zandstra is a writer and consultant specializing in server programming. With his business partner, Max Guglielmino, he runs Corrosive (http://www.corrosive.co.uk), a technical agency that plans, designs and builds Internet applications. Matt is interested in all aspects of object-oriented programming, and is currently exploring enterprise design patterns for PHP 5.
Daniel Lopez Ridruejo is the founder of BitRock, a technology company providing multiplatform installation and management tools for a variety of commercial and open source software products. Previously, he was part of the original engineering team at Covalent Technologies, Inc., which provides Apache software, support and services for the enterprise. He is the author of several popular Apache and Linux guides, the mod_mono module for integrating Apache and .NET and of Comanche, a GUI configuration tool for Apache.
Who Should Read This Book? How This Book Is Organized. Conventions Used in This Book.
I. LAYING THE GROUNDWORK. 1. Installing and Configuring MySQL.
Current and Future Versions of MySQL. How to Get MySQL. Installing MySQL on Linux/Unix. Installing MySQL on Windows. Troubleshooting Your Installation. Basic Security Guidelines. Introducing the MySQL Privilege System. Working with User Privileges. Summary. Q&A. Workshop. 2. Installing and Configuring Apache.
Current and Future Versions of Apache. Choosing an Installation Method. Installing Apache on Linux/Unix. Installing Apache on Windows. Apache Configuration File Structure. Apache Log Files. Apache-Related Commands. Starting Apache for the First Time. Troubleshooting. Summary. Q&A. Workshop. 3. Installing and Configuring PHP.
Current and Future Versions of PHP. Building PHP on Linux/Unix with Apache. Installing PHP Files on Windows. php.ini Basics. Testing Your Installation. Getting Installation Help. The Basics of PHP Scripts. Summary. Q&A. Workshop.
II. PHP LANGUAGE STRUCTURE. 4. The Building Blocks of PHP.
Variables. Data Types. Operators and Expressions. Constants. Summary. Q&A. Workshop. 5. Flow Control Functions in PHP.
Switching Flow. Loops. Code Blocks and Browser Output. Summary. Q&A. Workshop. 6. Working with Functions.
What Is a Function? Calling Functions. Defining a Function. Returning Values from User-Defined Functions. Variable Scope. Saving State Between Function Calls with the static Statement. More About Arguments. Testing for the Existence of a Function. Summary. Q&A. Workshop. 7. Working with Arrays and Objects.
What Is an Array? Creating Arrays. Some Array-Related Functions. Creating an Object. Object Inheritance. Summary. Q&A. Workshop.
III. GETTING INVOLVED WITH THE CODE. 8. Working with Strings, Dates, and Times.
Formatting Strings with PHP. Investigating Strings in PHP. Manipulating Strings with PHP. Using Date and Time Functions in PHP. Summary. Workshop. 9. Working with Forms.
Creating a Simple Input Form. Accessing Form Input with User-Defined Arrays. Combining HTML and PHP Code on a Single Page. Using Hidden Fields to Save State. Redirecting the User. Sending Mail on Form Submission. Working with File Uploads. Summary. Workshop. 10. Working with User Sessions.
Session Function Overview. Starting a Session. Working with Session Variables. Passing Session IDs in the Query String. Destroying Sessions and Unsetting Variables. Summary. Q&A. Workshop. 11. Working with Files and Directories.
Including Files with include(). Testing Files. Creating and Deleting Files. Opening a File for Writing, Reading, or Appending. Reading from Files. Writing or Appending to a File. Working with Directories. Summary. Q&A. Workshop. 12. Working with the Server Environment.
Opening Pipes to and from Processes Using popen(). Running Commands with exec(). Running Commands with system() or passthru(). Summary. Q&A. Workshop. 13. Working with Images.
Understanding the Image-Creation Process. Necessary Modifications to PHP. Drawing a New Image. Getting Fancy with Pie Charts. Modifying Existing Images. Summary. Q&A. Workshop.
IV. PHP AND MYSQL INTEGRATION. 14. Learning the Database Design Process.
The Importance of Good Database Design. Types of Table Relationships. Understanding Normalization. Following the Design Process. Summary. Q&A. Workshop. 15. Learning Basic SQL Commands.
Learning the MySQL Data Types. Learning the Table Creation Syntax. Using the INSERT Command. Using the SELECT Command. Using WHERE in Your Queries. Selecting from Multiple Tables. Using the UPDATE Command to Modify Records. Using the REPLACE Command. Using the DELETE Command. Frequently Used String Functions in MySQL. Using Date and Time Functions in MySQL. Summary. Q&A. Workshop. 16. Interacting with MySQL Using PHP.
Connecting to MySQL with PHP. Working with MySQL Data. Summary. Workshop.
V. BASIC PROJECTS. 17. Managing a Simple Mailing List.
Developing the Subscription Mechanism. Developing the Mailing Mechanism. Summary. Q&A. Workshop. 18. Creating an Online Address Book.
Planning and Creating the Database Tables. Creating a Menu. Creating the Record Addition Mechanism. Viewing Records. Creating the Record Deletion Mechanism. Adding Subentries to a Record. Summary. Workshop. 19. Creating a Simple Discussion Forum.
Designing the Database Tables. Creating the Input Forms and Scripts. Displaying the Topic List. Displaying the Posts in a Topic. Adding Posts to a Topic. Summary. 20. Creating an Online Storefront.
Planning and Creating the Database Tables. Displaying Categories of Items. Displaying Items. Summary. Workshop. 21. Creating a Shopping Cart Mechanism.
Planning and Creating the Database Tables. Integrating the Cart with Your Storefront. Payment Methods and the Checkout Sequence. Summary. Workshop. 22. Creating a Simple Calendar.
Building a Simple Display Calendar. Creating a Calendar library. Summary. Q&A. Workshop. 23. Restricting Access to Your Applications.
Authentication Overview. Apache Authentication Module Functionality. Using Apache for Access Control. Combining Apache Access Methods. Limiting Access Based on HTTP Methods. Introducing Cookies. Setting a Cookie with PHP. Restricting Access Based on Cookie Values. Summary. Q&A. Workshop. 24. Logging and Monitoring Web Server Activity.
Standard Apache Access Logging. Standard Apache Error Logging. Managing Apache Logs. Logging Custom Information to a Database. Summary. Q&A. Workshop. 25. Application Localization.
About Internationalization and Localization. About Character Sets. Environment Modifications. Creating a Localized Page Structure. Summary. Q&A. Workshop.
VI. ADMINISTRATION AND FINE TUNING. 26. Apache Performance Tuning and Virtual Hosting.
Scalability Issues. Load Testing with ApacheBench. Proactive Performance Tuning. Preventing Abuse. Implementing Virtual Hosting. Summary. Q&A. 27. Setting Up a Secure Web Server.
The Need for Security. The SSL Protocol. Obtaining and Installing SSL Tools. Managing Certificates. SSL Configuration. Summary. Q&A. 28. Optimizing and Tuning MySQL.
Building an Optimized Platform. MySQL Startup Options. Optimizing Your Table Structure. Optimizing Your Queries. Using the FLUSH Command. Using the SHOW Command. Summary. Q&A. Workshop. 29. Software Upgrades.
Staying in the Loop. Upgrading MySQL. Upgrading Apache. Upgrading PHP. Summary. Workshop.
VII. LOOKING TOWARD THE FUTURE. 30. Features and Backward Compatibility of PHP 5.0.
What's Wrong With PHP 4? The New Object Model. Additional New Features. So, When Should I Upgrade to PHP 5? Summary. Q&A. 31. Features and Backward Compatibility of MySQL 4.1.
Using Subqueries. Internationalization Enhancements. Additional New Functionality. Looking Further Ahead to MySQL 5.0. Summary. Q&A. Workshop.
VIII. APPENDIX. Appendix A: Installing MySQL, Apache, and PHP from the CD-ROM.
Linux/Unix Installation. Windows Installation. Troubleshooting. Index.