- 本カテゴリの商品を2500円以上購入で買取金額500円UPキャンペーン対象商品です。商品出荷時に買取サービスでご利用いただけるクーポンをメールにてご案内させていただきます。 詳細はこちら (細則もこちらからご覧いただけます)
Apache Modules Book, The: Application Development with Apache (Pearson Open Source Software Development Series) (英語) ペーパーバック – 2007/1/26
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
"Do you learn best by example and experimentation? This book is ideal. Have your favorite editor and compiler ready–you'll encounter example code you'll want to try right away. You've picked the right book–this is sure to become the de facto standard guide to writing Apache modules."
–Rich Bowen, coauthor, Apache Administrators Handbook, Apache Cookbook, and The Definitive Guide to Apache mod_rewrite
"A first-rate guide to getting the most out of Apache as a modular application platform–sure to become a must-read for any Apache programmer, from beginner to experienced professional. It builds up carefully and meticulously from the absolute basics, while including chapters on everything from the popular Apache DBD Framework to best practices, security, and debugging."
–Noirin Plunkett, documentation committer to the Apache httpd project, and member of the ASF conference committee
Apache is more than the world's most popular Web server–it's also an extraordinarily powerful and extensible development platform. Now, ApacheTutor.org's Nick Kew has written The Apache Modules Book, the first start-to-finish, example-rich guide for every developer who wants to make the most of Apache.
Kew begins with detailed, accessible introductions to Apache's architecture and API, then illuminates all the techniques you'll need, from request processing through code security. He brings together the best of both worlds: powerful C-based techniques for accomplishing tasks Perl or PHP can't handle, implemented with tools that deliver all the productivity you'd expect from higher-level languages. Utilizing realistic code samples, Kew introduces techniques documented in no other book-and, often, nowhere else at all.
- Using Apache Portable Runtime (APR) to streamline C development and avoid its pitfalls
- Leveraging Apache DBD to build applications far more scalable than classic LAMP software
- Working with the latest Apache 2.x features: filter modules, XML support, and smart proxies
- Mastering best practices, from thread safety to multi-platform development
- Utilizing the Apache Authentication Framework
- Tracing and debugging problems in both Apache and your custom modules
About the Author
Chapter 1 Applications Development with Apache
Chapter 2 The Apache Platform and Architecture
Chapter 3 The Apache Portable Runtime
Chapter 4 Programming Techniques and Caveats
Chapter 5 Writing a Content Generator
Chapter 6 Request Processing Cycle and Metadata Handlers
Chapter 7 AAA: Access, Authentication, and Authorization
Chapter 8 Filter Modules
Chapter 9 Configuration for Modules
Chapter 10 Extending the API
Chapter 11 The Apache Database Framework
Chapter 12 Module Debugging
Appendix A Apache License
Appendix B Contributor License Agreements
Appendix C Hypertext Transfer Protocol: HTTP/1.1
About the Web Site
ApacheTutor.org contains code examples from the book, all designed for easy use and integration into existing applications.
Nick Kew is a leading developer of Apache applications, many of which can be found at his company's site, http://apache.webthing.com. He is a member of the Apache Web server core development team and of the Apache Software Foundation. He is active in both user and developer support, and gives tutorials and presentations at relevant conferences such as ApacheCon. He created and maintains http://www.apachetutor.org, and writes on Apache topics for a range of leading online publications.
It's the best book out there, because it's the only book out there. The information that is in the book is very useful and indeed necessary, because it contains good explanations that are not easily found on Google and the only documentation (which is terrible).
Don't expect this book to contain everything you need to write your own non-trivial module. It's not going to happen. Major topics of critical importance are simply missing coverage here. For example, want to do a "one-time" initialization for your module during start up? Well, Google is your friend. How can such a basic topic NOT be covered in this book? For example, do you want to have a global variable in your module? No information in this book about that either-- which is a shame because you cannot simply declare a global variable in your module and expect it to work as expected (Requests are served by multiple httpd processes which don't share variables). The book teaches how modules interact with Apache server using "callback hooks". Want a list of all the different ways you can hook your callback functions (at startup, at shutdown, at initialization, at each request, etc.)? Hmmm, no dice again, Google and Stackoverflow.com are your friends. This is just basic information missing from the book. Lastly, don't expect to understand brigades and buckets from this book, which are absolutely fundamental if you want to write a filter module. There is a small section that provides an introduction to buckets and brigades, but you get barely enough information to even get started. In conclusion, the only practical way to write a non-trivial module is to get this book, and then spend a lot of time doing the following: Google searches, trial and error experimentation, reading the online APR and module documentation (which itself is woefully inadequate).
Writing Apache modules is not for the faint of heart-- to do it correctly requires a smart person who is committed to the task. So with all that said, the book IS worth buying if you are going to write a non-trivial Apache module. There is a lot of useful information here that you will definitely need to write modules. And that information is presented reasonably well.
I spent two weeks scouring the net for APR examples and explanations. I started with the O'Reilly books only to find they are incredibly out of date. I moved on to Apache sanctioned module source code. I dissected source code for other modules only to find that the examples fluctuated on approach and, apparently, on the author's grasp of the entire APR libraries. Some folks wrote against previous APR version libraries and macros. Others used the updated APR. Still others rolled their own versions of functions that were already written, just not discovered. Tutorials varied in reliability with similar issues. And my desk quickly filled with highlighted and sticky-noted annotated examples.
This book replaced all those loose inconsistent notes with a solid example-centric nicely bound guide. Five stars. Just for that.
This book is not without problems though. First, it makes reference to programming paradigms which, frankly, I've never heard of before and which this book inadequately explains. Brigade buckets is an example. Bridage buckets are incrementally explained as a ring data store (eh?), a doubly linked list (okay, firm ground), and then a mechanism for passing data through layered IO (another eh?). I couldn't get much from the explanation. Googling "brigade bucket" led to IEEE DSP circuit design and a heated debate on using solid state delay effects for guitar pedals. Apparently brigade buckets don't quote share the same prolific status as, say, something more Knuth-ess.
The book explained thread safety in a similarly gap toothed summary. It offers this fatherly advice: avoid shared memory and make sure functions are reentrant. That wasn't much help for me. I'd prefer to have a detailed explanation of why the APR libraries have both reentrant and non-reentrant versions of the same functions. Wouldn't any reasonable programmer always use the reentrant version? If not, I'd like to know why... with some precision.
The final gripe: the book includes RFC 2616 in it's entirety. This needlessly adds 200 pages of non-original and otherwise easily (and FREEly) accessibe volume. Granted, the publisher formatted the RFC nicely. It's a bit easier to read than the fixed format of the real RFC. But why not add a few notes? The author could have taken the edge off of the RFC-legalese and made it a bit more approachable (think learning bible with more notes than text). At the risk of discouraging future books of this level, the RFC is a blatant copout and just a really disgusting way of bumping page numbers.
So, those are the issues I had. I'm still giving this a solid five as it outshines any other information I've found to date.