{"id":878,"date":"2025-12-20T10:58:51","date_gmt":"2025-12-20T02:58:51","guid":{"rendered":"https:\/\/pony.xin\/?p=878"},"modified":"2026-01-01T23:53:43","modified_gmt":"2026-01-01T15:53:43","slug":"lnmp%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%ef%bc%9aalmalinux-9-64bit-nginx1-29-4-mysql8-0-26-php8-0-26","status":"publish","type":"post","link":"https:\/\/lnmp.ivan.xin\/?p=878","title":{"rendered":"LNMP\u73af\u5883\u642d\u5efa\uff1aalmalinux 9.3 64bit + nginx1.29.4 + mysql8.4.7 + php8.5.1"},"content":{"rendered":"<p><strong>\u786c\u4ef6\u914d\u7f6e<\/strong><br \/>\n\u786c\u76d8\uff1a1\u4e2a\uff0c20GB<br \/>\n\u7f51\u5361\uff1a1 \u4e2a\uff0c1Gbps<br \/>\nCPU\uff1a1\u6838<br \/>\n\u5185\u5b58\uff1a1GB<\/p>\n<p><strong>\u8f6f\u4ef6\u7248\u672c<\/strong><br \/>\nalmalinux 9.3 64bit<br \/>\nmysql 8.4.7<br \/>\nnginx 1.29.4 \u5b89\u88c5ngx_log_if, ngx_http_substitutions_filter_module, http_ssl_module, zlib\u7b49\u6a21\u5757<br \/>\nphp 8.5.1 \u5b89\u88c5php-fpm mcrypt opcache gd\u7b49\u6a21\u5757<\/p>\n<p><strong>\u5f00\u542fselinux<br \/>\n<\/strong># \u5fc5\u987b\u5148\u5f00\u542fselinux\uff0c\u518ddnf update\uff0c\u5426\u5219\u53ef\u80fd\u4f1a\u5bfc\u81f4ssh\u65e0\u6cd5\u542f\u52a8\uff0c\u7cfb\u7edf\u65e0\u6cd5\u6b63\u5e38\u542f\u52a8<br \/>\n# vi \/etc\/selinux\/config \u4fee\u6539 SELINUX=enforcing<br \/>\n# touch \/.autorelabel #\u91cd\u65b0\u6807\u8bb0\u4e0a\u4e0b\u6587<br \/>\n# reboot<\/p>\n<p><strong>\u5347\u7ea7\u8f6f\u4ef6\u5305\uff0c\u5e76\u907f\u514d\u7cfb\u7edf\u7248\u672c\u6df7\u4e71<\/strong><br \/>\n# uname -a<br \/>\n# passwd #\u4fee\u6539root\u5bc6\u7801<br \/>\n# rpm -qa | grep -E \"kernel|glibc|almalinux|gcc|systemd\"<br \/>\n# dnf check-update | grep -E \"kernel|glibc|almalinux|gcc|systemd\" #\u68c0\u6d4b\u66f4\u65b0\u7684\u662f\u5426\u8ddf\u73b0\u5728\u7684\u7248\u672c\u4e00\u81f4<br \/>\n<del>####### vi \/etc\/dnf\/dnf.conf #\u6dfb\u52a0\u6392\u9664\u89c4\u5219\uff0c\u6dfb\u52a0\u6216\u66f4\u65b0\u4ee5\u4e0b\u5185\u5bb9-<\/del><br \/>\n<del>##########\u4e0d\u8981\u6539\uff0c\u5426\u5219gcc\u65e0\u6cd5\u6b63\u5e38\u5b89\u88c5#####<\/del><br \/>\n<del>#[main]<\/del><br \/>\n<del>#skip_if_unavailable=True<\/del><br \/>\n<del>#exclude=kernel* grub2* almalinux-* glibc* systemd* *-firmware system-release libgcc <\/del><br \/>\n<del>#######################################<\/del><\/p>\n<p># dnf check-update | grep \"el9_\" #\u786e\u8ba4\u66f4\u65b0\u7684\u7cfb\u7edf\u7248\u672c<br \/>\n# dnf update -y #\u66f4\u65b0\u65f6\u95f4\u8f83\u957f<br \/>\n# grubby --info=ALL #\u67e5\u770b\u6240\u6709\u7cfb\u7edf\u7248\u672c<br \/>\n# grubby --default-kernel #\u67e5\u770b\u9ed8\u8ba4\u7cfb\u7edf\u7248\u672c<br \/>\n# grubby --set-default \/boot\/vmlinuz-5.14.0-362.8.1.el9_3.x86_64 #\u9ed8\u8ba4\u542f\u52a8\u8fd8\u662f\u9009\u62e99.3\uff0c\u9009\u62e99.7\u8fdb\u4e0d\u4e86\u7cfb\u7edf<\/p>\n<p># getenforce<br \/>\n# getsebool -a | grep ssh<br \/>\n# setsebool -P ssh_keysign on<br \/>\n# setsebool -P ssh_sysadm_login on<br \/>\n# getsebool -a | grep ssh #\u786e\u4fdd\u4ee5\u4e0a\u4e24\u9879\u662fon<\/p>\n<p># vi \/etc\/ssh\/sshd_config #\u4fee\u6539\u7aef\u53e3\u4e3a2222<br \/>\n# systemctl enable --now firewalld<br \/>\n# firewall-cmd --permanent --add-port=2222\/tcp<br \/>\n# firewall-cmd --reload<br \/>\n# firewall-cmd --query-port=2222\/tcp<\/p>\n<p># dnf install policycoreutils-python-utils -y<br \/>\n# semanage port -a -t ssh_port_t -p tcp 2222<br \/>\n# systemctl restart sshd #\u6d4b\u8bd5\u5f53\u524dssh\u662f\u5426\u53ef\u7528<\/p>\n<p># \/usr\/sbin\/groupadd www<br \/>\n# \/usr\/sbin\/useradd -g www www<\/p>\n<p># passwd www #\u4fee\u6539www\u5bc6\u7801<br \/>\n# echo \"AllowUsers www\" &gt;&gt; \/etc\/ssh\/sshd_config<br \/>\n# vi \/etc\/ssh\/sshd_config #\u66f4\u65b0\u6b64\u9879\u914d\u7f6e\u4e3a PermitRootLogin no<br \/>\n# reboot #\u91cd\u542f\uff0c\u89c2\u5bdf\u542f\u52a8\u8fc7\u7a0b\u4e2d\uff0c\u662f\u5426\u51fa\u73b0\u4e24\u4e2a\u7cfb\u7edf\u7248\u672c\u7684\u9519\u8bef<\/p>\n<p><strong>\u4fee\u6539\u65f6\u533a\uff0c\u66f4\u6539\u65f6\u95f4<\/strong><br \/>\n# uname -a<br \/>\n# rm \/etc\/localtime<br \/>\n# ln -sf \/usr\/share\/zoneinfo\/Asia\/Shanghai \/etc\/localtime<br \/>\n# date<br \/>\n<del># hwclock --set --date=\"11\/17\/25 09:10:30\" #\u5982\u679c\u65f6\u95f4\u4e0d\u5bf9\uff0c\u66f4\u6539\u65f6\u95f4<\/del><br \/>\n<del># hwclock --hctosys #\u628a\u786c\u4ef6\u65f6\u949f\u540c\u6b65\u5230\u7cfb\u7edf\u65f6\u949f<\/del><\/p>\n<p><strong>\u5b89\u88c5NTP\u670d\u52a1<\/strong><br \/>\n# dnf -y install chrony<br \/>\n# systemctl start chronyd<br \/>\n# systemctl enable chronyd<br \/>\n# systemctl status chronyd<br \/>\n# date<br \/>\n<del># hwclock --hctosys #\u5982\u679c\u65f6\u95f4\u4e0d\u5bf9\uff0c\u518d\u540c\u6b65\u4e00\u904d<\/del><\/p>\n<p><strong>\u542f\u7528\u7cfb\u7edf\u65e5\u5fd7<\/strong><br \/>\n# dnf install rsyslog -y<br \/>\n# systemctl start rsyslog<br \/>\n# systemctl enable rsyslog<br \/>\n# systemctl status rsyslog<\/p>\n<p><del>#### vi \/etc\/locale.conf #\u4fee\u6539\u4e3a\u4ee5\u4e0b\u5185\u5bb9\uff0c\u9632\u6b62vi\u4e2d\u6587\u4e71\u7801<\/del><br \/>\n<del>#### LANG=en_US.UTF-8 ##### \u91c7\u7528LANG=C.UTF-8 #\u4e0d\u6539<\/del>\u4e86<\/p>\n<p><strong>\u6dfb\u52a0\u7528\u6237\u548c\u7ec4<\/strong><br \/>\n# \/usr\/sbin\/groupadd mysql<br \/>\n# \/usr\/sbin\/useradd -g mysql mysql<br \/>\n# mkdir -p \/data\/htdocs<br \/>\n# chcon -t usr_t \/etc\/hosts<br \/>\n# chcon -t usr_t \/etc\/resolv.conf #\u589e\u52a0\u6587\u4ef6\u7684selinux\u6743\u9650\uff0c\u4ee5\u514d\u7a0b\u5e8f\u4e2d\u51fa\u73b0\u5bf9\u57df\u540d\u7684\u89e3\u6790\u9519\u8bef<br \/>\n# chcon -R -t httpd_sys_rw_content_t \/data\/htdocs\/ #php selinux\u5199\u6587\u4ef6\u6743\u9650<br \/>\n# chcon -R -t usr_t \/data\/htdocs<br \/>\n# chown -R www:www \/data\/htdocs<\/p>\n<p><strong>\u7cfb\u7edf\u5176\u4ed6\u914d\u7f6e<\/strong><br \/>\n# dnf -y install crontabs bind bind-utils -y zip unzip tar\u00a0 wget<br \/>\n# systemctl start crond<br \/>\n# systemctl enable crond<br \/>\n# systemctl status crond<br \/>\n# systemctl start named #\u542f\u52a8\u670d\u52a1<br \/>\n# systemctl enable named #\u5f00\u673a\u542f\u52a8named\u670d\u52a1<br \/>\n# systemctl status named<\/p>\n<p><strong>\u5b89\u88c5mysql<\/strong><br \/>\n# rpm -qa | grep mysql #\u627e\u5230\u7cfb\u7edf\u81ea\u5e26\u7684\u5305\uff0c\u7528rpm -e\u5168\u90e8\u5220\u9664<br \/>\n# rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 #\u6709\u7684\u8bdd\u5220\u9664<br \/>\n<del>######### dnf -y install perl libaio #\u4e0d\u9700\u8981\u4e86<\/del><br \/>\n# cd ~<br \/>\n# rpm -ivh http:\/\/repo.mysql.com\/mysql84-community-release-el9.rpm<br \/>\n# dnf -y install mysql-server<br \/>\n# vi \/etc\/my.cnf.d\/mysql-server.cnf\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<blockquote><p>[mysqld]<br \/>\nlog-bin=mysql-bin<br \/>\nbinlog_format=mixed<br \/>\nperformance_schema_max_table_instances=4000<br \/>\ntable_definition_cache=2048<br \/>\ntable_open_cache=1024<br \/>\nslow_query_log<br \/>\nlong_query_time = 2<br \/>\n#slow_query_log_file=\"\/tmp\/mysql_slow.log\"<br \/>\n#log_slave_updates<br \/>\n#gtid-mode=ON<br \/>\n#enforce-gtid-consistency=ON<br \/>\nexplicit_defaults_for_timestamp=true<\/p><\/blockquote>\n<p># systemctl restart mysqld<br \/>\n# grep 'temporary password' \/var\/log\/mysqld.log #\u627e\u5230\u4e34\u65f6\u5bc6\u7801\u5e76\u4fee\u6539<br \/>\n# mysql -p<br \/>\n# mysql &gt; ALTER USER 'root'@'localhost' IDENTIFIED BY '\u65b0\u5bc6\u7801';<br \/>\n# mysql &gt; exit;<br \/>\n# systemctl enable mysqld<\/p>\n<p><strong>\u5b89\u88c5nginx<\/strong><br \/>\n# dnf -y install\u00a0 make pcre-devel openssl-devel git zlib-devel gcc<br \/>\n# cd ~<br \/>\n# wget -c http:\/\/nginx.org\/download\/nginx-1.29.4.tar.gz<br \/>\n# tar -zxf nginx-1.29.4.tar.gz<br \/>\n# mkdir -p \/usr\/local\/nginx\/<br \/>\n# cd \/usr\/local\/nginx<br \/>\n# wget -O ngx_log_if-master.zip https:\/\/github.com\/cfsego\/ngx_log_if\/archive\/master.zip<br \/>\n# wget -O ngx_http_substitutions_filter_module-master.zip \\<br \/>\nhttps:\/\/github.com\/yaoweibin\/ngx_http_substitutions_filter_module\/archive\/master.zip<br \/>\n# unzip ngx_log_if-master.zip<br \/>\n# unzip ngx_http_substitutions_filter_module-master.zip<br \/>\n# cd ~\/nginx-1.29.4<br \/>\n# .\/configure --prefix=\/usr\/local\/nginx --user=www --group=www \\<br \/>\n--with-http_stub_status_module --with-http_ssl_module --with-pcre \\<br \/>\n--with-http_realip_module --add-module=\/usr\/local\/nginx\/ngx_log_if-master \\<br \/>\n--add-module=\/usr\/local\/nginx\/ngx_http_substitutions_filter_module-master<br \/>\n# make &amp;&amp; make install<br \/>\n# vi \/etc\/systemd\/system\/nginx.service #\u521b\u5efasystemd\u670d\u52a1\u811a\u672c\u4e3a\u5982\u4e0b\u5185\u5bb9<\/p>\n<blockquote><p>[Unit]<br \/>\nDescription=nginx web server<br \/>\nAfter=network.target<br \/>\n[Service]<br \/>\nType=forking<br \/>\nExecStart=\/usr\/local\/nginx\/sbin\/nginx<br \/>\nExecReload=\/usr\/local\/nginx\/sbin\/nginx -s reload<br \/>\nExecStop=\/usr\/local\/nginx\/sbin\/nginx -s stop<br \/>\nPrivateTmp=true<br \/>\n[Install]<br \/>\nWantedBy=multi-user.target<\/p><\/blockquote>\n<p># cp \/usr\/local\/nginx\/conf\/nginx.conf \/usr\/local\/nginx\/conf\/nginx-conf.bk<br \/>\n# vi \/usr\/local\/nginx\/conf\/nginx.conf #\u7f16\u8f91nginx\u914d\u7f6e\u6587\u4ef6\uff0c\u5185\u5bb9\u53ef\u4ee5\u5230\u7f51\u4e0a\u641c\uff0c\u6bd4\u5982<a href=\"http:\/\/www.cnblogs.com\/chenjiahe\/p\/5956002.html\" target=\"_blank\" rel=\"noopener\">http:\/\/www.cnblogs.com\/chenjiahe\/p\/5956002.html<\/a>\uff0c\u6216\u8005\u56de\u590d\u672c\u6587\u7559\u4e0b\u90ae\u7bb1\u7d22\u53d6<\/p>\n<p># mkdir -p \/usr\/local\/nginx\/conf\/conf.d\/<br \/>\n# mkdir -p \/usr\/local\/nginx\/logs<br \/>\n# mkdir -p \/tmp\/nginx_cache_dir<br \/>\n# mkdir -p \/tmp\/nginx_temp_dir<br \/>\n# chown -R www:www \/usr\/local\/nginx\/logs<br \/>\n# chown -R www:www \/tmp\/nginx_cache_dir<br \/>\n# chown -R www:www \/tmp\/nginx_temp_dir<br \/>\n# mv \/usr\/local\/nginx\/conf \/etc\/nginx<br \/>\n# ln -s \/etc\/nginx \/usr\/local\/nginx\/conf<br \/>\n# systemctl restart nginx<br \/>\n# systemctl enable nginx<\/p>\n<p><strong>\u5b89\u88c5php<\/strong><br \/>\n# cd ~<br \/>\n# rpm -ivh https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-9.noarch.rpm<br \/>\n# rpm -Uvh https:\/\/rpms.remirepo.net\/enterprise\/remi-release-9.7.rpm --nodeps --force<br \/>\n# dnf module list php<br \/>\n# dnf module enable php:remi-8.5 -y<br \/>\n# dnf info php<br \/>\n# dnf -y install php php-cli php-common php-opcache php-fpm php-gd php-mcrypt php-mysql php-xml php-xmlrpc php-mbstring<\/p>\n<p># rpm -qa | grep httpd<br \/>\n# dnf -y remove httpd #httpd-*\u4e0d\u7528\u7ba1<br \/>\n# setsebool -P httpd_can_network_connect=1 #selinux\u6587\u4ef6\u6743\u9650<br \/>\n# vi \/etc\/php.ini #\u4fee\u6539\u65f6\u533a<\/p>\n<blockquote><p>date.timezone = PRC<\/p><\/blockquote>\n<p># vi \/etc\/php-fpm.d\/www.conf #\u4fee\u6539\u4ee5\u4e0b\u53c2\u6570\uff1a<\/p>\n<blockquote><p>user=www<br \/>\ngroup=www<br \/>\nlisten= 127.0.0.1:9000<br \/>\nrequest_terminate_timeout = 30s<br \/>\npm.max_children = 25<br \/>\npm.start_servers = 10<br \/>\npm.min_spare_servers = 10<br \/>\npm.max_spare_servers = 20<\/p><\/blockquote>\n<p><del>#### vi \/etc\/php.d\/10-opcache.ini #\u4e0d\u9700\u8981\u4fee\u6539\uff0c\u7528\u9ed8\u8ba4\u7684\u53c2\u6570\u5373\u53ef<\/del><\/p>\n<p># mkdir -p \/var\/lib\/php\/session<br \/>\n# mkdir -p \/var\/lib\/php\/wsdlcache<br \/>\n# chown -R www:www \/var\/lib\/php\/<br \/>\n# chown -R www:www \/var\/log\/php-fpm\/<br \/>\n# chcon -t usr_t \/etc\/php-fpm.d\/www.conf<br \/>\n# systemctl restart php-fpm<br \/>\n# systemctl enable php-fpm<br \/>\n# chown www:www \/var\/log\/php-fpm\/error.log<br \/>\n<del>####\u4e0d\u9700\u8981 chown www:www \/run\/php-fpm\/www.sock #\u7528\u7aef\u53e3\u6ca1\u6709\u8fd9\u4e2a\u6587\u4ef6<\/del><\/p>\n<p><strong>\u5b89\u5168\u914d\u7f6e<\/strong><br \/>\n# echo 1 &gt; \/proc\/sys\/net\/ipv4\/icmp_echo_ignore_all<br \/>\n# firewall-cmd --permanent --add-port=80\/tcp # firewall\u914d\u7f6e\u89c4\u5219 \u4fdd\u5b58\u914d\u7f6e # \u65e0\u9700\u5355\u72ec\u4fdd\u5b58\u547d\u4ee4<br \/>\n# firewall-cmd --permanent --add-port=443\/tcp<br \/>\n<del>##### firewall-cmd --permanent --add-rich-rule='rule family=\"ipv4\" source address=\"11.22.33.44\" port protocol=\"tcp\" port=\"3306\" accept'<\/del><br \/>\n# firewall-cmd --permanent --add-icmp-block={echo-request,echo-reply}\u00a0 # \u5141\u8bb8 ICMP<br \/>\n# firewall-cmd --reload\u00a0 # \u5e94\u7528\u914d\u7f6e<br \/>\n# firewall-cmd --list-all # \u67e5\u770b\u914d\u7f6e<br \/>\n# firewall-cmd --state # \u68c0\u67e5 firewalld \u72b6\u6001<br \/>\n# firewall-cmd --list-all\u00a0 # \u67e5\u770b\u6240\u6709\u89c4\u5219<br \/>\n# firewall-cmd --query-port=80\/tcp\u00a0 # \u68c0\u67e5\u7aef\u53e3\u662f\u5426\u5f00\u653e<br \/>\n# firewall-cmd --query-port=443\/tcp<br \/>\n# ss -tlnp | grep :2222 # \u6d4b\u8bd5\u8fde\u63a5<br \/>\n# ss -tlnp | grep :80<br \/>\n# ss -tlnp | grep :443<br \/>\n# systemctl status firewalld\u00a0 # \u68c0\u67e5\u670d\u52a1\u72b6\u6001<br \/>\n# systemctl restart firewalld<br \/>\n# systemctl enable firewalld<\/p>\n<p># echo \"\/bin\/systemctl restart mysqld\" &gt;&gt; \/etc\/rc.local<br \/>\n# echo \"\/bin\/systemctl restart php-fpm\" &gt;&gt; \/etc\/rc.local<br \/>\n# echo \"\/bin\/systemctl restart nginx\" &gt;&gt; \/etc\/rc.local<br \/>\n# echo \"\/bin\/systemctl restart firewalld\" &gt;&gt; \/etc\/rc.local<br \/>\n#\u5982\u679c\u590d\u5236\u7c98\u8d34\u4e86htdocs\u4e0b\u7684\u5b50\u76ee\u5f55\uff0c\u518d\u6267\u884c\u4e00\u4e0bselinux\u7684\u64cd\u4f5c\uff0c\u8fd9\u4e2a\u6b65\u9aa4\u6bd4\u8f83\u91cd\u8981<br \/>\n# semanage fcontext -a -t httpd_sys_rw_content_t \"\/data\/htdocs(\/.*)?\"<br \/>\n# restorecon -R \/data\/htdocs<br \/>\n# chcon -R -t httpd_sys_rw_content_t \/data\/htdocs\/<br \/>\n# chcon -R -t usr_t \/data\/htdocs<br \/>\n# reboot<\/p>\n<p><strong>\u914d\u7f6e\u6d4b\u8bd5\u7f51\u7ad9<\/strong><br \/>\n# su - www<br \/>\n# cd \/data\/htdocs<br \/>\n# wget https:\/\/wordpress.org\/latest.zip<br \/>\n# unzip latest.zip<br \/>\n# cd wordpress<br \/>\n# echo \"&lt;?php phpinfo(); ?&gt;\" &gt; php.php<br \/>\n# mysql -u root -p<br \/>\n# mysql&gt; create database wordpress;<br \/>\n# mysql&gt; exit<br \/>\n# su -<br \/>\n# vi \/etc\/nginx\/conf.d\/wordpress.conf \u7f16\u8f91\u4e3a\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<blockquote><p>server {<br \/>\nlisten 80 default;<br \/>\nroot \/data\/htdocs\/wordpress\/;<br \/>\nlocation \/ {<br \/>\nindex index.php;<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<p>location ~ \\.php$ {<br \/>\nfastcgi_pass 127.0.0.1:9000; #unix:\/run\/php-fpm\/www.sock;<br \/>\nfastcgi_index index.php;<br \/>\nfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br \/>\ninclude fastcgi_params;<br \/>\n}<br \/>\n}<\/p><\/blockquote>\n<p># systemctl restart nginx<\/p>\n<p>\u6253\u5f00php.php\u9875\u9762\u548c\u6d4b\u8bd5WordPress\uff0c\u786e\u8ba4\u7f51\u7ad9\u7684\u6c34\u5370\u548cURL\u8f6c\u53d1\u6ca1\u6709\u95ee\u9898\u540e\uff0c\u5220\u9664\u7f51\u7ad9\uff1a<br \/>\n# rm -rf \/data\/htdocs\/wordpress<br \/>\n# rm -rf \/etc\/nginx\/conf.d\/wordress.conf<br \/>\n# mysql -u root -p<br \/>\n# mysql&gt; drop database wordpress;<br \/>\n# mysql&gt; exit<\/p>\n<p>\u7ed3\u675f<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u786c\u4ef6\u914d\u7f6e \u786c\u76d8\uff1a1\u4e2a\uff0c20GB \u7f51\u5361\uff1a1 \u4e2a\uff0c1Gbps CPU\uff1a1\u6838 \u5185\u5b58\uff1a1GB \u8f6f\u4ef6\u7248\u672c almalin...<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,15330,15329,15331],"tags":[],"class_list":["post-878","post","type-post","status-publish","format-standard","hentry","category-linux","category-mysql","category-nginx","category-php"],"_links":{"self":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/878","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=878"}],"version-history":[{"count":19,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/878\/revisions"}],"predecessor-version":[{"id":901,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/878\/revisions\/901"}],"wp:attachment":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}