Sams Teach Yourself PHP, MySQL, and Apache All-in-One

cover of Sams Teach Yourself PHP, MySQL and Apache All-in-OneThe following information is for the 5th edition, published in 2012.

All the code in this edition is based on the latest version of PHP available at the time of this writing (5.4.x, in this case), as well as shiny new versions of MySQL (5.5.x) and Apache (2.4.x). As with all editions of this book, you’ll learn the core concepts necessary for configuring and managing Apache, the basics of programming in PHP, and methods for using and administering MySQL. The overall goal of the book is to provide you with a foundation that will help you understand how seamlessly these technologies integrate with one another, and to give you practical knowledge of how to integrate them. Much like my other books, this book is not intended as the be-all and end-all of your education in this matter: it’s a first step, which will hopefully illuminate the pathways of all the other steps you will need to take to become an expert in these areas.

  • ISBN 0672335433, © Sams 2012
  • Get the source code at GitHub.
  • Translations: Chinese (Simplified), German, Greek, Japanese

Previous Editions:

  • 4th ed. ISBN 067232976X, © Sams 2008. Translations: Chinese (Simplified), Greek, Polish, Spanish.
  • 3rd ed. ISBN 0672328739, © Sams 2006. Translations: Chinese (Simplified), Korean, Lithuanian, Polish.
  • 2nd ed. ISBN 0672327252, © Sams 2004. Translations: Polish, Turkish.
  • 1st ed. ISBN 0672326205, © Sams 2003. Translations: Greek, Polish, Romanian.

Table of Contents

This is a pretty accurate table of contents of the current edition, give or take a sub-heading or two. Each chapter also has a summary, quiz questions, and one or more activities.

This section walks you through the installation and configuration of MySQL, Apache, and PHP. You’ll need to complete either Chapter 1 OR Chapters 2 through 4 before moving on to the remaining chapters, unless you already have access to a working installation of these technologies. Even if you don’t need to install and configure MySQL, Apache, and PHP in your environment, you should still skim these lessons so that you understand the basics.

Chapter 1: Installation QuickStart Guide with XAMPP

  • Using Third-Party Installation Packages
  • Installing XAMPP on Linux/UNIX
  • Installing XAMPP on Windows
  • Installing XAMPP on Mac OS X
  • Securing XAMPP
  • Troubleshooting

Chapter 2: Installing and Configuring MySQL

  • Current and Future Versions of MySQL
  • How to Get MySQL
  • Installing MySQL on Linux/UNIX
  • Installing MySQL on Mac OS X
  • Installing MySQL on Windows
  • Troubleshooting Your Installation
  • Basic Security Guidelines
  • Introducing the MySQL Privilege System

Chapter 3: Installing and Configuring Apache

  • Current and Future Versions of Apache
  • Choosing the Appropriate Installation Method
  • Installing Apache on Linux/UNIX
  • Installing Apache on Mac OS X
  • Installing Apache on Windows
  • Apache Configuration File Structure
  • Apache Log Files
  • Apache-Related Commands
  • Starting Apache for the First Time
  • Troubleshooting

Chapter 4: Installing and Configuring PHP

  • Current and Future Versions of PHP
  • Building PHP on Linux/UNIX with Apache
  • Installing PHP on Mac OS X
  • Installing PHP on Windows
  • php.ini Basics
  • Testing Your Installation
  • Getting Installation Help
  • The Basics of PHP Scripts

This section is predominantly devoted to teaching you the basics of the PHP language, including structural elements such as arrays and objects. The examples will get you in the habit of writing code, uploading it to your server, and testing the results.

Chapter 5: The Building Blocks of PHP

  • Variables
  • Data Types
  • Operators and Expressions
  • Constants

Chapter 6: Flow Control Functions in PHP

  • Switching Flow
  • Loops
  • Code Blocks and Browser Output

Chapter 7: 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

Chapter 8: Working with Arrays

  • What Are Arrays?
  • Creating Arrays
  • Some Array-Related Constructs and Functions

Chapter 9: Working with Objects

  • Creating an Object
  • Object Inheritance

This section consists of lessons that cover advanced-basic/early-intermediate application development topics, including working with forms and files, restricting access, and completing other small projects designed to introduce a specific concept.

Chapter 10: Working with Strings, Dates, and Time

  • Formatting Strings with PHP
  • Investigating Strings in PHP
  • Manipulating Strings with PHP
  • Using Date and Time Functions in PHP
  • Other String, Date, and Time Functions

Chapter 11: 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

Chapter 12: Working with Cookies and User Sessions

  • Introducing Cookies
  • Setting a Cooking with PHP
  • Deleting a Cookie
  • Session Function Overview
  • Starting a Session
  • Working with Session Variables
  • Destroying Sessions and Unsetting Variables
  • Using Sessions in an Environment with Registered Users

Chapter 13: Working with Files and Directories

  • Including Files
  • Validating 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
  • Opening Pipes to and from Processes Using popen()
  • Running Commands with exec()
  • Running Commands with system() or passthru()

Chapter 14: Working with Images

  • Understanding the Image-Creation Process
  • Necessary Modifications to PHP
  • Drawing a New Image
  • Modifying Existing Images
  • Image Creation from User Input
  • Using Images Created From Scripts

This section contains lessons devoted to working with databases in general, such as database normalization, as well as using PHP to connect to and work with MySQL. Included is a basic SQL primer, which also includes MySQL-specific functions and other information.

Chapter 15: Understanding the Database Design Process

  • The Importance of Good Database Design
  • Types of Table Relationships
  • Understanding Normalization
  • Following the Design Process

Chapter 16: 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

Chapter 17: Using Transactions and Stored Procedures in MySQL

  • What Are Transactions?
  • What Are Stored Procedures?

Chapter 18: Interacting with MySQL Using PHP

  • MySQL or MySQLi Functions?
  • Connecting to MySQL with PHP
  • Working with MySQL Data

This section consists of lessons devoted to performing a particular task using PHP and MySQL, by integrating all the knowledge gained so far. Projects include an address book, a discussion forum, and a basic online storefront, among others.

Chapter 19: Managing a Simple Mailing List

  • Developing the Subscription Mechanism
  • Developing the Mailing Mechanism

Chapter 20: Creating an Online Address Book

  • Planning and Creating the Database Tables
  • Creating an Include File for Common Functions
  • Creating a Menu
  • Creating the Record Addition Mechanism
  • Viewing Records
  • Creating the Record Deletion Mechanism
  • Adding Subentries to a Record

Chapter 21: Creating a Simple Discussion Forum

  • Designing the Database Tables
  • Creating an Include File for Common Functions
  • Creating the Input Forms and Scripts
  • Displaying the Topic List
  • Displaying the Posts in a Topic
  • Adding Posts to a Topic

Chapter 22: Creating an Online Storefront

  • Planning and Creating the Database Tables
  • Displaying Categories of Items
  • Displaying Items

Chapter 23: Creating a Shopping Cart Mechanism

  • Planning and Creating the Database Tables
  • Integrating the Cart with Your Storefront
  • Payment Methods and the Checkout Sequence

Chapter 24: Creating a Simple Calendar

  • Building a Simple Display Calendar
  • Creating a Calendar Library

Chapter 25: Restricting Access to Your Applications

  • Authentication Overview
  • Apache Authentication Module Functionality
  • Using Apache for Access Control
  • Combining Apache Access Methods
  • Restricting Access Based on Cookie Values

Chapter 26: Logging and Monitoring Web Server Activity

  • Standard Apache Access Logging
  • Standard Apache Error Logging
  • Managing Apache Logs
  • Logging Custom Information to a Database

Chapter 27: Application Localization

  • About Internationalization and Localization
  • About Character Sets
  • Environment Modifications
  • Creating a Localized Page Structure
  • Localizing Your Application with gettext()

Chapter 28: Working with XML and JSON

  • What is XML?
  • Accessing XML in PHP Using DOM Functions
  • Accessing XML in PHP Using SimpleXML Functions
  • Working with JSON

This section is devoted to administering and tuning Apache and MySQL. It also includes information on virtual hosting and setting up a secure Web server.

Chapter 29: Apache Performance Tuning and Virtual Hosting

  • Performance and Scalability Issues
  • Load Testing with ApacheBench
  • Proactive Performance Tuning
  • Preventing Abuse
  • Implementing Virtual Hosting

Chapter 30: Setting Up a Secure Web Server

  • The Need for Security
  • The SSL Protocol
  • Obtaining and Installing SSL Tools
  • Managing Certificates
  • SSL Configuration

Chapter 31: Optimizing and Tuning MySQL

  • Building an Optimized Platform
  • Benchmarking your Database Server
  • MySQL Startup Options
  • Optimizing Your Table Structure
  • Optimizing Your Queries
  • Using the FLUSH Command
  • Using the SHOW Command

Chapter 32: Performing Software Upgrades

  • Staying in the Loop
  • Upgrading MySQL
  • Upgrading Apache
  • Upgrading PHP

Chapter 33: Using Application Frameworks

  • Understanding Application Frameworks
  • Using the MVC Pattern
  • Installing and Using PHP Application Frameworks