http://www.php.net/manual/ja/faq.installation.php#faq.installation.apache2
http://uwsgi-docs.readthedocs.org/en/latest/Options.html#enable-threads
https://github.com/unbit/uwsgi-docs/blob/master/PHP.rst
http://uwsgi-docs.readthedocs.org/en/latest/Install.html
http://wiki.nginx.org/HttpUwsgiModule
http://wiki.nginx.org/HttpUwsgiModuleMultipleDynamicApplications
http://wiki.nginx.org/HttpUwsgiModule#uwsgi_next_upstream
http://uwsgi-docs.readthedocs.org/en/latest/Nginx.html
http://wiki.nginx.org/NginxHttpUpstreamModule#upstream
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-servers/uwsgi/files/1.1.2-threaded-php.patch?diff_format=s&view=markup
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-servers/uwsgi/uwsgi-1.4.9.ebuild?view=markup
cd /usr/local/src/ sudo mkdir nginx-uwsgi-php sudo chown userName.userName nginx-uwsgi-php/ cd nginx-uwsgi-php/ wget http://nginx.org/download/nginx-1.5.3.tar.gz wget http://jp2.php.net/get/php-5.5.1.tar.bz2/from/jp1.php.net/mirror file mirror mv -i mirror php-5.5.1.tar.bz2 cp -i /usr/portage/distfiles/uwsgi-1.4.9.tar.gz . tar xzvf nginx-1.5.3.tar.gz cd nginx-1.5.3 PATH="/usr/bin:/bin" CFLAGS="-march=native -O2" CHOST="x86_64-pc-linux-gnu" CXXFLAGS="-march=native -O2" ./configure --prefix=/usr/local/nginx-uwsgi-php --without-select_module --without-poll_module --without-http_charset_module --without-http_gzip_module --without-http_ssi_module --without-http_userid_module --without-http_access_module --without-http_auth_basic_module --without-http_autoindex_module --without-http_geo_module --without-http_map_module --without-http_split_clients_module --without-http_referer_module --without-http_rewrite_module --without-http_proxy_module --without-http_fastcgi_module --without-http_scgi_module --without-http_memcached_module --without-http_limit_conn_module --without-http_limit_req_module --without-http_empty_gif_module --without-http_browser_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_keepalive_module --without-http-cache --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-pcre make make install sudo make install cd /usr/local/nginx-uwsgi-php/conf/ diff nginx.conf.default nginx.conf emacs nginx.conf ...
opcache未対応, xcacheエラー, apcエラーだった。
php-embedはアクセラレーターが使えない。多分。使えるのがあるかも。
http://en.wikipedia.org/wiki/List_of_PHP_accelerators
手前に必要な機能だけのnginx + apache.worker(もしくはevent)+mod_phpでapacheはmod_php以外のことをしない。できなくする。最低限の状態にする。
apacheはcpuの数だけ立ち上げる。もしくはcpux2+1など。
とすればphpだけでthread safeな状態で、なんかあってもwebサーバまでは巻き込まないとか。
nginxはupstreamの基本機能だけもしくは追加とか。nginx -tで機能が足りない=>再インストール。
もしくは面倒なのでそんなことしない。
普通にapache.workerかapache.eventでthread safeでServerLimit,StartServersをcpu数にして動かせばいい。
dev-php/pecl-apc-3.1.13はapache.workerと相性が悪いかもしれない。
dev-php/pecl-zendopcache-7.0.2はOKっぽい。5.5.1のソースではext/の下にある。
http://pecl.php.net/package/ZendOpcache
http://www.1x1.jp/blog/2013/04/php55_replace_apc_with_zend_opcache.html
$ grep -B79 NGX_HTTP_UPSTREAM_FT_UPDATING ./src/http/ngx_http_upstream.c | head -n5 #if (NGX_HTTP_CACHE) static ngx_int_t ngx_http_upstream_cache(ngx_http_request_t *r, ngx_http_upstream_t *u) { $ grep -A2 -B2 NGX_HTTP_UPSTREAM_FT_UPDATING ./src/http/ngx_http_upstream.c case NGX_HTTP_CACHE_UPDATING: if (u->conf->cache_use_stale & NGX_HTTP_UPSTREAM_FT_UPDATING) { u->cache_status = rc; rc = NGX_OK; $ grep -B8 -A3 NGX_HTTP_UPSTREAM_FT_UPDATING ./src/http/modules/ngx_http_uwsgi_module.c static ngx_conf_bitmask_t ngx_http_uwsgi_next_upstream_masks[] = { { ngx_string("error"), NGX_HTTP_UPSTREAM_FT_ERROR }, { ngx_string("timeout"), NGX_HTTP_UPSTREAM_FT_TIMEOUT }, { ngx_string("invalid_header"), NGX_HTTP_UPSTREAM_FT_INVALID_HEADER }, { ngx_string("http_500"), NGX_HTTP_UPSTREAM_FT_HTTP_500 }, { ngx_string("http_503"), NGX_HTTP_UPSTREAM_FT_HTTP_503 }, { ngx_string("http_403"), NGX_HTTP_UPSTREAM_FT_HTTP_403 }, { ngx_string("http_404"), NGX_HTTP_UPSTREAM_FT_HTTP_404 }, { ngx_string("updating"), NGX_HTTP_UPSTREAM_FT_UPDATING }, { ngx_string("off"), NGX_HTTP_UPSTREAM_FT_OFF }, { ngx_null_string, 0 } };
0 件のコメント:
コメントを投稿