62
mod_php vs PHP CLI vs FastCGI vs FPM @jacques_thekit

mod_php vs FastCGI vs FPM vs CLI

Embed Size (px)

Citation preview

Page 1: mod_php vs FastCGI vs FPM vs CLI

mod_php vs PHP CLI vs FastCGI vs FPM@jacques_thekit

Page 2: mod_php vs FastCGI vs FPM vs CLI

• Graphic designer turned programmer• PHP/JS Developer 10 years

experience• Have worked in Python, ActionScript,

ColdFusion, others… • Big community supporter• Co-author of virtPHP

The beard is on the way back

Who am I?

Page 3: mod_php vs FastCGI vs FPM vs CLI
Page 4: mod_php vs FastCGI vs FPM vs CLI

Some Questions:Do you know?

Page 5: mod_php vs FastCGI vs FPM vs CLI

Some house keepingWhat is a process?

Page 6: mod_php vs FastCGI vs FPM vs CLI

A process is

Page 7: mod_php vs FastCGI vs FPM vs CLI

A process isAn app answering a request

Request

App

Response

Page 8: mod_php vs FastCGI vs FPM vs CLI

A thread isAn task requested by a process

Request

Process

Response

Thread Thread Thread

Page 9: mod_php vs FastCGI vs FPM vs CLI

What is PHP, really?

Page 10: mod_php vs FastCGI vs FPM vs CLI

C Binary

Page 11: mod_php vs FastCGI vs FPM vs CLI

C Binary

Computer

Page 12: mod_php vs FastCGI vs FPM vs CLI

C Binary

Computer

Request

Page 13: mod_php vs FastCGI vs FPM vs CLI

?

Page 14: mod_php vs FastCGI vs FPM vs CLI

C Binary

Computer

RequestServer

Port

Page 15: mod_php vs FastCGI vs FPM vs CLI

Ready to keep diving?That was the easy part.

Page 16: mod_php vs FastCGI vs FPM vs CLI

How does our server talk to PHP?

Page 17: mod_php vs FastCGI vs FPM vs CLI

C Binary

SAPI

Page 18: mod_php vs FastCGI vs FPM vs CLI

SAPI: Server Application Interface

Page 19: mod_php vs FastCGI vs FPM vs CLI

C Binary

mod_php

FPMCLI

Page 20: mod_php vs FastCGI vs FPM vs CLI
Page 21: mod_php vs FastCGI vs FPM vs CLI

http://www.slideshare.net/auroraeosrose/php-extensions-45834933

Even extensions

Page 22: mod_php vs FastCGI vs FPM vs CLI

What are the types?The rabbit hole keeps going.

Page 23: mod_php vs FastCGI vs FPM vs CLI

mod_php FastCGI FPM CLI

And Others

Page 24: mod_php vs FastCGI vs FPM vs CLI

Starting with CGIApplies both to CGI and FPM

Page 25: mod_php vs FastCGI vs FPM vs CLI

C Binary

Computer

Request

Page 26: mod_php vs FastCGI vs FPM vs CLI

Computer

Request

CGI isolates requests to “locked down” environments

Page 27: mod_php vs FastCGI vs FPM vs CLI

Computer

Request

FastCGI

FastCGI acts as interface to CGI and script

Page 28: mod_php vs FastCGI vs FPM vs CLI

Computer

Request

FPM

FPM = FastCGI Process Manager

Page 29: mod_php vs FastCGI vs FPM vs CLI

How is mod_php different? Apache baby!

Page 30: mod_php vs FastCGI vs FPM vs CLI

mod_php

apache

Request

Page 31: mod_php vs FastCGI vs FPM vs CLI

apache ≠ CGI

Page 32: mod_php vs FastCGI vs FPM vs CLI

apache = web server

Page 33: mod_php vs FastCGI vs FPM vs CLI

and so is nginx

Page 34: mod_php vs FastCGI vs FPM vs CLI
Page 35: mod_php vs FastCGI vs FPM vs CLI

nginx vs apacheThis rabbit needs some white gloves

Page 36: mod_php vs FastCGI vs FPM vs CLI

apache mpm_prefork

Page 37: mod_php vs FastCGI vs FPM vs CLI

apache

Page 38: mod_php vs FastCGI vs FPM vs CLI

apache

Request

Page 39: mod_php vs FastCGI vs FPM vs CLI

apache

Request

Request

Page 40: mod_php vs FastCGI vs FPM vs CLI

apache

Request

Page 41: mod_php vs FastCGI vs FPM vs CLI

nginx

Request Request

Page 42: mod_php vs FastCGI vs FPM vs CLI

nginx

Request Request

Request

Page 43: mod_php vs FastCGI vs FPM vs CLI

nginx

Request

Request

Request

Page 44: mod_php vs FastCGI vs FPM vs CLI

nginx

Request

Request

Page 45: mod_php vs FastCGI vs FPM vs CLI

apache

Request

PHP PHP PHP PHP PHP

Page 46: mod_php vs FastCGI vs FPM vs CLI

apache

PHP PHP PHP PHP PHP

nginx

Request Request

PHP

Page 47: mod_php vs FastCGI vs FPM vs CLI

apache

PHP PHP PHP PHP PHP

nginx

StaticDynamic

Reverse Proxy

Page 48: mod_php vs FastCGI vs FPM vs CLI

Are we done?

Page 49: mod_php vs FastCGI vs FPM vs CLI

sum that up for me

Page 50: mod_php vs FastCGI vs FPM vs CLI

The types of PHP are just APIs for web servers to interface with PHP

Page 51: mod_php vs FastCGI vs FPM vs CLI

The web server you use will most likely determine what type of PHP to use.

Page 52: mod_php vs FastCGI vs FPM vs CLI

You should consider your needs before picking which version of PHP to use.

Page 53: mod_php vs FastCGI vs FPM vs CLI

What about CLI?

Page 54: mod_php vs FastCGI vs FPM vs CLI

CLI is command line SAPIyou know $ php…

Page 55: mod_php vs FastCGI vs FPM vs CLI

$ php -a access interactive shell

Page 56: mod_php vs FastCGI vs FPM vs CLI

$ php -r “echo ‘hi’”;

hi

Page 57: mod_php vs FastCGI vs FPM vs CLI

$ php your_file.php

Page 58: mod_php vs FastCGI vs FPM vs CLI
Page 59: mod_php vs FastCGI vs FPM vs CLI

virtPHP

Page 60: mod_php vs FastCGI vs FPM vs CLI

mod_php vs PHP CLI vs FastCGI vs FPM@jacques_thekit

Page 61: mod_php vs FastCGI vs FPM vs CLI

Resourceshttps://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations http://www.php-cli.com http://php-fpm.org http://php.net/manual/en/install.fpm.php http://www.fastcgi.com/drupal/node/5?q=node/10 http://www.suphp.org/Home.htmlt http://www.sitepoint.com/setting-up-php-behind-nginx-with-fastcgi/ https://www.chriswiegman.com/2011/10/fastcgi-vs-suphp-vs-cgi-vs-mod_php-dso/

Page 62: mod_php vs FastCGI vs FPM vs CLI

mod_php vs PHP CLI vs FastCGI vs FPM@jacques_thekit