{"id":680,"date":"2010-03-10T06:13:09","date_gmt":"2010-03-09T22:13:09","guid":{"rendered":"http:\/\/pony.xin\/?p=680"},"modified":"2021-03-12T20:47:47","modified_gmt":"2021-03-12T12:47:47","slug":"fedora%e5%b9%b3%e5%8f%b0%e7%bd%91%e7%ab%99%e4%bc%98%e5%8c%96%ef%bc%8c%e9%87%87%e7%94%a8nginxphpphp-fpmmysqlmemcachexcache","status":"publish","type":"post","link":"https:\/\/lnmp.ivan.xin\/?p=680","title":{"rendered":"fedora\u5e73\u53f0\u7f51\u7ad9\u4f18\u5316\uff0c\u91c7\u7528nginx+php+php-fpm+mysql+memcache+xcache"},"content":{"rendered":"<p>\u6548\u679c\u8fd8\u662f\u6bd4\u8f83\u660e\u663e\u7684\uff0c\u901f\u5ea6\u66f4\u5feb\u4e86\u3002\u5e73\u53f0\uff1afedora 11\uff0c\u73b0\u5728\u8d34\u51fa\u914d\u7f6e\u6b65\u9aa4\uff1a<br \/>\n\u9ed1\u8272\uff1a\u63cf\u8ff0<br \/>\n\u84dd\u8272\uff1a\u9700\u8981\u4e0b\u8f7d\u7684\u5305<br \/>\n\u7ea2\u8272\uff1a\u547d\u4ee4<br \/>\n\u6a59\u8272\uff1a\u4ee3\u7801<br \/>\n\u7d2b\u8272\uff1a\u81ea\u5df1\u6839\u636e\u9700\u8981\u66ff\u6362\u7684\u90e8\u5206<\/p>\n<p>1\u3001\u5b89\u88c5\u5fc5\u8981\u5305<br \/>\n-bash-4.0# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel gd-devel patch<br \/>\n2\u3001\u5b89\u88c5mysql<br \/>\n-bash-4.0#\u00a0 yum install mysql-devel<br \/>\n3\u3001\u5b89\u88c5php\u548cphp-fpm<br \/>\n-bash-4.0# tar zxvf php-5.2.13.tar.gz<br \/>\n-bash-4.0# gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1<br \/>\n-bash-4.0# cd php-5.2.13<br \/>\n-bash-4.0# .\/configure --prefix=\/usr\/local\/php --with-mysql=\/usr\/include\/mysql\/ --with-gd=\/usr --with-gd-lib=\/usr\/lib --with-jpeg dir=\/usr --with-png-dir=\/usr\/include\/ --with-zlib --enable-mbstring --enable-iconv --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --with-openssl<br \/>\n-bash-4.0# make<br \/>\n-bash-4.0# make install<br \/>\n-bash-4.0# cp php.ini-dist \/usr\/lib\/php\/php.ini<\/p>\n<p>4\u3001\u5b89\u88c5memcache<br \/>\n-bash-4.0# tar -zxvf memcache-2.2.5.tgz<br \/>\n-bash-4.0# cd memcache-2.2.5<br \/>\n-bash-4.0#\u00a0 \/usr\/local\/php\/bin\/phpize<br \/>\n-bash-4.0# .\/configure --with-php-config=\/usr\/local\/php\/bin\/php-config<br \/>\n-bash-4.0# make<br \/>\n-bash-4.0# make install<\/p>\n<p>5\u3001\u5b89\u88c5xcache<br \/>\n-bash-4.0# tar -zxvf xcache-1.3.0.tar.gz<br \/>\n-bash-4.0# cd xcache-1.3.0<br \/>\n-bash-4.0#\u00a0 \/usr\/local\/php\/bin\/phpize<br \/>\n-bash-4.0# .\/configure --with-php-config=\/usr\/local\/php\/bin\/php-config --enable-xcache<br \/>\n-bash-4.0# make<br \/>\n-bash-4.0# make install<\/p>\n<p>6\u3001\u628amemcache\u548cxcache\u52a0\u5165php.ini<br \/>\n-bash-4.0# sed -i 's#extension_dir = \".\/\"#extension_dir = \"\/usr\/local\/php\/lib\/php\/extensions\/no-debug-non-zts-20060613\/\"\\nextension = \"memcache.so\"\\n#' \/usr\/lib\/php\/php.ini<br \/>\n-bash-4.0# sed -i 's#display_errors = On#display_errors = Off#' \/usr\/lib\/php\/php.ini<\/p>\n<p>7\u3001\u914d\u7f6ephp.ini\u5728\u6700\u540e\u52a0\u5165\u4ee5\u4e0b\u5185\u5bb9<br \/>\n-bash-4.0# vi php.ini<\/p>\n<p>[xcache-common]<br \/>\nzend_extension = \/usr\/local\/php\/lib\/php\/extensions\/no-debug-non-zts-20060613\/xcache.so<\/p>\n<p>[xcache.admin]<br \/>\nxcache.admin.user = \"xcache\"<br \/>\n; xcache.admin.pass = md5($yourpasswd)<br \/>\nxcache.admin.pass = \"8e6867a5d05144cf4761d6481fc674a8\"<\/p>\n<p>[xcache]<br \/>\nxcache.cacher = On<br \/>\nxcache.shm_scheme = \"mmap\"<br \/>\nxcache.size = 32M<br \/>\n; cpu number (cat \/proc\/cpuinfo |grep -c processor)<br \/>\nxcache.count = 2<br \/>\nxcache.slots = 8k<br \/>\nxcache.ttl = 0<br \/>\nxcache.gc_interval = 0<br \/>\nxcache.var_size = 2M<br \/>\n; cpu number (cat \/proc\/cpuinfo |grep -c processor)<br \/>\nxcache.var_count = 2<br \/>\nxcache.var_slots = 8K<br \/>\nxcache.var_ttl = 0<br \/>\nxcache.var_maxttl = 0<br \/>\nxcache.var_gc_interval = 300<br \/>\nxcache.readonly_protection = Off<br \/>\nxcache.mmap_path = \"\/dev\/zero\"<\/p>\n<p>8\u3001\u6dfb\u52a0www\u7528\u6237<br \/>\n-bash-4.0# \/usr\/sbin\/groupadd www -g 480<br \/>\n-bash-4.0# \/usr\/sbin\/useradd -u 480 -g www www<\/p>\n<p>9\u3001\u7f16\u8f91php-fpm.conf\u4e3a\u4ee5\u4e0b\u5185\u5bb9<br \/>\n-bash-4.0# vi \/usr\/local\/php\/etc\/php-fpm.conf<\/p>\n<p>&lt;?xml version=\"1.0\" ?&gt;<\/p>\n<p>&lt;configuration&gt;<\/p>\n<p>All relative paths in this config are relative to php's install prefix<\/p>\n<p>&lt;section name=\"global_options\"&gt;<\/p>\n<p>Pid file<br \/>\n&lt;value<br \/>\nname=\"pid_file\"&gt;\/usr\/local\/php\/logs\/php-fpm.pid&lt;\/value&gt;<\/p>\n<p>Error log file<br \/>\n&lt;value<br \/>\nname=\"error_log\"&gt;\/usr\/local\/php\/logs\/php-fpm.log&lt;\/value&gt;<\/p>\n<p>Log level<br \/>\n&lt;value name=\"log_level\"&gt;notice&lt;\/value&gt;<\/p>\n<p>When this amount of php processes exited with SIGSEGV or SIGBUS<br \/>\n...<br \/>\n&lt;value name=\"emergency_restart_threshold\"&gt;10&lt;\/value&gt;<\/p>\n<p>... in a less than this interval of time, a graceful restart will be<br \/>\ninitiated.<br \/>\nUseful to work around accidental curruptions in accelerator's<br \/>\nshared memory.<br \/>\n&lt;value<br \/>\nname=\"emergency_restart_interval\"&gt;1m&lt;\/value&gt;<\/p>\n<p>Time limit on waiting child's reaction on signals from master<br \/>\n&lt;value<br \/>\nname=\"process_control_timeout\"&gt;5s&lt;\/value&gt;<\/p>\n<p>Set to 'no' to debug fpm<br \/>\n&lt;value<br \/>\nname=\"daemonize\"&gt;yes&lt;\/value&gt;<\/p>\n<p>&lt;\/section&gt;<\/p>\n<p>&lt;workers&gt;<\/p>\n<p>&lt;section name=\"pool\"&gt;<\/p>\n<p>Name of pool. Used in logs and stats.<br \/>\n&lt;value<br \/>\nname=\"name\"&gt;default&lt;\/value&gt;<\/p>\n<p>Address to accept fastcgi requests on.<br \/>\nValid syntax is 'ip.ad.re.ss:port'<br \/>\nor just 'port' or '\/path\/to\/unix\/socket'<br \/>\n&lt;value<br \/>\nname=\"listen_address\"&gt;127.0.0.1:9000&lt;\/value&gt;<\/p>\n<p>&lt;value name=\"listen_options\"&gt;<br \/>\nSet listen(2) backlog<br \/>\n&lt;value<br \/>\nname=\"backlog\"&gt;-1&lt;\/value&gt;<\/p>\n<p>Set permissions for unix socket, if one used.<br \/>\nIn Linux read\/write<br \/>\npermissions must be set in order to allow connections from web server.<br \/>\nMany<br \/>\nBSD-derrived systems allow connections regardless of permissions.<br \/>\n&lt;value<br \/>\nname=\"owner\"&gt;&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"group\"&gt;&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"mode\"&gt;0666&lt;\/value&gt;<br \/>\n&lt;\/value&gt;<\/p>\n<p>Additional php.ini defines, specific to this pool of workers.<br \/>\n&lt;value<br \/>\nname=\"php_defines\"&gt;<br \/>\n&lt;value name=\"sendmail_path\"&gt;\/usr\/sbin\/sendmail<br \/>\n-t -i&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"display_errors\"&gt;1&lt;\/value&gt;<br \/>\n&lt;\/value&gt;<\/p>\n<p>Unix user of processes<br \/>\n&lt;value name=\"user\"&gt;www&lt;\/value&gt;<\/p>\n<p>Unix group of processes<br \/>\n&lt;value name=\"group\"&gt;www&lt;\/value&gt;<\/p>\n<p>Process manager settings<br \/>\n&lt;value name=\"pm\"&gt;<\/p>\n<p>Sets style of controling worker process count.<br \/>\nValid values are 'static'<br \/>\nand 'apache-like'<br \/>\n&lt;value name=\"style\"&gt;static&lt;\/value&gt;<\/p>\n<p>Sets the limit on the number of simultaneous requests that will be<br \/>\nserved.<br \/>\nEquivalent to Apache MaxClients directive.<br \/>\nEquivalent to<br \/>\nPHP_FCGI_CHILDREN environment in original php.fcgi<br \/>\nUsed with any<br \/>\npm_style.<br \/>\n&lt;value name=\"max_children\"&gt;14&lt;\/value&gt;<\/p>\n<p>Settings group for 'apache-like' pm style<br \/>\n&lt;value<br \/>\nname=\"apache_like\"&gt;<\/p>\n<p>Sets the number of server processes created on startup.<br \/>\nUsed only when<br \/>\n'apache-like' pm_style is selected<br \/>\n&lt;value<br \/>\nname=\"StartServers\"&gt;20&lt;\/value&gt;<\/p>\n<p>Sets the desired minimum number of idle server processes.<br \/>\nUsed only when<br \/>\n'apache-like' pm_style is selected<br \/>\n&lt;value<br \/>\nname=\"MinSpareServers\"&gt;5&lt;\/value&gt;<\/p>\n<p>Sets the desired maximum number of idle server processes.<br \/>\nUsed only when<br \/>\n'apache-like' pm_style is selected<br \/>\n&lt;value<br \/>\nname=\"MaxSpareServers\"&gt;35&lt;\/value&gt;<\/p>\n<p>&lt;\/value&gt;<\/p>\n<p>&lt;\/value&gt;<\/p>\n<p>The timeout (in seconds) for serving a single request after which the worker<br \/>\nprocess will be terminated<br \/>\nShould be used when 'max_execution_time' ini<br \/>\noption does not stop script execution for some reason<br \/>\n'0s' means<br \/>\n'off'<br \/>\n&lt;value name=\"request_terminate_timeout\"&gt;0s&lt;\/value&gt;<\/p>\n<p>The timeout (in seconds) for serving of single request after which a php<br \/>\nbacktrace will be dumped to slow.log file<br \/>\n'0s' means 'off'<br \/>\n&lt;value<br \/>\nname=\"request_slowlog_timeout\"&gt;0s&lt;\/value&gt;<\/p>\n<p>The log file for slow requests<br \/>\n&lt;value<br \/>\nname=\"slowlog\"&gt;logs\/slow.log&lt;\/value&gt;<\/p>\n<p>Set open file desc rlimit<br \/>\n&lt;value<br \/>\nname=\"rlimit_files\"&gt;51200&lt;\/value&gt;<\/p>\n<p>Set max core size rlimit<br \/>\n&lt;value<br \/>\nname=\"rlimit_core\"&gt;0&lt;\/value&gt;<\/p>\n<p>Chroot to this directory at the start, absolute path<br \/>\n&lt;value<br \/>\nname=\"chroot\"&gt;&lt;\/value&gt;<\/p>\n<p>Chdir to this directory at the start, absolute path<br \/>\n&lt;value<br \/>\nname=\"chdir\"&gt;&lt;\/value&gt;<\/p>\n<p>Redirect workers' stdout and stderr into main error log.<br \/>\nIf not set, they<br \/>\nwill be redirected to \/dev\/null, according to FastCGI specs<br \/>\n&lt;value<br \/>\nname=\"catch_workers_output\"&gt;yes&lt;\/value&gt;<\/p>\n<p>How much requests each process should execute before respawn.<br \/>\nUseful to<br \/>\nwork around memory leaks in 3rd party libraries.<br \/>\nFor endless request<br \/>\nprocessing please specify 0<br \/>\nEquivalent to PHP_FCGI_MAX_REQUESTS<br \/>\n&lt;value<br \/>\nname=\"max_requests\"&gt;10240&lt;\/value&gt;<\/p>\n<p>Comma separated list of ipv4 addresses of FastCGI clients that allowed to<br \/>\nconnect.<br \/>\nEquivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi<br \/>\n(5.2.2+)<br \/>\nMakes sense only with AF_INET listening socket.<br \/>\n&lt;value<br \/>\nname=\"allowed_clients\"&gt;127.0.0.1&lt;\/value&gt;<\/p>\n<p>Pass environment variables like LD_LIBRARY_PATH<br \/>\nAll $VARIABLEs are taken<br \/>\nfrom current environment<br \/>\n&lt;value name=\"environment\"&gt;<br \/>\n&lt;value<br \/>\nname=\"HOSTNAME\"&gt;$HOSTNAME&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"PATH\"&gt;\/usr\/local\/bin:\/usr\/bin:\/bin&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"TMP\"&gt;\/tmp&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"TMPDIR\"&gt;\/tmp&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"TEMP\"&gt;\/tmp&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"OSTYPE\"&gt;$OSTYPE&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"MACHTYPE\"&gt;$MACHTYPE&lt;\/value&gt;<br \/>\n&lt;value<br \/>\nname=\"MALLOC_CHECK_\"&gt;2&lt;\/value&gt;<br \/>\n&lt;\/value&gt;<\/p>\n<p>&lt;\/section&gt;<\/p>\n<p>&lt;\/workers&gt;<\/p>\n<p>&lt;\/configuration&gt;<\/p>\n<p>10\u3001\u542f\u52a8php-fpm<br \/>\n-bash-4.0# \/usr\/local\/php\/sbin\/php-fpm start<\/p>\n<p>11\u3001\u5b89\u88c5nginx<br \/>\n-bash-4.0# yum install nginx<\/p>\n<p>12\u3001\u7f16\u8f91nginx.conf\u4e3a\u5982\u4e0b\u5185\u5bb9<br \/>\n-bash-4.0# vi \/etc\/nginx\/nginx.conf<\/p>\n<p>user \u00a0www www;<\/p>\n<p>worker_processes 8;<\/p>\n<p>error_log<br \/>\n\/var\/log\/nginx\/nginx_error.log \u00a0crit;<\/p>\n<p>pid<br \/>\n\/var\/run\/nginx.pid;<\/p>\n<p>#Specifies the value for maximum file descriptors<br \/>\nthat can be opened by this process.<br \/>\nworker_rlimit_nofile<br \/>\n51200;<\/p>\n<p>events<br \/>\n{<br \/>\nuse epoll;<br \/>\nworker_connections<br \/>\n51200;<br \/>\n}<\/p>\n<p>http<br \/>\n{<br \/>\ninclude \u00a0 \u00a0 \u00a0 mime.types;<br \/>\ndefault_type<br \/>\napplication\/octet-stream;<\/p>\n<p>server_names_hash_bucket_size<br \/>\n128;<br \/>\nclient_header_buffer_size 32k;<br \/>\nlarge_client_header_buffers 4<br \/>\n32k;<\/p>\n<p>sendfile on;<br \/>\ntcp_nopush \u00a0 \u00a0 on;<\/p>\n<p>keepalive_timeout<br \/>\n60;<\/p>\n<p>tcp_nodelay on;<\/p>\n<p>fastcgi_connect_timeout<br \/>\n300;<br \/>\nfastcgi_send_timeout 300;<br \/>\nfastcgi_read_timeout<br \/>\n300;<br \/>\nfastcgi_buffer_size 64k;<br \/>\nfastcgi_buffers 4<br \/>\n64k;<br \/>\nfastcgi_busy_buffers_size 128k;<br \/>\nfastcgi_temp_file_write_size<br \/>\n128k;<\/p>\n<p>gzip on;<br \/>\ngzip_min_length \u00a01k;<br \/>\ngzip_buffers \u00a0 \u00a0 4<br \/>\n16k;<br \/>\ngzip_http_version 1.0;<br \/>\ngzip_comp_level 2;<br \/>\ngzip_types<br \/>\ntext\/plain application\/x-javascript text\/css application\/xml;<br \/>\ngzip_vary<br \/>\non;<\/p>\n<p>#limit_zone \u00a0crawler \u00a0$binary_remote_addr<br \/>\n10m;<\/p>\n<p>server<br \/>\n{<br \/>\nlisten \u00a0 \u00a0 \u00a0 80;<\/p>\n<p>server_name\u00a0 yourdomainname.com;<br \/>\nindex index.html index.htm index.php;<br \/>\nroot<br \/>\n\/usr\/local\/nginx\/html;<\/p>\n<p>#limit_conn \u00a0 crawler \u00a020;<\/p>\n<p>location ~ .*\\.(php|php5)?$<br \/>\n{<\/p>\n<p>#fastcgi_pass \u00a0unix:\/tmp\/php-cgi.sock;<br \/>\nfastcgi_pass<br \/>\n127.0.0.1:9000;<br \/>\nfastcgi_index index.php;<br \/>\ninclude<br \/>\nfcgi.conf;<br \/>\n}<\/p>\n<p>location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$<\/p>\n<p>{<br \/>\nexpires \u00a0 \u00a0 \u00a030d;<br \/>\n}<\/p>\n<p>location ~ .*\\.(js|css)?$<\/p>\n<p>{<br \/>\nexpires \u00a0 \u00a0 \u00a01h;<br \/>\n}<\/p>\n<p>log_format \u00a0access<br \/>\n'$remote_addr - $remote_user [$time_local] \"$request\" '<\/p>\n<p>'$status $body_bytes_sent \"$http_referer\" '<br \/>\n'\"$http_user_agent\"<br \/>\n$http_x_forwarded_for';<br \/>\naccess_log \u00a0\/var\/log\/nginx\/access.log<br \/>\naccess;<br \/>\n}<br \/>\n}<\/p>\n<p>13\u3001\u65b0\u5efafcgi.conf\uff0c\u5185\u5bb9\u5982\u4e0b<br \/>\n-bash-4.0# vi \/etc\/nginx\/fcgi.conf<\/p>\n<p>fastcgi_param GATEWAY_INTERFACE CGI\/1.1;<br \/>\nfastcgi_param SERVER_SOFTWARE nginx;<\/p>\n<p>fastcgi_param QUERY_STRING $query_string;<br \/>\nfastcgi_param REQUEST_METHOD $request_method;<br \/>\nfastcgi_param CONTENT_TYPE $content_type;<br \/>\nfastcgi_param CONTENT_LENGTH $content_length;<\/p>\n<p>fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br \/>\nfastcgi_param SCRIPT_NAME $fastcgi_script_name;<br \/>\nfastcgi_param REQUEST_URI $request_uri;<br \/>\nfastcgi_param DOCUMENT_URI $document_uri;<br \/>\nfastcgi_param DOCUMENT_ROOT $document_root;<br \/>\nfastcgi_param SERVER_PROTOCOL $server_protocol;<\/p>\n<p>fastcgi_param REMOTE_ADDR $remote_addr;<br \/>\nfastcgi_param REMOTE_PORT $remote_port;<br \/>\nfastcgi_param SERVER_ADDR $server_addr;<br \/>\nfastcgi_param SERVER_PORT $server_port;<br \/>\nfastcgi_param SERVER_NAME $server_name;<\/p>\n<p># PHP only, required if PHP was built with --enable-force-cgi-redirect<br \/>\nfastcgi_param REDIRECT_STATUS 200;<\/p>\n<p>14\u3001\u68c0\u67e5\u914d\u7f6e\u662f\u5426\u6b63\u786e<br \/>\n-bash-4.0# php -v<br \/>\n-bash-4.0# nginx -t -c \/etc\/nginx\/nginx.conf<\/p>\n<p>15\u3001\u542f\u52a8nginx<br \/>\n-bash-4.0# nginx<\/p>\n<p>16\u3001\u628aphp-fpm\u548cnginx\u52a0\u5165\u542f\u52a8\u811a\u672c\uff1a<br \/>\n-bash-4.0# echo \"\/usr\/local\/php\/sbin\/php-fpm start\" &gt;&gt; \/etc\/rc.local<br \/>\n-bash-4.0# echo \"nginx\" &gt;&gt; \/etc\/rc.local<\/p>\n<p>\uff08\u6211\u7528\u4e86\u5916\u90e8mysql\u6570\u636e\u5e93\uff0c\u6240\u4ee5\u8fd9\u91cc\u80fd\u7528\u5230\u7684\u53ea\u662fmysql\u7684\u5ba2\u6237\u7aef\uff0c\u5982\u679c\u4f60\u9700\u8981\u4f7f\u7528mysql\u670d\u52a1\u5668\uff0c\u5f97\u505a\u6df1\u4e00\u5c42\u7684\u914d\u7f6e\uff0c\u624d\u80fd\u542f\u52a8mysql\uff0c\u5982\uff1a\u521d\u59cb\u5316\u6570\u636e\u5e93\uff0c\u6dfb\u52a0\u7528\u6237\uff0c\u6dfb\u52a0\u6743\u9650\u7b49\uff0c\u76f8\u5173\u64cd\u4f5c\u53ef\u4ee5\u5728\u7f51\u4e0a\u67e5\u8be2\uff09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6548\u679c\u8fd8\u662f\u6bd4\u8f83\u660e\u663e\u7684\uff0c\u901f\u5ea6\u66f4\u5feb\u4e86\u3002\u5e73\u53f0\uff1afedora 11\uff0c\u73b0\u5728\u8d34\u51fa\u914d\u7f6e\u6b65\u9aa4\uff1a \u9ed1\u8272\uff1a\u63cf\u8ff0 \u84dd\u8272\uff1a\u9700\u8981\u4e0b\u8f7d\u7684\u5305 ...<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-680","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=680"}],"version-history":[{"count":1,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/680\/revisions"}],"predecessor-version":[{"id":681,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/680\/revisions\/681"}],"wp:attachment":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}