1. Trang chủ
  2. » Công Nghệ Thông Tin

Secure PHP Development- P6 potx

5 315 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Secure PHP Development

    • Front Matter

      • Preface

        • Is This Book for You?

        • How This Book Is Organized

        • Tell Us What You Think

      • Acknowledgments

      • Contents at a Glance

      • Contents

    • Part I

      • Chapter 1: Features of Practical PHP Applications

        • Features of a Practical PHP Application

        • Employing the Features in Applications

        • Summary

      • Chapter 2: Understanding and Avoiding Security Risks

        • Identifying the Sources of Risk

        • Minimizing User-Input Risks

        • Not Revealing Sensitive Information

        • Summary

      • Chapter 3: PHP Best Practices

        • Best Practices for Naming Variables and Functions

        • Best Practices for Function/Method

        • Best Practices for Database

        • Best Practices for User Interface

        • Best Practices for Documentation

        • Best Practices for Web Security

        • Best Practices for Source Configuration Management

        • Summary

    • Part II

      • Chapter 4: Architecture of an Intranet Application

        • Understanding Intranet Requirements

        • Building an Intranet Application Framework

        • Creating a Database Abstraction Class

        • Creating an Error Handler Class

        • Creating a Built-In Debugger Class

        • Creating an Abstract Application Class

        • Creating a Sample Application

        • Summary

      • Chapter 5: Central Authentication System

        • How the System Works

        • Creating an Authentication Class

        • Creating the Central Login Application

        • Creating the Central Logout Application

        • Creating the Central Authentication Database

        • Testing Central Login and Logout

        • Making Persistent Logins in Web Server Farms

        • Summary

      • Chapter 6: Central User Management System

        • Identifying the Functionality Requirements

        • Creating a User Class

        • User Interface Templates

        • Creating a User Administration Application

        • Creating a User Password Application

        • Creating a Forgotten-Password Recovery Application

        • Summary

      • Chapter 7: Intranet System

        • Identifying Functionality Requirements

        • Designing the Database

        • Designing and Implementing the Intranet Classes

        • Setting Up Application Configuration Files

        • Setting Up the Application Templates

        • Intranet Home Application

        • Installing Intranet Applications from the CD- ROM

        • Testing the Intranet Home Application

        • Summary

      • Chapter 8: Intranet Simple Document Publisher

        • Identifying the Functionality Requirements

        • The Prerequisites

        • Designing the Database

        • The Intranet Document Application Classes

        • Setting up Application Configuration Files

        • Setting Up the Application Templates

        • The Document Publisher Application

        • Installing Intranet Document Application

        • Testing Intranet Document Application

        • Summary

      • Chapter 9: Intranet Contact Manager

        • Functionality Requirements

        • Understanding Prerequisites

        • The Database

        • The Intranet Contact Manager Application Classes

        • The Application Configuration Files

        • The Application Templates

        • The Contact Category Manager Application

        • The Contact Manager Application

        • Installing Intranet Contract Manager

        • Testing Contract Manager

        • Summary

      • Chapter 10: Intranet Calendar Manager

        • Identifying Functionality Requirements

        • Understanding Prerequisites

        • Designing the Database

        • The Intranet Calendar Application Event Class

        • The Application Configuration Files

        • The Application Templates

        • The Calendar Manager Application

        • The Calendar Event Manager Application

        • Installing the Event Calendar on Your Intranet

        • Testing the Event Calendar

        • Summary

      • Chapter 11: Internet Resource Manager

        • Functionality Requirements

        • Understanding the Prerequisites

        • Designing the Database

        • Designing and Implementing the Internet Resource Manager Application Classes

        • Creating Application Configuration Files

        • Creating Application Templates

        • Creating a Category Manager Application

        • Creating a Resource Manager Application

        • Creating a Resource Tracking Application

        • Creating a Search Manager Application

        • Installing an IRM on Your Intranet

        • Testing IRM

        • Security Concerns

        • Summary

      • Chapter 12: Online Help System

        • Functionality Requirements

        • Understanding the Prerequisites

        • Designing and Implementing the Help Application Classes

        • Creating Application Configuration Files

        • Creating Application Templates

        • Creating the Help Indexing Application

        • Creating the Help Application

        • Installing Help Applications

        • Testing the Help System

        • Security Considerations

        • Summary

    • Part III

      • Chapter 13: Tell-a-Friend System

        • Functionality Requirements

        • Understanding Prerequisites

        • Designing the Database

        • Designing and Implementing the Tell- a- Friend Application Classes

        • Creating Application Configuration Files

        • Creating Application Templates

        • Creating the Tell-a-Friend Main Menu Manager Application

        • Creating a Tell-a-Friend Form Manager Application

        • Creating a Tell-a-Friend Message Manager Application

        • Creating a Tell-a-Friend Form Processor Application

        • Creating a Tell-a-Friend Subscriber Application

        • Creating a Tell-a-Friend Reporter Application

        • Installing a Tell-a-Friend System

        • Testing the Tell-a-Friend System

        • Security Considerations

        • Summary

      • Chapter 14: E-mail Survey System

        • Functionality Requirements

        • Architecture of the Survey System

        • Designing the Database

        • Designing and Implementing the Survey Classes

        • Designing and Implementing the Survey Applications

        • Developing Survey Execution Manager

        • Setting Up the Central Survey Configuration File

        • Setting Up the Interface Template Files

        • Testing the Survey System

        • Security Considerations

        • Summary

      • Chapter 15: E-campaign System

        • Features of an E-campaign System

        • Architecting an E-campaign System

        • Designing an E-campaign Database

        • Understanding Customer Database Requirements

        • Designing E-campaign Classes

        • Creating Common Configuration and Resource Files

        • Creating Interface Template Files

        • Creating an E-campaign User Interface Application

        • Creating a List Manager Application

        • Creating a URL Manager Application

        • Creating a Message Manager Application

        • Creating a Campaign Manager Application

        • Creating a Campaign Execution Application

        • Creating a URL Tracking and Redirection Application

        • Creating an Unsubscription Tracking Application

        • Creating a Campaign Reporting Application

        • Testing the E-Campaign System

        • Security Considerations

        • Summary

    • Part IV

      • Chapter 16: Command-Line PHP Utilities

        • Working with the Command-Line Interpreter

        • Building a Simple Reminder Tool

        • Building a Geo Location Finder Tool for IP

        • Building a Hard Disk Usage Monitoring Utility

        • Building a CPU Load Monitoring Utility

        • Summary

      • Chapter 17: Apache Virtual Host Maker

        • Understanding an Apache Virtual Host

        • Defining Configuration Tasks

        • Creating a Configuration Script

        • Developing makesite

        • Installing makesite on Your System

        • Testing makesite

        • Summary

      • Chapter 18: BIND Domain Manager

        • Features of makezone

        • Creating the Configuration File

        • Understanding makezone

        • Installing makezone

        • Testing makezone

        • Summary

    • Part V

      • Chapter 19: Web Forms Manager

        • Functionality Requirements

        • Understanding Prerequisites

        • Designing the Database

        • Designing and Implementing the Web Forms Manager Application Classes

        • Creating the Application Configuration Files

        • Creating Application Templates

        • Creating the Web Forms Submission Manager Application

        • Creating the Web Forms Reporter Application

        • Creating the CSV Data Exporter Application

        • Installing the Web Forms Manager

        • Testing the Web Forms Manager

        • Security Considerations

        • Summary

      • Chapter 20: Web Site Tools

        • Functionality Requirements

        • Understanding Prerequisites

        • Designing the Database

        • Designing and Implementing the Voting Tool Application Class

        • Creating the Application Configuration Files

        • Creating the Application Templates

        • Creating the Vote Application

        • Installing the Voting Tool

        • Testing the Voting Tool

        • Summary

    • Part VI

      • Chapter 21: Speeding Up PHP Applications

        • Benchmarking Your PHP Application

        • Buffering Your PHP Application Output

        • Compressing Your PHP Application Output

        • Caching Your PHP Applications

        • Summary

      • Chapter 22: Securing PHP Applications

        • Controlling Access to Your PHP Applications

        • Securely Uploading Files

        • Using Safe Database Access

        • Recommended php.ini Settings for a Production Environment

        • Limiting File System Access for PHP Scripts

        • Running PHP Applications in Safe Mode

        • Summary

    • Part VII

      • Appendix A: What's on the CD-ROM

        • System Requirements

        • What's on the CD

        • Troubleshooting

      • Appendix B: PHP Primer

        • Object-Oriented PHP

      • Appendix C: MySQL Primer

        • Using MySQL from the Command- Line

        • Using phpMyAdmin to Manage MySQL Database

      • Appendix D: Linux Primer

        • Installing and Configuring Apache 2.0

        • Installing and Configuring MySQL Server

        • Installing and Configuring PHP for Apache 2.0

        • Common File/Directory Commands

        • Index

        • Wiley Publishing, Inc. End-User License Agreement

Nội dung

authorize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 displayAddMessageMenu() . . . . . . . . . . . . . . . . . . . . . . . . . . 537 displayModMessageMenu() . . . . . . . . . . . . . . . . . . . . . . . . . 537 updateMessage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 deleteMessage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 addMessage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 getMsgPreviewInput() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 doPreview() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 showMsgPreview() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 appendHashes() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 Creating a Campaign Manager Application . . . . . . . . . . . . 538 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 createCampaign() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 delCampaign() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 modifyCampaign() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 authorize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 displayCampaignMenu() . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 addCampaign() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 updateCampaign() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 Creating a Campaign Execution Application . . . . . . . . . . . 541 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 executeCampaign() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 authorize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 Creating a URL Tracking and Redirection Application . . . . 544 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 computeCheckSum() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 keepTrackAndRedirect() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 redirectTest() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 Creating an Unsubscription Tracking Application . . . . . . . 545 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 computeCheckSum() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 askForConfirmation() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 unsubUser() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 Creating a Campaign Reporting Application . . . . . . . . . . . 547 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 showEcampaignReport() . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 authorize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 toggleDescField() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 Testing the E-Campaign System . . . . . . . . . . . . . . . . . . . . 549 Creating a list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 Creating a target URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 Creating a message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 Creating a campaign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 xxiv Contents 01549669 FM.qxd 4/4/03 9:23 AM Page xxiv Executing a campaign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 Viewing a campaign report . . . . . . . . . . . . . . . . . . . . . . . . . 554 Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 Part IV Using PHP for Sysadmin Tasks Chapter 16 Command-Line PHP Utilities . . . . . . . . . . . . . . . . . . . 559 Working with the Command-Line Interpreter . . . . . . . . . . 560 Reading standard input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Getting into arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 Building a Simple Reminder Tool . . . . . . . . . . . . . . . . . . . 569 Features of the reminder tool . . . . . . . . . . . . . . . . . . . . . . . . 570 Implementing the reminder tool . . . . . . . . . . . . . . . . . . . . . . 570 Installing the reminder tool as a cron job . . . . . . . . . . . . . . . . 582 Building a Geo Location Finder Tool for IP . . . . . . . . . . . 583 Building a Hard Disk Usage Monitoring Utility . . . . . . . . . 587 Installing the hdmonitor tool as a cron job . . . . . . . . . . . . . . 594 Building a CPU Load Monitoring Utility . . . . . . . . . . . . . . 595 Installing the loadmonitor tool as a cron job . . . . . . . . . . . . . 605 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 Chapter 17 Apache Virtual Host Maker . . . . . . . . . . . . . . . . . . . . . 607 Understanding an Apache Virtual Host . . . . . . . . . . . . . . . 607 Defining Configuration Tasks . . . . . . . . . . . . . . . . . . . . . . 609 Creating a Configuration Script . . . . . . . . . . . . . . . . . . . . . 611 Developing makesite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 Creating the makesite.conf file . . . . . . . . . . . . . . . . . . . . . . . 612 Creating the virtual host configuration . . . . . . . . . . . . . . . . . 615 Creating the contents configuration file . . . . . . . . . . . . . . . . . 617 Creating the e-mail template . . . . . . . . . . . . . . . . . . . . . . . . 618 Creating the makesite script . . . . . . . . . . . . . . . . . . . . . . . . . 619 Installing makesite on Your System . . . . . . . . . . . . . . . . . . 636 Testing makesite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 Chapter 18 BIND Domain Manager . . . . . . . . . . . . . . . . . . . . . . . . 641 Features of makezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 Creating the Configuration File . . . . . . . . . . . . . . . . . . . . . 642 Understanding makezone . . . . . . . . . . . . . . . . . . . . . . . . . . 647 The makezone Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 Installing makezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655 Testing makezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 Contents xxv 01549669 FM.qxd 4/4/03 9:23 AM Page xxv Part V Internet Applications Chapter 19 Web Forms Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 Functionality Requirements . . . . . . . . . . . . . . . . . . . . . . . . 661 Understanding Prerequisites . . . . . . . . . . . . . . . . . . . . . . . 662 Designing the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . 662 WEBFORMS_DL_TBL table . . . . . . . . . . . . . . . . . . . . . . . . . 663 X_TBL table (a sample form table) . . . . . . . . . . . . . . . . . . . . 663 Designing and Implementing the Web Forms Manager Application Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 Designing and implementing the ACL class . . . . . . . . . . . . . . 665 Designing and implementing the DataCleanup class . . . . . . . . 666 Designing and implementing the DataValidator class . . . . . . . . 667 Designing and implementing the FormSubmission class . . . . . . 669 Designing and implementing the FormData class . . . . . . . . . . 672 Creating the Application Configuration Files . . . . . . . . . . . 674 Creating the main configuration file . . . . . . . . . . . . . . . . . . . 674 Creating a sample form configuration file . . . . . . . . . . . . . . . 677 Creating the errors file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678 Creating Application Templates . . . . . . . . . . . . . . . . . . . . . 679 Creating the Web Forms Submission Manager Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680 showPage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680 authorize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 Creating the Web Forms Reporter Application . . . . . . . . . . 681 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 showReport() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 Creating the CSV Data Exporter Application . . . . . . . . . . . 682 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 processRequest() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 Installing the Web Forms Manager . . . . . . . . . . . . . . . . . . 683 Testing the Web Forms Manager . . . . . . . . . . . . . . . . . . . . 685 Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695 Chapter 20 Web Site Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 Functionality Requirements . . . . . . . . . . . . . . . . . . . . . . . . 697 Understanding Prerequisites . . . . . . . . . . . . . . . . . . . . . . . 698 Designing the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 VOTES Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 Designing and Implementing the Voting Tool Application Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 Designing and implementing the Vote class . . . . . . . . . . . . . . 699 xxvi Contents 01549669 FM.qxd 4/4/03 9:23 AM Page xxvi Creating the Application Configuration Files . . . . . . . . . . . 701 Creating the main configuration file . . . . . . . . . . . . . . . . . . . 701 Creating an errors file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 Creating the Application Templates . . . . . . . . . . . . . . . . . . 703 Creating the Vote Application . . . . . . . . . . . . . . . . . . . . . . 703 run() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 setPollID() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 getPollID() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 addVote() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 displayVoteResult() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 Installing the Voting Tool . . . . . . . . . . . . . . . . . . . . . . . . . 705 Testing the Voting Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . 706 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710 Part VI Tuning and Securing PHP Applications Chapter 21 Speeding Up PHP Applications . . . . . . . . . . . . . . 713 Benchmarking Your PHP Application . . . . . . . . . . . . . . . . 714 Benchmarking your code . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 Avoiding bad loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 Stress-testing your PHP applications using ApacheBench . . . . 722 Buffering Your PHP Application Output . . . . . . . . . . . . . . 723 Compressing Your PHP Application Output . . . . . . . . . . . . 725 Caching Your PHP Applications . . . . . . . . . . . . . . . . . . . . 727 Caching PHP contents using the jpcache cache . . . . . . . . . . . . 727 Caching PHP contents using the PEAR cache . . . . . . . . . . . . . 729 Using PHP opcode caching techniques . . . . . . . . . . . . . . . . . . 734 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 Chapter 22 Securing PHP Applications . . . . . . . . . . . . . . . . . . . . . 737 Controlling Access to Your PHP Applications . . . . . . . . . . 737 Restricting access to your PHP application-related files . . . . . . 738 Using Web server–based authentication . . . . . . . . . . . . . . . . 739 Using the MD5 message digest for login . . . . . . . . . . . . . . . . 740 Using Web server–based authorization . . . . . . . . . . . . . . . . . 743 Restricting write access to directories . . . . . . . . . . . . . . . . . . 744 Securely Uploading Files . . . . . . . . . . . . . . . . . . . . . . . . . . 744 Using Safe Database Access . . . . . . . . . . . . . . . . . . . . . . . . 747 Recommended php.ini Settings for a Production Environment . . . . . . . . . . . . . . . . . . . . . . . . . 748 Limiting File System Access for PHP Scripts . . . . . . . . . . . 748 Running PHP Applications in Safe Mode . . . . . . . . . . . . . 749 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750 Contents xxvii 01549669 FM.qxd 4/4/03 9:23 AM Page xxvii Part VII Appendixes Appendix A What’s on the CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . 753 Appendix B PHP Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757 Appendix C MySQL Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 Appendix D Linux Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833 Wiley Publishing, Inc. End-User License Agreement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881 xxviii Contents 01549669 FM.qxd 4/4/03 9:23 AM Page xxviii . . . . . . 710 Part VI Tuning and Securing PHP Applications Chapter 21 Speeding Up PHP Applications . . . . . . . . . . . . . . 713 Benchmarking Your PHP Application . . . . . . . . . . . . . . 718 Stress-testing your PHP applications using ApacheBench . . . . 722 Buffering Your PHP Application Output . . . . . . . . . . . . . . 723 Compressing Your PHP Application Output . . . . . . 725 Caching Your PHP Applications . . . . . . . . . . . . . . . . . . . . 727 Caching PHP contents using the jpcache cache . . . . . . . . . . . . 727 Caching PHP contents using the PEAR

Ngày đăng: 07/07/2014, 07:20