{"id":136,"date":"2011-02-28T06:37:36","date_gmt":"2011-02-28T14:37:36","guid":{"rendered":"http:\/\/zhanxw.com\/blog\/?p=136"},"modified":"2011-02-28T06:37:36","modified_gmt":"2011-02-28T14:37:36","slug":"%e5%b0%8f%e5%86%85%e5%ad%98vps%e7%9a%84%e7%94%9f%e5%ad%98%e4%b9%8b%e9%81%93%ef%bc%9anginx-php-fpm-varnish","status":"publish","type":"post","link":"https:\/\/zhanxw.com\/blog\/2011\/02\/%e5%b0%8f%e5%86%85%e5%ad%98vps%e7%9a%84%e7%94%9f%e5%ad%98%e4%b9%8b%e9%81%93%ef%bc%9anginx-php-fpm-varnish\/","title":{"rendered":"\u5c0f\u5185\u5b58VPS\u7684\u751f\u5b58\u4e4b\u9053\uff1aNginx + PHP FPM + Varnish"},"content":{"rendered":"<p>\u6211\u7528\u7684\u662fBuyVM.net\u4e00\u5e74$15\u7684VPS\uff0c\u53ef\u60f3\u800c\u77e5\u8fd9\u4e2a\u4e3b\u673a\u7684\u914d\u7f6e\u662f\u5982\u4f55Economy: 128M \u5185\u5b58\u3002\u539f\u6765\u4f7f\u7528\u7684\u662fApache 1.3 prefork \u548c Php_mod\uff0c\u7cfb\u7edf\u7a33\u5b9a\u6027\u975e\u5e38\u597d\uff0c\u7136\u800c\u6027\u80fd\u53ef\u4ee5\u8bf4\u4ee4\u4eba\u5931\u671b\uff0c\u6253\u5f00\u4e00\u4e2a\u7b80\u5355\u7684\u9759\u6001\u9875\u9762\u5e73\u5747\u9700\u89813\u79d2\uff0c\u800c\u4f7f\u7528wordpress\u53ca\u82e5\u5e72plugin\u540e\uff0c\u5dee\u4e0d\u591a\u9700\u898110\u79d2\u4ee5\u4e0a\u624d\u80fd\u8bbf\u95ee\u9875\u9762\uff0c\u800c\u4e14\u8fd9\u662f\u6253\u5f00WP-Supercache\u540e\u7684\u6027\u80fd\u3002\u636e\u6211\u7684\u89c2\u5bdf\uff0c\u8fd9\u662f\u56e0\u4e3aApache\u8fdb\u7a0b\u4f1afork\u51fa\u5f88\u591a\u5b50\u8fdb\u7a0b\uff0c\u8fd9\u4e9b\u8fdb\u7a0b\u5403\u6389\u4e86\u6709\u9650\u7684VPS\u5185\u5b58\u30022\u6708\u7684\u6700\u540e\u4e00\u5929\uff0c\u6211\u51b3\u5b9a\u8bd5\u4e00\u8bd5\u4f20\u8bf4\u4e2dNginx\uff0c\u770b\u770b\u5b83\u5728\u5c0f\u5185\u5b58\u7684VPS\u4e0a\u8868\u73b0\u662f\u5426\u4f18\u5f02\u3002\u57288000\u7aef\u53e3\u6253\u5f00Nginx\u540e\uff0c\u4f7f\u7528<a href=\"http:\/\/whichloadsfaster.com\/\"><span style=\"font-size: small;\">http:\/\/whichloadsfaster.com\/<\/span><\/a><span style=\"font-size: small;\">\u548c<\/span>ab &#8211; Apache HTTP server benchmarking tool <span style=\"font-size: small;\">\u6bd4\u8f83Nginx\u548cApache\u7684\u901f\u5ea6\uff0c\u6beb\u65e0\u60ac\u5ff5\u7684\uff0cNginx\u8981\u5feb\uff0c\u5e73\u5747\u53ea\u7528\u4e861\/4\u7684\u65f6\u95f4\u3002\u56e0\u6b64\u6211\u4e0b\u5b9a\u51b3\u5fc3\uff0c\u5c06\u6574\u4e2aVPS\u5347\u7ea7\u5230Nginx+PHP FPM\u3002\u5177\u4f53\u7684\u6b65\u9aa4\u5982\u4e0b\uff1a<\/span><\/p>\n<h1><strong><span style=\"font-size: small;\">1. \u5347\u7ea7Ubuntu 10.04 LTS Lucid \u5230 10.10 Maverick<\/span><\/strong><\/h1>\n<p>\u5347\u7ea7\u7684\u76ee\u7684\u662f\u4f7f\u7528Ubuntu\u5b98\u65b9\u7684PHP\uff0c\u56e0\u4e3a\u53ea\u670910.10\u7248\u7684PHP5\u624d\u5305\u62ec\u4e86php5-fpm\u529f\u80fd\u3002<\/p>\n<p>\u5177\u4f53\u65b9\u6cd5\uff08\u7ffb\u8bd1\u81eahttp:\/\/www.howtoforge.com\/how-to-upgrade-ubuntu-10.04-lucid-lynx-to-10.10-maverick-meerkat-desktop-and-server-p2\uff09\uff1a<\/p>\n<p>aptitude install update-manager-core<\/p>\n<p>\u6539\u53d8 \/etc\/update-manager\/release-upgrades \u4e2dPrompt=normal<\/p>\n<p>do-release-upgrade<\/p>\n<p>\u6211\u5728\u5347\u7ea7\u4e2d\u53cd\u590d\u9047\u5230\u5173\u4e8eprocps\u7684\u8fd9\u4e2a\u63d0\u793a\uff1astart: <span style=\"font-size: small;\">Unknow Jobs: procps<\/span><\/p>\n<p><span style=\"font-size: small;\">\u89e3\u51b3\u65b9\u6cd5\u5c31\u662f\u5efa\u7acb\u4e00\u4e2a<\/span>\/etc\/init\/procps.conf\uff0c\u7136\u540e\u7ee7\u7eedapt-get upgrade\u5c31\u884c\u3002<\/p>\n<p><span style=\"font-size: small;\">\u539f\u7406\u662fservice \u8fd9\u4e2a\u547d\u4ee4\u4f1a\u8c03\u7528\/etc\/init.d\u4e0b\u9762\u7684\u811a\u672c\uff0c\u800cprocps\u7684\u811a\u672c\u4f1a\u7528start\u547d\u4ee4\uff0cstart procps\u547d\u4ee4\u4f1a\u8c03\u7528initctl start procps, \u8fd9\u4e2a\u8fc7\u7a0b\u4e2d\u9700\u8981\/etc\/init\/procps.conf\u6765\u8bbe\u5b9aprocps\u76f8\u5173\u7684\u53c2\u6570\u3002\u5728ubuntu\u5347\u7ea7\u7684\u65f6\u5019\uff0c\u8fd9\u4e2a\u914d\u7f6e\u6587\u4ef6\u7f3a\u5931\u9020\u6210\u4e86\u4e0a\u8ff0\u95ee\u9898\u3002<\/span><\/p>\n<p><span style=\"font-size: small;\"><br \/>\n<\/span><\/p>\n<h1><span style=\"font-size: small;\">2. \u5b89\u88c5Nginx<\/span><\/h1>\n<p>\u5148\u5378\u8f7dApache, \u7528apt-get install nginx\u5c31\u884c\uff0c\u4e4b\u540e\u53c2\u8003\uff1a<\/p>\n<p><!-- p { margin-bottom: 0.08in; }a:link {  } --><a href=\"http:\/\/www.howtoforge.com\/installing-nginx-with-php-5.3-and-php-fpm-on-ubuntu-lucid-lynx-10.04-without-compiling-anything\"><span style=\"font-size: small;\">http:\/\/www.howtoforge.com\/installing-nginx-with-php-5.3-and-php-fpm-on-ubuntu-lucid-lynx-10.04-without-compiling-anything<\/span><\/a><\/p>\n<p>\u6211\u8fd9\u91cc\u4e5f\u5217\u51fa\u4e86\u81ea\u5df1\u7684nginx.conf\u6587\u4ef6\u5185\u5bb9\uff0c\u6ce8\u610f\u6211\u4f7f\u7528\u4e86rewrite\u529f\u80fd\u3002\u8fd9\u4e00\u529f\u80fd\u5728Apache\u91cc\u662f\u7528mod_rewrite\u652f\u6301\uff0c\u5728.htaccess\u91cc\u6307\u5b9a\u7684\u3002\u6211\u4eec\u5199\u5728nginx.conf\u6587\u4ef6\u91cc\u4e5f\u4e0d\u590d\u6742\u3002\u53e6\u5916\uff0c\u672b\u5c3e\u7684backend\u8bed\u53e5\u4f3c\u4e4e\u662f\u5fc5\u987b\u7684\uff0c\u6ca1\u6709\u5b83PHP\u4f3c\u4e4e\u5c31\u65e0\u6cd5\u5de5\u4f5c\u3002<\/p>\n<p>My \/etc\/nginx\/nginx.conf<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nuser www-data;\r\nworker_processes\u00a0 1;\r\n\r\nerror_log\u00a0 \/var\/log\/nginx\/error.log;\r\npid\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/run\/nginx.pid;\r\n\r\nevents {\r\n use epoll;\r\n worker_connections\u00a0 1024;\r\n # multi_accept on;\r\n}\r\n\r\nhttp {\r\n include\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/etc\/nginx\/mime.types;\r\n\r\n access_log\u00a0 \/var\/log\/nginx\/access.log;\r\n\r\n sendfile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 on;\r\n #tcp_nopush\u00a0\u00a0\u00a0\u00a0 on;\r\n\r\n #keepalive_timeout\u00a0 0;\r\n keepalive_timeout\u00a0 65;\r\n tcp_nodelay\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 on;\r\n\r\n gzip\u00a0 on;\r\n gzip_disable &quot;MSIE &#x5B;1-6]\\.(?!.*SV1)&quot;;\r\n\r\n include \/etc\/nginx\/conf.d\/*.conf;\r\n include \/etc\/nginx\/sites-enabled\/*;\r\n}\r\n<\/pre>\n<p>My \/etc\/nginx\/sites-enabled\/default<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n server {\r\n listen\u00a0\u00a0 8080;\r\n server_name\u00a0 zhanxw.com;\r\n access_log\u00a0 \/var\/log\/nginx\/localhost.access.log;\r\n\r\n root\u00a0\u00a0\u00a0 \/var\/www;\r\n## Default location\r\n location \/ {\r\n root\u00a0\u00a0 \/var\/www;\r\n index\u00a0 index.php index.html;\r\n }\r\n\r\nlocation \/blog\/ {\r\n index index.php;\r\n if (-e $request_filename) {\r\n break;\r\n }\r\n rewrite ^\/blog\/(.+)$ \/blog\/index.php?q=$1 last;\r\n }\r\n\r\n## Images and static content is treated different\r\n location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {\r\n access_log\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 off;\r\n expires\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 30d;\r\n root \/var\/www;\r\n }\r\n\r\n## Parse all .php file in the \/var\/www directory\r\n location ~ .php$ {\r\n fastcgi_split_path_info ^(.+\\.php)(.*)$;\r\n fastcgi_pass\u00a0\u00a0 backend;\r\n fastcgi_index\u00a0 index.php;\r\n fastcgi_param\u00a0 SCRIPT_FILENAME\u00a0 \/var\/www$fastcgi_script_name;\r\n include fastcgi_params;\r\n fastcgi_param\u00a0 QUERY_STRING\u00a0\u00a0\u00a0\u00a0 $query_string;\r\n fastcgi_param\u00a0 REQUEST_METHOD\u00a0\u00a0 $request_method;\r\n fastcgi_param\u00a0 CONTENT_TYPE\u00a0\u00a0\u00a0\u00a0 $content_type;\r\n fastcgi_param\u00a0 CONTENT_LENGTH\u00a0\u00a0 $content_length;\r\n fastcgi_intercept_errors\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 on;\r\n## Images and static content is treated different\r\n location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {\r\n access_log\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 off;\r\n expires\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 30d;\r\n root \/var\/www;\r\n }\r\n\r\n## Parse all .php file in the \/var\/www directory\r\n location ~ .php$ {\r\n fastcgi_split_path_info ^(.+\\.php)(.*)$;\r\n fastcgi_pass\u00a0\u00a0 backend;\r\n fastcgi_index\u00a0 index.php;\r\n fastcgi_param\u00a0 SCRIPT_FILENAME\u00a0 \/var\/www$fastcgi_script_name;\r\n include fastcgi_params;\r\n fastcgi_param\u00a0 QUERY_STRING\u00a0\u00a0\u00a0\u00a0 $query_string;\r\n fastcgi_param\u00a0 REQUEST_METHOD\u00a0\u00a0 $request_method;\r\n fastcgi_param\u00a0 CONTENT_TYPE\u00a0\u00a0\u00a0\u00a0 $content_type;\r\n fastcgi_param\u00a0 CONTENT_LENGTH\u00a0\u00a0 $content_length;\r\n fastcgi_intercept_errors\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 on;\r\n fastcgi_ignore_client_abort\u00a0\u00a0\u00a0\u00a0 off;\r\n fastcgi_connect_timeout 60;\r\n fastcgi_send_timeout 180;\r\n fastcgi_read_timeout 180;\r\n fastcgi_buffer_size 128k;\r\n fastcgi_buffers 4 256k;\r\n fastcgi_busy_buffers_size 256k;\r\n fastcgi_temp_file_write_size 256k;\r\n }\r\n\r\n## Disable viewing .htaccess &amp; .htpassword\r\n location ~ \/\\.ht {\r\n deny\u00a0 all;\r\n }\r\n}\r\nupstream backend {\r\n server 127.0.0.1:9000;\r\n}\r\n<\/pre>\n<h1><span style=\"font-size: small;\">3. \u5b89\u88c5PHP FPM<\/span><\/h1>\n<p>\u4f7f\u7528apt-get install php5-fpm php-apc php5-cgi php5-cli php5-mysql php5-common php-pear php5-curl php5-suhosin php5-gd php5-imagick imagemagick php5-mhash php5-mcrypt\u5373\u53ef\u3002<\/p>\n<p>\u6ce8\u610f\u5b89\u88c5\u540e\u53ef\u4ee5\u7528service php5-fpm start\u6765\u68c0\u67e5\u662f\u5426\u6709\u7f3a\u5931\u7684php5\u6a21\u5757\u3002\u4f8b\u5982\u5982\u679c\u89c1\u5230\uff1a<\/p>\n<p><!-- p { margin-bottom: 0.08in; } --><span style=\"font-size: small;\">* Starting PHP5 FPM&#8230;                                                                                                                                      PHP Warning:  PHP Startup: Unable to load dynamic library &#8216;\/usr\/lib\/php5\/20090626+lfs\/mcrypt.so&#8217; &#8211; \/usr\/lib\/php5\/20090626+lfs\/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0 <\/span><\/p>\n<p><span style=\"font-size: small;\">Feb 27 15:40:28.053288 [WARNING] [pool www] pm.start_servers is not set. It&#8217;s been set to 10. <\/span><\/p>\n<p>\u8fd9\u8bf4\u660e\u5e94\u8be5\u5b89\u88c5php5-mcrypt\u3002\u540e\u9762\u7684WARNING\u53ef\u4ee5\u5ffd\u7565\u3002<\/p>\n<p>\u53e6\u5916\uff0c\u5c0f\u5185\u5b58VPS\u4e0a\u4f7f\u7528PHP-FPM\u53ef\u4ee5\u63a7\u5236\u5176\u8fdb\u7a0b\u4e2a\u6570\u3002\u5728\u6211\u7684VPS\u4e0a\uff0c\u5355\u4e2aPHP-FPM\u53ef\u4ee5\u4f7f\u7528\u591a\u8fbe100M\u7684\u5185\u5b58\uff0c\u540c\u65f6\u6211\u7684\u8bbf\u95ee\u91cf\u5f88\u5c11\uff0c\u56e0\u6b64\u6211\u8bbe\u7f6ePHP-FPM\u4f7f\u7528static\u65b9\u5f0f\u7ef4\u63012\u4e2a\u8fdb\u7a0b\u3002\u4ece\u5b9e\u8df5\u6765\u770b\u7cfb\u7edf\u53ef\u4ee5\u4fdd\u6301\u5408\u7406\u7684\u54cd\u5e94\u65f6\u95f4\uff0c\u540c\u65f6\u5185\u5b58\u4e0d\u4f1a\u88ab\u7528\u5149\u3002<\/p>\n<p>\u6211\u7684PHP-FPM \u7684\u914d\u7f6e\u6587\u4ef6\/etc\/php5\/fpm\/pool.d\/www.conf\u00a0 \u5217\u5728\u4e0b\u9762\uff1a<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n ...\r\n; Choose how the process manager will control the number of child processes.\r\n; Possible Values:\r\n;\u00a0\u00a0 static\u00a0 - a fixed number (pm.max_children) of child processes;\r\n;\u00a0\u00a0 dynamic - the number of child processes are set dynamically based on the\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 following directives:\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pm.max_children\u00a0\u00a0\u00a0\u00a0\u00a0 - the maximum number of children that can\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 be alive at the same time.\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pm.start_servers\u00a0\u00a0\u00a0\u00a0 - the number of children created on startup.\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pm.min_spare_servers - the minimum number of children in 'idle'\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 state (waiting to process). If the number\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 of 'idle' processes is less than this\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 number then some children will be created.\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pm.max_spare_servers - the maximum number of children in 'idle'\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 state (waiting to process). If the number\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 of 'idle' processes is greater than this\r\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 number then some children will be killed.\r\n; Note: This value is mandatory.\r\npm = static\r\n\r\n; The number of child processes to be created when pm is set to 'static' and the\r\n; maximum number of child processes to be created when pm is set to 'dynamic'.\r\n; This value sets the limit on the number of simultaneous requests that will be\r\n; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.\r\n; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP\r\n; CGI.\r\n; Note: Used when pm is set to either 'static' or 'dynamic'\r\n; Note: This value is mandatory.\r\npm.max_children = 2\r\n\r\n...\r\n<\/pre>\n<h1><span style=\"font-size: small;\">4.\u5b89\u88c5eAccelerator<\/span><\/h1>\n<p><!-- p { margin-bottom: 0.08in; }a:link {  } -->\u4e3b\u8981\u53c2\u8003\uff1a<a href=\"http:\/\/developer.mindtouch.com\/en\/kb\/Improve_PHP_performance_with_eAccelerator_on_Ubuntu_8.04_%28Debian%29\"><span style=\"font-size: small;\">http:\/\/developer.mindtouch.com\/en\/kb\/Improve_PHP_performance_with_eAccelerator_on_Ubuntu_8.04_(Debian)<\/span><\/a><\/p>\n<p>\u57fa\u672c\u4e0a\u4e0b\u8f7d\uff0c\u7f16\u8bd1\uff0c\u5b89\u88c5\u3002\u4e4b\u540e\u5728php.ini\u4e2d\u52a0\u5165\u4e0b\u9762\u51e0\u884c\u5373\u53ef\uff08\u6ce8\u610f.so\u6587\u4ef6\u7684\u8def\u5f84\uff09\uff1a<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n ; eAccelerator configuration\r\n; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension\r\n; If you are using a thread safe build of PHP you must use\r\n; zend_extension_ts instead of zend_extension\r\n;extension\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;\/usr\/lib\/php5\/20060613+lfs\/eaccelerator.so&quot;\r\nzend_extension\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;\/usr\/lib\/php5\/20090626+lfs\/eaccelerator.so&quot;\r\neaccelerator.shm_size\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;16&quot;\r\neaccelerator.cache_dir\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;\/var\/cache\/eaccelerator&quot;\r\neaccelerator.enable\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;1&quot;\r\neaccelerator.optimizer\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;1&quot;\r\neaccelerator.check_mtime\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;1&quot;\r\neaccelerator.debug\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;0&quot;\r\neaccelerator.filter\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;&quot;\r\neaccelerator.shm_max\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;0&quot;\r\neaccelerator.shm_ttl\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;0&quot;\r\neaccelerator.shm_prune_period\u00a0\u00a0 = &quot;0&quot;\r\neaccelerator.shm_only\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;0&quot;\r\neaccelerator.compress\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = &quot;1&quot;\r\neaccelerator.compress_level\u00a0\u00a0\u00a0\u00a0 = &quot;9&quot;\r\neaccelerator.allowed_admin_path = &quot;\/var\/www\/eaccelerator&quot;\r\n<\/pre>\n<p>\u5b89\u88c5\u5b8c\u4e4b\u540e\u6ce8\u610f\u68c0\u67e5&lt;?php phpinfo(); ?&gt;\u9875\u9762\u7684\u8f93\u51fa\uff0c\u4fdd\u8bc1eAccelerator\u5f00\u542f\u3002<\/p>\n<h1><span style=\"font-size: small;\">5. \u542f\u7528Varnish<\/span><\/h1>\n<p><span style=\"font-size: small;\">\u5076\u7136\u95f4\u542c\u8bf4Varnish\u53ef\u4ee5\u505a\u4ee3\u7406\uff0c\u63d0\u4f9b\u7cfb\u7edf\u54cd\u5e94\u901f\u5ea6\u3002\u4ee5\u6211\u7684\u7ecf\u9a8c\u6765\u770b\uff0c\u5bf9\u4e8e\u9759\u6001\u9875\u9762\uff0c\u901a\u8fc7Varnish\u83b7\u53d6\u9875\u9762\u548c\u76f4\u63a5\u4f7f\u7528nginx\u5dee\u522b\u4e0d\u5927\uff08\u52a8\u6001\u9875\u9762\u672a\u6d4b\u8bd5\uff09\u3002\u4f46\u7528Varnish\u572880\u7aef\u53e3\u76d1\u542c\uff0c\u542c\u8d77\u6765\u53ef\u4ee5\u628a\u771f\u6b63\u7684\u670d\u52a1\u5668\u6321\u5728Varnish\u4e4b\u540e\uff0c\u4f3c\u4e4e\u53ef\u4ee5\u589e\u5f3a\u5b89\u5168\u6027\u5427\u3002\u6211\u5728VPS\u4e0a\u5b89\u88c5Varnish\uff0c\u5e94\u6ce8\u610fVarnish\u672c\u610f\u7684\u7248\u672c\u53d8\u5316\u8f83\u5feb\uff0c\u5728\u914d\u7f6e\u65f6\u5e94\u6ce8\u610f\u8def\u5f84\u7684\u53d8\u5316\u3002\u9700\u8981\u914d\u7f6e\u4e24\u4e2a\u6587\u4ef6\uff0c\u7b2c\u4e00\u4e2a\u662f<\/span><\/p>\n<p><!-- p { margin-bottom: 0.08in; } --> <!-- p { margin-bottom: 0.08in; } --><span style=\"color: #333333;\"><span style=\"font-family: Georgia,Palatino,Helvetica Neue,Helvetica,Arial,sans-serif;\"><span style=\"font-size: small;\">\/etc\/default\/varnish \u5e94\u6539\u6210START=yes<\/span><\/span><\/span><span style=\"font-size: small;\">\uff0c\u5426\u5219\u4f1a\u51fa\u73b0\u8fd9\u4e2a\u9519\u8bef<span style=\"font-family: Georgia,Palatino,Helvetica Neue,Helvetica,Arial,sans-serif;\"><span style=\"font-size: small;\">Not starting HTTP accelerator varnishd <\/span><\/span>\uff08<\/span><a href=\"http:\/\/twitter.com\/#%21\/grosser\/status\/5249558112108544\"><span style=\"font-size: small;\">http:\/\/twitter.com\/#!\/grosser\/status\/5249558112108544<\/span><\/a><span style=\"font-size: small;\">\uff09\uff1b\u53e6\u4e00\u4e2a\u662f<\/span>\/etc\/varnish\/default.vcl\uff0c\u6211\u53c2\u8003\u4e86<span style=\"color: #333333;\"><span style=\"font-family: Georgia,Palatino,Helvetica Neue,Helvetica,Arial,sans-serif;\"><span style=\"font-size: large;\"><a href=\"http:\/\/wowubuntu.com\/varnish.html?utm_campaign=twitter&amp;utm_medium=twitter&amp;utm_source=twitter\"><span style=\"font-size: small;\">http:\/\/wowubuntu.com\/varnish.html<\/span><\/a><\/span><\/span><\/span> \u4ee5\u53ca<span style=\"color: #333333;\"><span style=\"font-family: Georgia,Palatino,Helvetica Neue,Helvetica,Arial,sans-serif;\"><span style=\"font-size: large;\"><a href=\"http:\/\/blog.mudy.info\/2009\/04\/my-varnish-vcl-for-wordpress\/\"><span style=\"font-size: small;\">http:\/\/blog.mudy.info\/2009\/04\/my-varnish-vcl-for-wordpress\/<\/span><\/a><\/span><\/span><\/span>\uff0c\u8fd9\u91cc\u5217\u51fa\u6211\u7684\u914d\u7f6e\u6587\u4ef6\/etc\/varnish\/default.vcl\uff1a<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n backend default {\r\n.host = &quot;localhost&quot;;\r\n.port = &quot;8080&quot;;\r\n}\r\nacl purge {\r\n&quot;localhost&quot;;\r\n}\r\nsub vcl_recv {\r\nif (req.request == &quot;PURGE&quot;) {\r\nif (!client.ip ~ purge) {\r\nerror 405 &quot;Not allowed.&quot;;\r\n}\r\nreturn(lookup);\r\n}\r\nif (req.url ~ &quot;^\/$&quot;) {\r\nunset req.http.cookie;\r\n}\r\n}\r\nsub vcl_hit {\r\nif (req.request == &quot;PURGE&quot;) {\r\nset obj.ttl = 0s;\r\nerror 200 &quot;Purged.&quot;;\r\n}\r\n}\r\nsub vcl_miss {\r\nif (req.request == &quot;PURGE&quot;) {\r\nerror 404 &quot;Not in cache.&quot;;\r\n}\r\nif (!(req.url ~ &quot;wp-(login|admin)&quot;)) {\r\nunset req.http.cookie;\r\n}\r\nif (req.url ~ &quot;^\/&#x5B;^?]+.(jpeg|jpg|png|gif|ico|js|css|txt|gz|zip|lzma|bz2|tgz|tbz|html|htm)(\\?.|)$&quot;) {\r\nunset req.http.cookie;\r\nset req.url = regsub(req.url, &quot;\\?.$&quot;, &quot;&quot;);\r\n}\r\nif (req.url ~ &quot;^\/$&quot;) {\r\nunset req.http.cookie;\r\n}\r\n}\r\nsub vcl_fetch {\r\nif (req.url ~ &quot;^\/$&quot;) {\r\nunset beresp.http.set-cookie;\r\n}\r\nif (!(req.url ~ &quot;wp-(login|admin)&quot;)) {\r\nunset beresp.http.set-cookie;\r\n}\r\n}\r\n<\/pre>\n<h1><span style=\"font-size: small;\">\u63d2\u66f21\uff1a\u91cd\u7f6eMySQL\u5bc6\u7801<\/span><\/h1>\n<p><span style=\"font-size: small;\">\u597d\u5c31\u4e0d\u7528MySQL\u7684root\u5bc6\u7801\uff0c\u91cd\u7f6e\u5bc6\u7801\uff08\u9002\u7528\u4e8eMySQL 5.1\uff09\u53ef\u4ee5\u53c2\u8003\uff1a<\/span><\/p>\n<p><span style=\"font-size: small;\">Generic method http:\/\/dev.mysql.com\/doc\/refman\/5.1\/en\/resetting-permissions.html<\/span><\/p>\n<p><span style=\"font-size: small;\">\u53ea\u9700\u89813\u6b65\uff1a\u4ee5<\/span><a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.1\/en\/server-options.html#option_mysqld_skip-grant-tables\"><code>--skip-grant-tables<\/code><\/a><span style=\"font-size: small;\">\u53c2\u6570\u542f\u52a8Mysql-server\uff1b\u542f\u52a8mysql\uff1b\u6267\u884c<\/span><strong> <\/strong><\/p>\n<p><strong><code>UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';<\/code><\/strong><br \/>\n<strong><code>FLUSH PRIVILEGES;<\/code><\/strong><\/p>\n<h1><span style=\"font-size: small;\">\u63d2\u66f22\uff1a\u4f7fFirefox \u652f\u6301Java Applets<\/span><\/h1>\n<p><!-- p { margin-bottom: 0.08in; }tt.cjk { font-family: \"DejaVu Sans\",monospace; } --><span style=\"font-size: small;\">\u5728\u8bbe\u7f6ePHP-FPM \u53c2\u6570\u4e0d\u5f53\u65f6\uff0c\u6709\u53ef\u80fd\u6574\u4e2aVPS\u7684\u5185\u5b58\u5168\u90e8\u88ab\u5403\u5149\uff0c\u8fd9\u65f6\u6ca1\u6cd5\u7528SSH\u767b\u5f55\uff0c\u5f88\u591a\u547d\u4ee4\uff08sudo\u3001ls\u3001top\uff09\u90fd\u65e0\u6cd5\u6267\u884c\uff0c\u8fd9\u65f6\u5019\u53ef\u4ee5\u7528BuyVM.net \u63d0\u4f9b\u7684 manage.buyvm.net \u9875\u9762\uff0c\u4ee5Java Applets\u65b9\u5f0f\u4ee5root\u8eab\u4efd\u767b\u5f55\u5230VPS\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cUbuntu\u7684Firefox\u4e0d\u652f\u6301Java Applets\uff0c\u89e3\u51b3\u65b9\u6cd5\u5c31\u662f\u5b89\u88c5\uff1a<\/span><tt><span style=\"font-size: small;\">icedtea6-plugin<\/span><\/tt><span style=\"font-size: small;\"> . <\/span><\/p>\n<p><span style=\"font-size: small;\"><br \/>\n<\/span><\/p>\n<h1><span style=\"font-size: small;\">\u53e6\u9644\uff1aWordpress\u4e2d\u63d2\u5165\u4ee3\u7801\u7684\u65b9\u6cd5\uff1a<\/span><\/h1>\n<p>\u6ce8\u610f\u8fd9\u91cc\u4f7f\u7528\u4e86\u4e2d\u6587\u7684\u5168\u89d2\u62ec\u53f7\uff0c\u4ee5\u514dWordpress\u5f53\u6210\u771f\u6b63\u7684\u4ee3\u7801\u3002<\/p>\n<p>\u3010sourcecode language=&#8221;css&#8221;\u3011<br \/>\n your code here<br \/>\n\u3010\/sourcecode\u3011<\/p>\n<p>\u5177\u4f53\u7684\u8bed\u8a00\u53ef\u4ee5\u6709\uff1a<\/p>\n<ul>\n<li>actionscript3<\/li>\n<li>bash<\/li>\n<li>coldfusion<\/li>\n<li>cpp<\/li>\n<li>csharp<\/li>\n<li>css<\/li>\n<li>delphi<\/li>\n<li>erlang<\/li>\n<li>fsharp<\/li>\n<li>diff<\/li>\n<li>groovy<\/li>\n<li>javascript<\/li>\n<li>java<\/li>\n<li>javafx<\/li>\n<li>matlab (keywords only)<\/li>\n<li>objc<\/li>\n<li>perl<\/li>\n<li>php<\/li>\n<li>text<\/li>\n<li>powershell<\/li>\n<li>python<\/li>\n<li>r<\/li>\n<li>ruby<\/li>\n<li>scala<\/li>\n<li>sql<\/li>\n<li>vb<\/li>\n<li>xml<\/li>\n<\/ul>\n<p>http:\/\/en.support.wordpress.com\/code\/posting-source-code\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>nginx varnish php fpm eaccelerator mysql java ubuntu maverick upgrade config<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,3],"tags":[26,25,28,29,27,22,24,13,30,23],"class_list":["post-136","post","type-post","status-publish","format-standard","hentry","category-sysadmin","category-wordpress","tag-eaccelerator","tag-fpm","tag-java","tag-maverick","tag-mysql","tag-nginx","tag-php","tag-ubuntu","tag-upgrade","tag-varnish"],"_links":{"self":[{"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/posts\/136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/comments?post=136"}],"version-history":[{"count":0,"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/posts\/136\/revisions"}],"wp:attachment":[{"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zhanxw.com\/blog\/wp-json\/wp\/v2\/tags?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}