SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
Nginx,	 Percona,	 PHP,	 WordPress
WordPress	 on	 ConoHa
14年4月15日火曜日
OKAMOTO
Wataru
@wokamoto14年4月15日火曜日
14年4月15日火曜日
WordPress	 Template
14年4月15日火曜日
* WordPress について
* Nginx とは?
* Nginx Reverse Proxy Cache の紹介
* MySQL チューニングの勘所
* monit によるプロセス監視
* WordPress Template の紹介
* wp-cli の紹介
* VM Image 作成に使用しているツール
Menu	 for	 Today
14年4月15日火曜日
WordPress
WordPress	 について
14年4月15日火曜日
WordPress	 ?
* OSS のブログ/CMSプラットフォーム
* トラフィック量上位100万サイトでのシェア60%
14年4月15日火曜日
WordPress	 ?
14年4月15日火曜日
WordPress	 ?
14年4月15日火曜日
Nginx
Nginx	 とは?
14年4月15日火曜日
Nginx	 ?
* OSS の軽量 HTTP サーバ
* スレッドモデルでは無く、イベントループモデルを採用
* トラフィック量上位100万サイトでのシェア20%
14年4月15日火曜日
Nginx	 ?
14年4月15日火曜日
Nginx	 ?
14年4月15日火曜日
WordPres.com	 でも採用
$	
  wget	
  -­‐S	
  -­‐-­‐spider	
  http://wordpress.com
wordpress.com|66.155.11.243|:80	
  に接続しています...	
  接続しました。
HTTP	
  による接続要求を送信しました、応答を待っています...	
  
	
  	
  HTTP/1.1	
  200	
  OK
	
  	
  Server:	
  nginx
	
  	
  Date:	
  Tue,	
  15	
  Apr	
  2014	
  05:58:07	
  GMT
	
  	
  Content-­‐Type:	
  text/html;	
  charset=utf-­‐8
	
  	
  Connection:	
  keep-­‐alive
	
  	
  Vary:	
  Accept-­‐Encoding
	
  	
  X-­‐Frame-­‐Options:	
  SAMEORIGIN
	
  	
  Vary:	
  Cookie
	
  	
  Set-­‐Cookie:	
  wordpress_homepage=existing;	
  expires=Wed,	
  30-­‐Apr-­‐2014	
  
05:58:07	
  GMT
Nginx	 ?
14年4月15日火曜日
PHP	 は	 fast-CGI	 で
Apache の mod_php のように Web サーバと同一プロセ
スで php を動作させることはできません。
php-fpm などを使って別プロセスで動作させる必要があり
ます。
Nginx	 ?
14年4月15日火曜日
Nginx	 +	 php-fpm
14年4月15日火曜日
nginx.conf	 の例
server	
  {
	
  	
  listen	
  	
  	
  	
  	
  	
  80	
  default;
	
  	
  server_name	
  _;
	
  	
  root	
  	
  	
  	
  	
  	
  	
  	
  /path/to/app;
	
  	
  index	
  	
  	
  	
  	
  	
  	
  index.php	
  index.html	
  index.htm;
	
  	
  charset	
  	
  	
  	
  	
  utf-­‐8;
	
  	
  location	
  ~	
  .php$	
  {
	
  	
  	
  	
  fastcgi_pass	
  	
  	
  unix:/var/run/php-­‐fpm.sock;
	
  	
  	
  	
  fastcgi_index	
  	
  index.php;
	
  	
  	
  	
  fastcgi_param	
  SCRIPT_FILENAME
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  $document_root
Nginx	 +	 php-fpm
14年4月15日火曜日
php-fpm.conf	 の例
[www]
listen	
  =	
  /var/run/php-­‐fpm.sock
listen.owner	
  =	
  nginx
listen.group	
  =	
  nginx
listen.mode	
  =	
  0666
user	
  =	
  nginx
group	
  =	
  nginx
pm	
  =	
  dynamic
pm.max_children	
  =	
  15
pm.start_servers	
  =	
  5
Nginx	 +	 php-fpm
14年4月15日火曜日
Nginx
Performance
Nginx	 Reverse	 Proxy	 Cache	 の紹介
14年4月15日火曜日
Nginx	 Performance
Apache,	 mod_php,	 WordPress	 
14年4月15日火曜日
ab -n 100 -c 10 (WordPress トップページ)
* Requests per second: 4.26 [#/sec]
* Time per request: 2346.174 [ms]
* Connection Times Total: 2309 [ms]
Nginx	 Performance
Apache,	 mod_php,	 WordPress	 
14年4月15日火曜日
Nginx	 Performance
Nginx,	 php-fpm,	 WordPress	 
14年4月15日火曜日
ab -n 100 -c 10 (WordPress トップページ)
* Requests per second: 5.79 [#/sec]
* Time per request: 1726.535 [ms]
* Connection Times Total: 1617 [ms]
Nginx	 Performance
Nginx,	 php-fpm,	 WordPress	 
14年4月15日火曜日
Nginx	 Performance
Reverse	 Proxy	 Cache	 
14年4月15日火曜日
ab -n 100 -c 10 (WordPress トップページ)
* Requests per second: 141.24 [#/sec]
* Time per request: 708.007 [ms]
* Connection Times Total: 636 [ms]
Nginx	 Performance
Nginx	 Reverse	 Proxy	 Cache,	 WordPress	 
14年4月15日火曜日
Nginx
Reverse	 Proxy	 Cache
14年4月15日火曜日
nginx.conf	 の例
http	
  {
	
  	
  	
  	
  	
  	
  :
	
  	
  proxy_cache_path	
  	
  /var/cache/nginx/proxy_cache	
  levels=1:2
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  keys_zone=czone:32m	
  max_size=256m	
  inactive=1440m;
	
  	
  proxy_temp_path	
  	
  	
  /var/cache/nginx/proxy_temp;
	
  	
  proxy_cache_key	
  	
  	
  "$scheme://$host$request_uri";
	
  	
  proxy_set_header	
  	
  Host	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  $host;
	
  	
  proxy_set_header	
  	
  Remote-­‐Addr	
  	
  	
  	
  	
  	
  	
  	
  $remote_addr;
	
  	
  proxy_set_header	
  	
  X-­‐Forwarded-­‐Host	
  	
  	
  $host;
	
  	
  proxy_set_header	
  	
  X-­‐Forwarded-­‐Server	
  $host;
	
  	
  proxy_set_header	
  	
  X-­‐Forwarded-­‐For	
  	
  	
  	
  $proxy_add_x_forwarded_for;
	
  	
  upstream	
  backend	
  {
	
  	
  	
  	
  server	
  unix:/var/run/nginx-­‐backend.sock;
	
  	
  }
	
  	
  	
  	
  	
  	
  :
}
Reverse	 Proxy	 Cache
14年4月15日火曜日
server	
  {
	
  	
  listen	
  	
  	
  	
  	
  	
  80	
  default;
	
  	
  server_name	
  _;
	
  	
  root	
  	
  	
  	
  	
  	
  	
  	
  /path/to/app;
	
  	
  index	
  	
  	
  	
  	
  	
  	
  index.php	
  index.html	
  index.htm;
	
  	
  location	
  ~*	
  .(js|css|html?|xml|jpe?g|gif|png|swf|wmv|flv|ico)$	
  {
	
  	
  	
  	
  expires	
  365d;
	
  	
  }
	
  	
  location	
  /	
  {
	
  	
  	
  	
  set	
  $do_not_cache	
  0;
	
  	
  	
  	
  if	
  ($request_method	
  =	
  POST)	
  {
	
  	
  	
  	
  	
  	
  set	
  $do_not_cache	
  1;
	
  	
  	
  	
  }
	
  	
  	
  	
  proxy_no_cache	
  	
  	
  	
  	
  $do_not_cache;
	
  	
  	
  	
  proxy_cache_bypass	
  $do_not_cache;
	
  	
  	
  	
  proxy_redirect	
  	
  	
  	
  	
  off;
	
  	
  	
  	
  proxy_cache	
  	
  	
  	
  	
  	
  	
  	
  czone;
	
  	
  	
  	
  proxy_cache_key	
  	
  	
  	
  "$scheme://$host$request_uri";
	
  	
  	
  	
  proxy_cache_valid	
  	
  200	
  0m;
	
  	
  	
  	
  proxy_pass	
  http://backend;
	
  	
  }
}
14年4月15日火曜日
server	
  {
	
  	
  listen	
  	
  	
  	
  	
  	
  unix:/var/run/nginx-­‐backend.sock;
	
  	
  server_name	
  _;
	
  	
  root	
  	
  	
  	
  	
  	
  	
  	
  /path/to/app;
	
  	
  index	
  	
  	
  	
  	
  	
  	
  index.php	
  index.html	
  index.htm;
	
  	
  charset	
  	
  	
  	
  	
  utf-­‐8;
	
  	
  gzip	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  off;
	
  	
  gzip_vary	
  	
  	
  	
  	
  	
  	
  	
  	
  off;
	
  	
  location	
  ~	
  .php$	
  {
	
  	
  	
  	
  fastcgi_pass	
  	
  	
  unix:/var/run/php-­‐fpm.sock;
	
  	
  	
  	
  fastcgi_index	
  	
  index.php;
	
  	
  	
  	
  fastcgi_param	
  	
  SCRIPT_FILENAME
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  $document_root$fastcgi_script_name;
	
  	
  	
  	
  include	
  	
  	
  	
  	
  	
  	
  	
  fastcgi_params;
	
  	
  	
  	
  fastcgi_pass_header	
  "X-­‐Accel-­‐Redirect";
	
  	
  	
  	
  fastcgi_pass_header	
  "X-­‐Accel-­‐Buffering";
	
  	
  	
  	
  fastcgi_pass_header	
  "X-­‐Accel-­‐Charset";
	
  	
  	
  	
  fastcgi_pass_header	
  "X-­‐Accel-­‐Expires";
	
  	
  	
  	
  fastcgi_pass_header	
  "X-­‐Accel-­‐Limit-­‐Rate";
	
  	
  }
}
14年4月15日火曜日
cache	 時間を	 php	 で制御
<?php
header('X-­‐Accel-­‐Expires:	
  '.	
  60	
  *	
  60	
  *	
  24);
?>
Reverse	 Proxy	 Cache
14年4月15日火曜日
WP	 Plugin“Nginx	 Cache	 Controller”
Reverse	 Proxy	 Cache
14年4月15日火曜日
WP	 Plugin“Nginx	 Mobile	 Theme”
Reverse	 Proxy	 Cache
14年4月15日火曜日
MySQL	 Tuning
MySQL	 チューニングの勘所
14年4月15日火曜日
MySQL	 Tuning
#	
  curl	
  -­‐L	
  mysqltuner.pl	
  |	
  perl
	
  	
  %	
  Total	
  	
  	
  	
  %	
  Received	
  %	
  Xferd	
  	
  Average	
  Speed	
  	
  	
  Ti
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Dload	
  	
  Upload	
  	
  	
  To
100	
  44790	
  	
  100	
  44790	
  	
  	
  	
  0	
  	
  	
  	
  	
  0	
  	
  26346	
  	
  	
  	
  	
  	
  0	
  	
  0:00
	
  >>	
  	
  MySQLTuner	
  1.3.0	
  -­‐	
  Major	
  Hayden	
  <major@mhtx.ne
	
  >>	
  	
  Bug	
  reports,	
  feature	
  requests,	
  and	
  downloads	
  a
	
  >>	
  	
  Run	
  with	
  '-­‐-­‐help'	
  for	
  additional	
  options	
  and	
  o
[!!]	
  Successfully	
  authenticated	
  with	
  no	
  password	
  -­‐	
  
[OK]	
  Currently	
  running	
  supported	
  MySQL	
  version	
  5.5.
[OK]	
  Operating	
  on	
  64-­‐bit	
  architecture
mysqltuner.pl
14年4月15日火曜日
MySQL	 Tuning
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  Storage	
  Engine	
  Statistics	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
[-­‐-­‐]	
  Status:	
  +ARCHIVE	
  +BLACKHOLE	
  +CSV	
  -­‐FEDERATED	
  +I
[-­‐-­‐]	
  Data	
  in	
  InnoDB	
  tables:	
  496K	
  (Tables:	
  12)
[-­‐-­‐]	
  Data	
  in	
  PERFORMANCE_SCHEMA	
  tables:	
  0B	
  (Tables:
[OK]	
  Total	
  fragmented	
  tables:	
  0
Storage	 Engine	 Statistics
14年4月15日火曜日
MySQL	 Tuning
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  Security	
  Recommendations	
  	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
[!!]	
  User	
  '@localhost'	
  has	
  no	
  password	
  set.
[!!]	
  User	
  '@v210-­‐172-­‐187-­‐188.z0d1.static.cnode.jp'	
  
[!!]	
  User	
  'root@127.0.0.1'	
  has	
  no	
  password	
  set.
[!!]	
  User	
  'root@::1'	
  has	
  no	
  password	
  set.
[!!]	
  User	
  'root@localhost'	
  has	
  no	
  password	
  set.
[!!]	
  User	
  'root@v210-­‐172-­‐187-­‐188.z0d1.static.cnode.
Security	 Recommendations
14年4月15日火曜日
MySQL	 Tuning
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  Performance	
  Metrics	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
[-­‐-­‐]	
  Up	
  for:	
  5h	
  5m	
  4s	
  (111	
  q	
  [0.006	
  qps],	
  8	
  conn,	
  T
[-­‐-­‐]	
  Reads	
  /	
  Writes:	
  96%	
  /	
  4%
[-­‐-­‐]	
  Total	
  buffers:	
  232.0M	
  global	
  +	
  1.5M	
  per	
  thread
[OK]	
  Maximum	
  possible	
  memory	
  usage:	
  424.0M	
  (2%	
  of	
  i
[OK]	
  Slow	
  queries:	
  0%	
  (0/111)
[OK]	
  Highest	
  usage	
  of	
  available	
  connections:	
  0%	
  (1/
[OK]	
  Key	
  buffer	
  size	
  /	
  total	
  MyISAM	
  indexes:	
  16.0M/
[OK]	
  Query	
  cache	
  efficiency:	
  41.3%	
  (38	
  cached	
  /	
  92	
  
[OK]	
  Query	
  cache	
  prunes	
  per	
  day:	
  0
[OK]	
  Sorts	
  requiring	
  temporary	
  tables:	
  0%	
  (0	
  temp	
  s
[!!]	
  Temporary	
  tables	
  created	
  on	
  disk:	
  28%	
  (2	
  on	
  di
Performance	 Metrics
14年4月15日火曜日
MySQL	 Tuning
-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  Recommendations	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
General	
  recommendations:
	
  	
  	
  	
  MySQL	
  started	
  within	
  last	
  24	
  hours	
  -­‐	
  recommenda
	
  	
  	
  	
  Enable	
  the	
  slow	
  query	
  log	
  to	
  troubleshoot	
  bad	
  q
	
  	
  	
  	
  When	
  making	
  adjustments,	
  make	
  tmp_table_size/ma
	
  	
  	
  	
  Reduce	
  your	
  SELECT	
  DISTINCT	
  queries	
  without	
  LIM
Variables	
  to	
  adjust:
	
  	
  	
  	
  tmp_table_size	
  (>	
  64M)
	
  	
  	
  	
  max_heap_table_size	
  (>	
  64M)
Performance	 Metrics
14年4月15日火曜日
Monit
monit	 によるプロセス監視
14年4月15日火曜日
Monit
14年4月15日火曜日
Monit
#	
  monit	
  の監視間隔
set	
  daemon	
  30
	
  	
  with	
  start	
  delay	
  5
	
  
#	
  web	
  ステータスチェック
set	
  httpd	
  port	
  2812	
  and
	
  	
  use	
  address	
  localhost
	
  	
  allow	
  localhost
	
  
#	
  アラートメールの送信先
set	
  alert	
  root@localhost
set	
  alert	
  example@example.com
	
  
#	
  設定ファイルのインクルード
include	
  /etc/monit.d/*
/etc/monit.conf	 の例
14年4月15日火曜日
Monit
check	
  process	
  mysqld
	
  	
  with	
  pidfile	
  /var/run/mysqld/mysqld.pid
	
  	
  start	
  program	
  =	
  "/sbin/service	
  mysqld	
  start"
	
  	
  stop	
  program	
  =	
  "/sbin/service	
  mysqld	
  stop"
/etc/monit.d/mysqld	 の例
14年4月15日火曜日
Monit
check	
  process	
  php-­‐fpm
	
  	
  with	
  pidfile	
  /var/run/php-­‐fpm/php-­‐fpm.pid
	
  	
  start	
  program	
  =	
  "/sbin/service	
  php-­‐fpm	
  start"
	
  	
  stop	
  program	
  =	
  "/sbin/service	
  php-­‐fpm	
  stop"
check	
  directory	
  php_tmp	
  with	
  path	
  "/var/tmp/php"
	
  	
  if	
  failed	
  uid	
  nginx	
  then	
  exec	
  "/bin/chown	
  -­‐R	
  nginx:nginx	
  /var/tmp/php"
check	
  directory	
  php_session	
  with	
  path	
  "/var/tmp/php/session"
	
  	
  if	
  failed	
  uid	
  nginx	
  then	
  exec	
  "/bin/chown	
  -­‐R	
  nginx:nginx	
  /var/tmp/php/ses
check	
  directory	
  php_log	
  with	
  path	
  "/var/log/php-­‐fpm"
	
  	
  if	
  failed	
  uid	
  nginx	
  then	
  exec	
  "/bin/chown	
  -­‐R	
  nginx:nginx	
  /var/log/php-­‐fpm
/etc/monit.d/php-fpm	 の例
14年4月15日火曜日
ConoHa
WordPress	 Template	 
WordPress	 テンプレートの紹介
14年4月15日火曜日
* OS: CentOS 6.5
* Web: Nginx ver.1.4.4
* PHP: php-fpm ver.5.4.23 with APC
* DB: Percona MySQL ver. 5.5.35
* System Monitoring: Monit ver.5.5
WordPress	 template
14年4月15日火曜日
WordPress	 template
Heartbleed?
#	
  rpm	
  -­‐q	
  openssl
openssl-­‐1.0.1e-­‐el6_5.7.x86_64
上記のパッケージ番号であれば対応済み
上記のパッケージ番号以外の場合は yum でアップデート
後、VPS を再起動してください。
#	
  yum	
  update	
  openssl
#	
  reboot
14年4月15日火曜日
WordPress	 template
14年4月15日火曜日
WP-CLI
wp-cli	 の紹介
14年4月15日火曜日
WP-CLI
14年4月15日火曜日
*	 WP-CLI	 Install
WP-CLI
$	
  curl	
  -­‐L	
  https://raw.github.com/wp-­‐cli/builds/
gh-­‐pages/phar/wp-­‐cli.phar	
  >	
  wp
$	
  chmod	
  +x	
  wp
14年4月15日火曜日
WP-CLI
$	
  cd	
  /path/to/wordpress
$	
  wp	
  core	
  download	
  -­‐-­‐locale=ja
$	
  wp	
  core	
  config	
  -­‐-­‐dbname=wp	
  
	
  	
  -­‐-­‐dbuser=wp_user	
  -­‐-­‐dbpass=password	
  
	
  	
  -­‐-­‐dbhost=localhost	
  -­‐-­‐locale=ja
$	
  wp	
  core	
  install	
  -­‐-­‐url=http://example.com	
  
	
  	
  -­‐-­‐title=test	
  -­‐-­‐admin_name=admin	
  
	
  	
  -­‐-­‐admin_email=admin@example.com	
  
	
  	
  -­‐-­‐admin_password=test
*	 WordPress	 Install
14年4月15日火曜日
WP-CLI
$	
  wp	
  plugin	
  install	
  hotfix
$	
  wp	
  plugin	
  activate	
  hotfix
$	
  wp	
  plugin	
  status
4	
  installed	
  plugins:
	
  	
  I	
  akismet	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  2.5.9
	
  	
  I	
  hello	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  1.6
	
  	
  A	
  hotfix	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  1.0
	
  	
  A	
  wp-­‐multibyte-­‐patch	
  1.7
	
  
*	 WordPress	 Plugins	 Install
14年4月15日火曜日
WP-CLI
$	
  cd	
  /path/to/wordpress
$	
  wp	
  core	
  update
$	
  wp	
  core	
  update-­‐db
$	
  wp	
  core	
  version	
  -­‐-­‐extra
WordPress	
  version:	
  3.7.1
Database	
  revision:	
  25824
TinyMCE	
  version:	
  	
  	
  3.59	
  (359-­‐20131026)
*	 WordPress	 Core	 Update
14年4月15日火曜日
WP-CLI
$	
  wp	
  plugin	
  status
3	
  installed	
  plugins:
	
  	
  I	
  akismet	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  2.5.9
	
  UA	
  nginx-­‐champuru	
  	
  	
  	
  	
  1.6.0
	
  	
  I	
  wp-­‐multibyte-­‐patch	
  1.7
Legend:	
  A	
  =	
  Active,	
  I	
  =	
  Inactive,	
  U	
  =	
  Update
$	
  wp	
  plugin	
  update	
  nginx-­‐champuru
$	
  wp	
  plugin	
  update-­‐all
*	 WordPress	 Plugins	 Update
14年4月15日火曜日
WP-CLI
$	
  wp	
  export
$	
  wp	
  export	
  -­‐-­‐post_type=post
$	
  wp	
  export	
  -­‐-­‐post_status=publish
$	
  wp	
  import	
  export.xml
$	
  wp	
  import	
  export.xml	
  -­‐-­‐skip=attachment
*	 WordPress	 Export	 &	 Import
14年4月15日火曜日
WP-CLI
$	
  wp	
  nginx	
  flush
$	
  wp	
  nginx	
  list
array(3291)	
  {
	
  	
  [0]=>
	
  	
  object(stdClass)#126	
  (3)	
  {
	
  	
  	
  	
  ["cache_id"]=>
	
  	
  	
  	
  string(1)	
  "0"
	
  	
  	
  	
  ["cache_url"]=>
	
  	
  	
  :
*	 Nginx	 Cache	 Controlle
14年4月15日火曜日
Chef
VM	 Image	 作成に使用しているツール
14年4月15日火曜日
Chef
14年4月15日火曜日
Chef
14年4月15日火曜日
Chef
Infrastructure	 as	 Code
14年4月15日火曜日
Chef
Infrastructure	 as	 Code
14年4月15日火曜日
$	
  curl	
  -­‐L	
  https://www.opscode.com/chef/
install.sh	
  |	
  sudo	
  bash
Chef
*	 Chef	 Solo	 Install
14年4月15日火曜日
*	 Recipe
package "nginx" do
! action :install
end
service "nginx" do
! action [ :enable , :start ]
end
Chef
14年4月15日火曜日
*	 Chef	 活用ガイド
Chef
http://www.amazon.co.jp/dp/4048919857
14年4月15日火曜日
Thanks	 !
14年4月15日火曜日

Más contenido relacionado

La actualidad más candente

サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめYasuhiro Mawarimichi
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料Yasutaka Hamada
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7Kazuho Oku
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
Zabbixを2分でインストール
Zabbixを2分でインストールZabbixを2分でインストール
Zabbixを2分でインストール真乙 九龍
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニングii012014
 
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」Developers Summit
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03oranie Narut
 
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要Shumpei Shiraishi
 
Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記96smcln
 
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働Kazuho Oku
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料Yasutaka Hamada
 
WebSocketプロトコル
WebSocketプロトコルWebSocketプロトコル
WebSocketプロトコルDaniel Perez
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocketAdvancedTechNight
 
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!Takashi Uemura
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレperyaudo
 
第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編tzm_freedom
 

La actualidad más candente (20)

サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
Zabbixを2分でインストール
Zabbixを2分でインストールZabbixを2分でインストール
Zabbixを2分でインストール
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニング
 
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
 
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要
 
Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記
 
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
 
WebSocketプロトコル
WebSocketプロトコルWebSocketプロトコル
WebSocketプロトコル
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocket
 
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 
第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編
 

Destacado

mod_php vs. FastCGI 原理与比较
mod_php vs. FastCGI 原理与比较mod_php vs. FastCGI 原理与比较
mod_php vs. FastCGI 原理与比较Ji ZHANG
 
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSSupercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSCloudLinux
 
High performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructureHigh performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructuremkherlakian
 
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春Ryo Tomidokoro
 
Techtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPMTechtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPMWebscale
 
PHP Files: An Introduction
PHP Files: An IntroductionPHP Files: An Introduction
PHP Files: An IntroductionJacques Woodcock
 
第2回勉強会資料 柏木
第2回勉強会資料 柏木第2回勉強会資料 柏木
第2回勉強会資料 柏木beyond0iwamoto
 
mod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLImod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLIJacques Woodcock
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るYoshio Hanawa
 
Ultrafast WordPress Virtual Word camp2015
Ultrafast WordPress Virtual  Word camp2015 Ultrafast WordPress Virtual  Word camp2015
Ultrafast WordPress Virtual Word camp2015 Yuta Sakamoto
 
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係Yoshio Hanawa
 
PHP development with Docker
PHP development with DockerPHP development with Docker
PHP development with DockerYosh de Vos
 
Alternative Infrastucture
Alternative InfrastuctureAlternative Infrastucture
Alternative InfrastuctureMarc Seeger
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with dockerRuoshi Ling
 

Destacado (19)

From LAMP to LNNP
From LAMP to LNNPFrom LAMP to LNNP
From LAMP to LNNP
 
Running php on nginx
Running php on nginxRunning php on nginx
Running php on nginx
 
mod_php vs. FastCGI 原理与比较
mod_php vs. FastCGI 原理与比较mod_php vs. FastCGI 原理与比较
mod_php vs. FastCGI 原理与比较
 
Nginx + PHP
Nginx + PHPNginx + PHP
Nginx + PHP
 
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSSupercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
 
High performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructureHigh performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructure
 
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春
 
Techtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPMTechtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPM
 
PHP Files: An Introduction
PHP Files: An IntroductionPHP Files: An Introduction
PHP Files: An Introduction
 
第2回勉強会資料 柏木
第2回勉強会資料 柏木第2回勉強会資料 柏木
第2回勉強会資料 柏木
 
mod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLImod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLI
 
Nginx pres
Nginx presNginx pres
Nginx pres
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
 
Ultrafast WordPress Virtual Word camp2015
Ultrafast WordPress Virtual  Word camp2015 Ultrafast WordPress Virtual  Word camp2015
Ultrafast WordPress Virtual Word camp2015
 
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
 
PHP development with Docker
PHP development with DockerPHP development with Docker
PHP development with Docker
 
Alternative Infrastucture
Alternative InfrastuctureAlternative Infrastucture
Alternative Infrastucture
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
 
How Flipkart scales PHP
How Flipkart scales PHPHow Flipkart scales PHP
How Flipkart scales PHP
 

Similar a Word press on conoha このべん #3

OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP Nagoya
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12Ryuji Yamashita
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia鉄次 尾形
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境Masashi Shinbara
 
OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3OWASP Nagoya
 
OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続Takashi Umeno
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-賢 秋穂
 
Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Kimiyuki Yamauchi
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)さくらインターネット株式会社
 
サバフェスLT(元うなぎ屋)
サバフェスLT(元うなぎ屋)サバフェスLT(元うなぎ屋)
サバフェスLT(元うなぎ屋)snicker_jp
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-Masashi Shinbara
 
Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例Hidetoshi Mori
 

Similar a Word press on conoha このべん #3 (20)

OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
 
Nginx
NginxNginx
Nginx
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
Ad stirの裏側
Ad stirの裏側Ad stirの裏側
Ad stirの裏側
 
OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3
 
OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続OpenWrtによるサイト間IPsec接続
OpenWrtによるサイト間IPsec接続
 
Paa s and oss
Paa s and ossPaa s and oss
Paa s and oss
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
 
Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
 
サバフェスLT(元うなぎ屋)
サバフェスLT(元うなぎ屋)サバフェスLT(元うなぎ屋)
サバフェスLT(元うなぎ屋)
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
 
Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例
 

Más de Wataru OKAMOTO

Más de Wataru OKAMOTO (10)

re:Invent 2015 参加報告
re:Invent 2015 参加報告re:Invent 2015 参加報告
re:Invent 2015 参加報告
 
Amimoto auto scaling
Amimoto auto scalingAmimoto auto scaling
Amimoto auto scaling
 
wp cli
wp cliwp cli
wp cli
 
Wckansai 2014
Wckansai 2014Wckansai 2014
Wckansai 2014
 
Sacss sp5
Sacss sp5Sacss sp5
Sacss sp5
 
StaticPress
StaticPressStaticPress
StaticPress
 
WordPress Cloud Design Pattern
WordPress  Cloud Design PatternWordPress  Cloud Design Pattern
WordPress Cloud Design Pattern
 
High performance web server
High performance web serverHigh performance web server
High performance web server
 
Mastering WordPress Vol.1
Mastering WordPress Vol.1Mastering WordPress Vol.1
Mastering WordPress Vol.1
 
WordPress を使いこなそう
WordPress を使いこなそうWordPress を使いこなそう
WordPress を使いこなそう
 

Word press on conoha このべん #3

  • 1. Nginx, Percona, PHP, WordPress WordPress on ConoHa 14年4月15日火曜日
  • 5. * WordPress について * Nginx とは? * Nginx Reverse Proxy Cache の紹介 * MySQL チューニングの勘所 * monit によるプロセス監視 * WordPress Template の紹介 * wp-cli の紹介 * VM Image 作成に使用しているツール Menu for Today 14年4月15日火曜日
  • 7. WordPress ? * OSS のブログ/CMSプラットフォーム * トラフィック量上位100万サイトでのシェア60% 14年4月15日火曜日
  • 11. Nginx ? * OSS の軽量 HTTP サーバ * スレッドモデルでは無く、イベントループモデルを採用 * トラフィック量上位100万サイトでのシェア20% 14年4月15日火曜日
  • 14. WordPres.com でも採用 $  wget  -­‐S  -­‐-­‐spider  http://wordpress.com wordpress.com|66.155.11.243|:80  に接続しています...  接続しました。 HTTP  による接続要求を送信しました、応答を待っています...      HTTP/1.1  200  OK    Server:  nginx    Date:  Tue,  15  Apr  2014  05:58:07  GMT    Content-­‐Type:  text/html;  charset=utf-­‐8    Connection:  keep-­‐alive    Vary:  Accept-­‐Encoding    X-­‐Frame-­‐Options:  SAMEORIGIN    Vary:  Cookie    Set-­‐Cookie:  wordpress_homepage=existing;  expires=Wed,  30-­‐Apr-­‐2014   05:58:07  GMT Nginx ? 14年4月15日火曜日
  • 15. PHP は fast-CGI で Apache の mod_php のように Web サーバと同一プロセ スで php を動作させることはできません。 php-fpm などを使って別プロセスで動作させる必要があり ます。 Nginx ? 14年4月15日火曜日
  • 17. nginx.conf の例 server  {    listen            80  default;    server_name  _;    root                /path/to/app;    index              index.php  index.html  index.htm;    charset          utf-­‐8;    location  ~  .php$  {        fastcgi_pass      unix:/var/run/php-­‐fpm.sock;        fastcgi_index    index.php;        fastcgi_param  SCRIPT_FILENAME                                            $document_root Nginx + php-fpm 14年4月15日火曜日
  • 18. php-fpm.conf の例 [www] listen  =  /var/run/php-­‐fpm.sock listen.owner  =  nginx listen.group  =  nginx listen.mode  =  0666 user  =  nginx group  =  nginx pm  =  dynamic pm.max_children  =  15 pm.start_servers  =  5 Nginx + php-fpm 14年4月15日火曜日
  • 19. Nginx Performance Nginx Reverse Proxy Cache の紹介 14年4月15日火曜日
  • 20. Nginx Performance Apache, mod_php, WordPress 14年4月15日火曜日
  • 21. ab -n 100 -c 10 (WordPress トップページ) * Requests per second: 4.26 [#/sec] * Time per request: 2346.174 [ms] * Connection Times Total: 2309 [ms] Nginx Performance Apache, mod_php, WordPress 14年4月15日火曜日
  • 22. Nginx Performance Nginx, php-fpm, WordPress 14年4月15日火曜日
  • 23. ab -n 100 -c 10 (WordPress トップページ) * Requests per second: 5.79 [#/sec] * Time per request: 1726.535 [ms] * Connection Times Total: 1617 [ms] Nginx Performance Nginx, php-fpm, WordPress 14年4月15日火曜日
  • 24. Nginx Performance Reverse Proxy Cache 14年4月15日火曜日
  • 25. ab -n 100 -c 10 (WordPress トップページ) * Requests per second: 141.24 [#/sec] * Time per request: 708.007 [ms] * Connection Times Total: 636 [ms] Nginx Performance Nginx Reverse Proxy Cache, WordPress 14年4月15日火曜日
  • 27. nginx.conf の例 http  {            :    proxy_cache_path    /var/cache/nginx/proxy_cache  levels=1:2                                        keys_zone=czone:32m  max_size=256m  inactive=1440m;    proxy_temp_path      /var/cache/nginx/proxy_temp;    proxy_cache_key      "$scheme://$host$request_uri";    proxy_set_header    Host                              $host;    proxy_set_header    Remote-­‐Addr                $remote_addr;    proxy_set_header    X-­‐Forwarded-­‐Host      $host;    proxy_set_header    X-­‐Forwarded-­‐Server  $host;    proxy_set_header    X-­‐Forwarded-­‐For        $proxy_add_x_forwarded_for;    upstream  backend  {        server  unix:/var/run/nginx-­‐backend.sock;    }            : } Reverse Proxy Cache 14年4月15日火曜日
  • 28. server  {    listen            80  default;    server_name  _;    root                /path/to/app;    index              index.php  index.html  index.htm;    location  ~*  .(js|css|html?|xml|jpe?g|gif|png|swf|wmv|flv|ico)$  {        expires  365d;    }    location  /  {        set  $do_not_cache  0;        if  ($request_method  =  POST)  {            set  $do_not_cache  1;        }        proxy_no_cache          $do_not_cache;        proxy_cache_bypass  $do_not_cache;        proxy_redirect          off;        proxy_cache                czone;        proxy_cache_key        "$scheme://$host$request_uri";        proxy_cache_valid    200  0m;        proxy_pass  http://backend;    } } 14年4月15日火曜日
  • 29. server  {    listen            unix:/var/run/nginx-­‐backend.sock;    server_name  _;    root                /path/to/app;    index              index.php  index.html  index.htm;    charset          utf-­‐8;    gzip                            off;    gzip_vary                  off;    location  ~  .php$  {        fastcgi_pass      unix:/var/run/php-­‐fpm.sock;        fastcgi_index    index.php;        fastcgi_param    SCRIPT_FILENAME                                            $document_root$fastcgi_script_name;        include                fastcgi_params;        fastcgi_pass_header  "X-­‐Accel-­‐Redirect";        fastcgi_pass_header  "X-­‐Accel-­‐Buffering";        fastcgi_pass_header  "X-­‐Accel-­‐Charset";        fastcgi_pass_header  "X-­‐Accel-­‐Expires";        fastcgi_pass_header  "X-­‐Accel-­‐Limit-­‐Rate";    } } 14年4月15日火曜日
  • 30. cache 時間を php で制御 <?php header('X-­‐Accel-­‐Expires:  '.  60  *  60  *  24); ?> Reverse Proxy Cache 14年4月15日火曜日
  • 31. WP Plugin“Nginx Cache Controller” Reverse Proxy Cache 14年4月15日火曜日
  • 32. WP Plugin“Nginx Mobile Theme” Reverse Proxy Cache 14年4月15日火曜日
  • 34. MySQL Tuning #  curl  -­‐L  mysqltuner.pl  |  perl    %  Total        %  Received  %  Xferd    Average  Speed      Ti                                                                  Dload    Upload      To 100  44790    100  44790        0          0    26346            0    0:00  >>    MySQLTuner  1.3.0  -­‐  Major  Hayden  <major@mhtx.ne  >>    Bug  reports,  feature  requests,  and  downloads  a  >>    Run  with  '-­‐-­‐help'  for  additional  options  and  o [!!]  Successfully  authenticated  with  no  password  -­‐   [OK]  Currently  running  supported  MySQL  version  5.5. [OK]  Operating  on  64-­‐bit  architecture mysqltuner.pl 14年4月15日火曜日
  • 35. MySQL Tuning -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  Storage  Engine  Statistics  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ [-­‐-­‐]  Status:  +ARCHIVE  +BLACKHOLE  +CSV  -­‐FEDERATED  +I [-­‐-­‐]  Data  in  InnoDB  tables:  496K  (Tables:  12) [-­‐-­‐]  Data  in  PERFORMANCE_SCHEMA  tables:  0B  (Tables: [OK]  Total  fragmented  tables:  0 Storage Engine Statistics 14年4月15日火曜日
  • 36. MySQL Tuning -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  Security  Recommendations    -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ [!!]  User  '@localhost'  has  no  password  set. [!!]  User  '@v210-­‐172-­‐187-­‐188.z0d1.static.cnode.jp'   [!!]  User  'root@127.0.0.1'  has  no  password  set. [!!]  User  'root@::1'  has  no  password  set. [!!]  User  'root@localhost'  has  no  password  set. [!!]  User  'root@v210-­‐172-­‐187-­‐188.z0d1.static.cnode. Security Recommendations 14年4月15日火曜日
  • 37. MySQL Tuning -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  Performance  Metrics  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ [-­‐-­‐]  Up  for:  5h  5m  4s  (111  q  [0.006  qps],  8  conn,  T [-­‐-­‐]  Reads  /  Writes:  96%  /  4% [-­‐-­‐]  Total  buffers:  232.0M  global  +  1.5M  per  thread [OK]  Maximum  possible  memory  usage:  424.0M  (2%  of  i [OK]  Slow  queries:  0%  (0/111) [OK]  Highest  usage  of  available  connections:  0%  (1/ [OK]  Key  buffer  size  /  total  MyISAM  indexes:  16.0M/ [OK]  Query  cache  efficiency:  41.3%  (38  cached  /  92   [OK]  Query  cache  prunes  per  day:  0 [OK]  Sorts  requiring  temporary  tables:  0%  (0  temp  s [!!]  Temporary  tables  created  on  disk:  28%  (2  on  di Performance Metrics 14年4月15日火曜日
  • 38. MySQL Tuning -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  Recommendations  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ General  recommendations:        MySQL  started  within  last  24  hours  -­‐  recommenda        Enable  the  slow  query  log  to  troubleshoot  bad  q        When  making  adjustments,  make  tmp_table_size/ma        Reduce  your  SELECT  DISTINCT  queries  without  LIM Variables  to  adjust:        tmp_table_size  (>  64M)        max_heap_table_size  (>  64M) Performance Metrics 14年4月15日火曜日
  • 41. Monit #  monit  の監視間隔 set  daemon  30    with  start  delay  5   #  web  ステータスチェック set  httpd  port  2812  and    use  address  localhost    allow  localhost   #  アラートメールの送信先 set  alert  root@localhost set  alert  example@example.com   #  設定ファイルのインクルード include  /etc/monit.d/* /etc/monit.conf の例 14年4月15日火曜日
  • 42. Monit check  process  mysqld    with  pidfile  /var/run/mysqld/mysqld.pid    start  program  =  "/sbin/service  mysqld  start"    stop  program  =  "/sbin/service  mysqld  stop" /etc/monit.d/mysqld の例 14年4月15日火曜日
  • 43. Monit check  process  php-­‐fpm    with  pidfile  /var/run/php-­‐fpm/php-­‐fpm.pid    start  program  =  "/sbin/service  php-­‐fpm  start"    stop  program  =  "/sbin/service  php-­‐fpm  stop" check  directory  php_tmp  with  path  "/var/tmp/php"    if  failed  uid  nginx  then  exec  "/bin/chown  -­‐R  nginx:nginx  /var/tmp/php" check  directory  php_session  with  path  "/var/tmp/php/session"    if  failed  uid  nginx  then  exec  "/bin/chown  -­‐R  nginx:nginx  /var/tmp/php/ses check  directory  php_log  with  path  "/var/log/php-­‐fpm"    if  failed  uid  nginx  then  exec  "/bin/chown  -­‐R  nginx:nginx  /var/log/php-­‐fpm /etc/monit.d/php-fpm の例 14年4月15日火曜日
  • 44. ConoHa WordPress Template WordPress テンプレートの紹介 14年4月15日火曜日
  • 45. * OS: CentOS 6.5 * Web: Nginx ver.1.4.4 * PHP: php-fpm ver.5.4.23 with APC * DB: Percona MySQL ver. 5.5.35 * System Monitoring: Monit ver.5.5 WordPress template 14年4月15日火曜日
  • 46. WordPress template Heartbleed? #  rpm  -­‐q  openssl openssl-­‐1.0.1e-­‐el6_5.7.x86_64 上記のパッケージ番号であれば対応済み 上記のパッケージ番号以外の場合は yum でアップデート 後、VPS を再起動してください。 #  yum  update  openssl #  reboot 14年4月15日火曜日
  • 50. * WP-CLI Install WP-CLI $  curl  -­‐L  https://raw.github.com/wp-­‐cli/builds/ gh-­‐pages/phar/wp-­‐cli.phar  >  wp $  chmod  +x  wp 14年4月15日火曜日
  • 51. WP-CLI $  cd  /path/to/wordpress $  wp  core  download  -­‐-­‐locale=ja $  wp  core  config  -­‐-­‐dbname=wp      -­‐-­‐dbuser=wp_user  -­‐-­‐dbpass=password      -­‐-­‐dbhost=localhost  -­‐-­‐locale=ja $  wp  core  install  -­‐-­‐url=http://example.com      -­‐-­‐title=test  -­‐-­‐admin_name=admin      -­‐-­‐admin_email=admin@example.com      -­‐-­‐admin_password=test * WordPress Install 14年4月15日火曜日
  • 52. WP-CLI $  wp  plugin  install  hotfix $  wp  plugin  activate  hotfix $  wp  plugin  status 4  installed  plugins:    I  akismet                        2.5.9    I  hello                            1.6    A  hotfix                          1.0    A  wp-­‐multibyte-­‐patch  1.7   * WordPress Plugins Install 14年4月15日火曜日
  • 53. WP-CLI $  cd  /path/to/wordpress $  wp  core  update $  wp  core  update-­‐db $  wp  core  version  -­‐-­‐extra WordPress  version:  3.7.1 Database  revision:  25824 TinyMCE  version:      3.59  (359-­‐20131026) * WordPress Core Update 14年4月15日火曜日
  • 54. WP-CLI $  wp  plugin  status 3  installed  plugins:    I  akismet                        2.5.9  UA  nginx-­‐champuru          1.6.0    I  wp-­‐multibyte-­‐patch  1.7 Legend:  A  =  Active,  I  =  Inactive,  U  =  Update $  wp  plugin  update  nginx-­‐champuru $  wp  plugin  update-­‐all * WordPress Plugins Update 14年4月15日火曜日
  • 55. WP-CLI $  wp  export $  wp  export  -­‐-­‐post_type=post $  wp  export  -­‐-­‐post_status=publish $  wp  import  export.xml $  wp  import  export.xml  -­‐-­‐skip=attachment * WordPress Export & Import 14年4月15日火曜日
  • 56. WP-CLI $  wp  nginx  flush $  wp  nginx  list array(3291)  {    [0]=>    object(stdClass)#126  (3)  {        ["cache_id"]=>        string(1)  "0"        ["cache_url"]=>      : * Nginx Cache Controlle 14年4月15日火曜日
  • 62. $  curl  -­‐L  https://www.opscode.com/chef/ install.sh  |  sudo  bash Chef * Chef Solo Install 14年4月15日火曜日
  • 63. * Recipe package "nginx" do ! action :install end service "nginx" do ! action [ :enable , :start ] end Chef 14年4月15日火曜日