Apache is far and away the most widely used web server platform in the world. This versatile server runs more than half of the world's existing web sites. Apache is both free and rock-solid, running more than 21 million web sites ranging from huge e-commerce operations to corporate intranets and smaller hobby sites.With this new third edition of Apache: The Definitive Guide, web administrators new to Apache will come up to speed quickly, and experienced administrators will find the logically organized, concise reference sections indispensable, and system programmers interested in customizing their servers will rely on the chapters on the API and Apache modules.Updated to cover the changes in Apache's latest release, 2.0, as well as Apache 1.3, this useful guide discusses how to obtain, set up, secure, modify, and troubleshoot the Apache software on both Unix and Windows systems. Dozens of clearly written examples provide the answers to the real-world issues that Apache administrators face everyday. In addition to covering the installation and configuration of mod_perl and Tomcat, the book examines PHP, Cocoon, and other new technologies that are associated with the Apache web server. Additional coverage of security and the Apache 2.0 API make Apache: The Definitive Guide, Third Edition essential documentation for the world's most popular web server.
Author(s): Ben Laurie, Peter Laurie
Edition: Third Edition
Publisher: O'Reilly Media
Year: 2002
Language: English
Pages: 536
Table of Contents......Page 7
Preface......Page 13
Who Wrote Apache, and Why?......Page 15
Icons......Page 16
ServerAdmin......Page 17
Organization of This Book......Page 18
Acknowledgments......Page 19
What Does a Web Server Do?......Page 21
Criteria for Choosing a Web Server......Page 22
Why Apache?......Page 23
How Apache Works......Page 24
What to Know About TCP/IP......Page 25
How Apache Uses TCP/IP......Page 27
Multiple sites: Unix......Page 28
How HTTP Clients Work......Page 29
What Happens at the Server End?......Page 32
Which Unix?......Page 33
Windows?......Page 34
Apache 2.0 and Win32......Page 35
Making Apache 1.3.X Under Unix......Page 36
Modules Under Unix......Page 37
Compiled in modules......Page 38
Building Apache 1.3.X Under Unix......Page 39
Out of the Box......Page 40
Semimanual Build Method......Page 43
Choosing Modules......Page 44
Configuration Settings and Rules......Page 47
Making Apache......Page 48
New Features in Apache v2......Page 50
httpd Command-Line Changes......Page 51
Making and Installing Apache v2 Under Unix......Page 52
Apache Under Windows......Page 53
Modules Under Windows......Page 55
Compiling Apache Under Win32......Page 56
What’s Behind an Apache Web Site?......Page 57
Running Apache from the Command Line......Page 58
site.toddle......Page 59
Setting Up a Unix Server......Page 60
User......Page 64
“Out of the Box” Default Problems......Page 65
Running Apache Under Unix......Page 66
Unix Permissions......Page 68
A Local Network......Page 70
Console Window......Page 72
Apache as a Service......Page 74
DocumentRoot......Page 75
ErrorLog......Page 76
Shared Objects Under Unix......Page 77
LoadModule......Page 78
AddModule......Page 79
More and Better Web Sites: site.simple......Page 80
ErrorDocument......Page 82
Butterthlies, Inc., Gets Going......Page 83
Default Index......Page 85
Block Directives......Page 86
......Page 87
and ......Page 88
ServerName......Page 89
ServerSignature......Page 90
ServerPath......Page 91
CoreDumpDirectory......Page 92
AcceptMutex......Page 93
HostNameLookups......Page 94
Limit......Page 95
LimitRequestFields......Page 96
LimitRequestLine......Page 97
Header......Page 98
Header......Page 99
Options......Page 100
FollowSymLinks, SymLinksIfOwnerMatch......Page 101
Restarts......Page 102
MetaFiles......Page 103
ExpiresByType......Page 104
ExpiresDefault......Page 105
Virtual Hosts......Page 106
NameVirtual host......Page 107
IP-Based Virtual Hosts......Page 108
Mixed Name/IP-Based Virtual Hosts......Page 109
Two Copies of Apache......Page 110
Port......Page 111
ServerType......Page 112
Dynamically Configured Virtual Hosting......Page 113
Examples......Page 114
VirtualDocumentRootIP......Page 116
VirtualScriptAliasIP......Page 117
Authentication Protocol......Page 118
site.authent......Page 119
AuthUserFile......Page 120
AuthDBAuthoritative......Page 121
AuthDBMAuthoritative......Page 122
satisfy......Page 123
Passwords Under Unix......Page 124
Passwords Under Win32......Page 125
Variations on a Theme......Page 126
allow from......Page 127
deny from env......Page 128
Order......Page 129
DBM Files on Unix......Page 130
Security......Page 132
Digest Authentication......Page 133
ContentDigest......Page 136
Anonymous Access......Page 137
Anonymous_LogEmail......Page 138
Experiments......Page 139
Automatic User Information......Page 140
Using .htaccess Files......Page 141
AccessFileName......Page 142
AllowOverride......Page 143
MIME Types......Page 145
TypesConfig......Page 146
ForceType......Page 147
AddEncoding......Page 148
AddDefaultCharset......Page 149
AddHandler......Page 150
AcceptFilter......Page 151
MultiviewsMatch......Page 152
Language Negotiation......Page 153
AddLanguage......Page 155
Type Maps......Page 156
Browsers and HTTP 1.1......Page 159
AddInputFilter......Page 160
SetOutputFilter......Page 161
RemoveOutputFilter......Page 162
Making Better Indexes in Apache......Page 163
IndexOptions......Page 164
IndexOrderDefault......Page 166
IndexIgnore......Page 167
AddIcon......Page 168
AddDescription......Page 169
AddAltByType......Page 170
HeaderName......Page 171
DirectoryIndex......Page 172
Imagemaps......Page 176
Map File......Page 177
ImapBase......Page 179
ImapMenu......Page 180
ImapDefault......Page 181
Redirection......Page 182
Alias......Page 183
A Subtle Problem......Page 184
ScriptAlias......Page 185
Alias......Page 186
UserDir......Page 187
Redirect......Page 188
RedirectPermanent......Page 189
Rewrite......Page 190
RewriteMap......Page 191
RewriteBase......Page 192
RewriteOptions......Page 193
RewriteRule......Page 194
A Rewrite Example......Page 195
CheckSpelling......Page 197
Security......Page 198
ProxyRequests......Page 199
ProxyDomain......Page 200
ProxyVia......Page 201
Apparent Bug......Page 202
CacheRoot......Page 203
CacheDefaultExpire......Page 204
NoCache......Page 205
Setup......Page 206
Reverse Proxy......Page 208
Logging by Script and Database......Page 211
Apache’s Logging Facilities......Page 212
TransferLog......Page 213
LogLevel......Page 214
LogFormat......Page 215
site.authent—Another Example......Page 217
Configuration Logging......Page 219
AddModuleInfo......Page 221
Server Status......Page 222
ExtendedStatus......Page 224
Security......Page 225
Internal and External Users......Page 226
Binary Signatures, Virtual Cash......Page 228
Certificates......Page 231
Firewalls......Page 233
Separate Networks......Page 234
Advantages......Page 235
Disadvantages......Page 236
Secure Sockets Layer (SSL)......Page 237
SSL with Apache v1.3......Page 238
OpenSSL......Page 239
Rebuild Apache......Page 240
Config file......Page 241
mod_ssl with Apache 1.3......Page 244
Config file......Page 247
Environment variables......Page 248
Make a Test Certificate......Page 249
The Global Session Cache......Page 252
SSLRequireSSL......Page 253
SSLCacheServerPort......Page 254
SSLCertificateFile......Page 255
SSLVerifyDepth......Page 256
SSLRandomFilePerConnection......Page 257
CustomLog......Page 258
SSLPassPhraseDialog......Page 259
SSLRandomSeed......Page 260
SSLEngine......Page 262
SSLCertificateKeyFile......Page 263
SSLCACertificatePath......Page 264
SSL CAR evocation file......Page 265
SSLLogLevel......Page 266
SSLOptions......Page 267
SSLRequire......Page 269
SSLRequiredCiphers......Page 271
SSLCipherSuite......Page 273
Security in Real Life......Page 277
Demo Client Certificate......Page 278
Get the CA Certificate......Page 279
EROS......Page 281
E......Page 282
Server Security......Page 283
The Apache Web Site......Page 284
Nonscript-aliased CGI......Page 285
Protect server files by default......Page 286
Development Machines......Page 287
The Live Site......Page 288
Supporting Software......Page 289
Database Manager......Page 290
PGP......Page 291
Credit Cards......Page 292
Backend Networks......Page 294
Apache’s mod_info......Page 295
Shared Versus Replicated DBs......Page 296
mod_backhand......Page 297
Installation of mod_backhand......Page 298
Backhand......Page 299
MulticastStats......Page 300
HTTPRedirectToName......Page 301
BackhandLogLevel......Page 302
byBusyChildren......Page 303
bySession......Page 304
The Config File......Page 305
Example Site......Page 306
Web Sites as Applications......Page 311
A Closer Look at HTTP......Page 312
Creating a Form......Page 313
Providing Application Logic......Page 315
PHP......Page 316
Perl......Page 317
Java......Page 318
XML, XSLT, and Web Applications......Page 319
Server-Side Includes......Page 321
File Modification Time......Page 324
Execute CGI......Page 325
Echo......Page 326
SSIStartTag......Page 327
XBitHack......Page 328
XSSI......Page 329
Installing PHP......Page 330
Site.php......Page 331
Errors......Page 334
Standalone PHP Scripts......Page 335
The World of CGI......Page 336
Executable script......Page 337
Script in DocumentRoot......Page 338
Databases......Page 340
Running a Script via Apache......Page 344
Quote Marks......Page 345
HTTP Header......Page 347
Getting Data from the Client......Page 348
Questions and answers......Page 349
Environment Variables......Page 353
PassEnv......Page 354
Cookies......Page 355
Apache Cookies......Page 356
The Config File......Page 357
Email......Page 358
Search Engines and CGI......Page 359
Debugging......Page 360
Debuggers......Page 362
Security......Page 363
ScriptAlias......Page 364
ScriptLogBuffer......Page 365
suEXEC on Unix......Page 366
A Demonstration of suEXEC......Page 371
Handlers......Page 373
RemoveHandler......Page 374
Action......Page 375
Browsers......Page 376
BrowserMatch and BrowserMatchNoCase......Page 377
downgrade-1.0......Page 378
mod_perl......Page 379
How mod_perl Works......Page 380
Installing mod_perl—The Simple Way......Page 381
Linking More Than One Module......Page 383
Installation Gotchas......Page 384
Global Variables......Page 385
Strict Pregame......Page 387
Opening and Closing Files......Page 388
Performance Tuning......Page 389
KeepAlives and MaxClients......Page 390
Profiling......Page 391
mod_jserv......Page 392
Making gmake......Page 393
Building JServ......Page 394
ApJServLogFile......Page 398
ApJServDefaultHost......Page 399
ApJServSecretKey......Page 400
ApJServAction......Page 401
Writing a Servlet......Page 402
Tomcat......Page 404
Installation of Tomcat......Page 405
Bin......Page 407
Writing and Testing a Servlet......Page 408
mod_jk......Page 409
XML......Page 413
Cocoon 1.8 and JServ......Page 417
Cocoon 2.0.3 and Tomcat......Page 420
Testing Cocoon......Page 421
Documentation......Page 424
Pools......Page 425
Per-Server Configuration......Page 426
Per-Directory Configuration......Page 430
Per-Request Information......Page 433
Hooks, Optional Hooks, and Optional Functions......Page 437
Hooks......Page 438
Optional Hooks......Page 440
Optional Hook Example......Page 441
Optional Functions......Page 443
Optional Function Example......Page 444
Filters, Buckets, and Bucket Brigades......Page 446
Bucket Interface......Page 447
Output Filters......Page 448
Input Filters......Page 452
Modules......Page 456
Overview......Page 458
Status Codes......Page 460
Create Per-Server Config Structure......Page 462
Create Per-Directory Config Structure......Page 463
Per-Server Merger......Page 464
Per-Directory Merger......Page 465
Command Table......Page 467
Initializer......Page 472
Child Initialization......Page 475
Post Read Request......Page 476
Quick Handler (2.0)......Page 477
Translate Name......Page 480
Map to Storage (2.0)......Page 483
Header Parser......Page 484
Check Access......Page 486
Check User ID......Page 489
Check Auth......Page 490
Type Checker......Page 491
Prerun Fixups......Page 493
Handlers......Page 494
Logger......Page 495
Child Exit......Page 496
Overview......Page 497
Example Output......Page 507
General Hints......Page 513
Porting to Apache 2.0......Page 514
Pools......Page 519
Per-Server Configuration......Page 520
Per-Directory Configuration......Page 521
Per-Request Information......Page 522
Access to Configuration and Request Information......Page 524
ap_palloc......Page 525
ap_make_array......Page 526
ap_append_arrays......Page 527
ap_table_setn......Page 528
ap_table_unset......Page 529
ap_register_cleanup......Page 530
ap_note_cleanups_for_socket......Page 531
ap_pclosef......Page 532
ap_pregcomp......Page 533
ap_note_subprocess......Page 534
ap_can_exec......Page 535
ap_scan_script_header......Page 536
ap_MD5Update......Page 537
ap_destroy_mutex......Page 538
acquire_event......Page 539
exit_thread......Page 540
ap_get_gmtoff......Page 541
ap_is_matchexp......Page 542
ap_get_token......Page 543
ap_checkmask......Page 544
ap_rind......Page 545
ap_count_dirs......Page 546
ap_os_escape_path......Page 547
ap_fnmatch......Page 548
ap_gname2id......Page 549
ap_send_fd......Page 550
ap_rputs......Page 551
ap_setup_client_block......Page 552
ap_sub_req_lookup_uri......Page 553
ap_hard_timeout......Page 554
ap_unblock_alarms()......Page 555
ap_cfg_getline......Page 556
ap_set_flag_slot......Page 557
ap_allow_options......Page 558
ap_requires......Page 559
ap_add_version_component......Page 560
ap_log_error......Page 561
ap_bcreate......Page 562
ap_bgetopt......Page 563
ap_bfileno......Page 564
ap_bwrite......Page 565
ap_bflush......Page 566
ap_parse_hostinfo_components......Page 567
ap_default_port......Page 568
ap_get_module_config......Page 569
ap_os_dso_load......Page 570
ap_psignature......Page 571
ap_vformatter......Page 572
Index......Page 573