{"id":437,"date":"2023-04-22T20:20:30","date_gmt":"2023-04-22T12:20:30","guid":{"rendered":"https:\/\/vm1.go2see.me\/?p=437"},"modified":"2025-02-23T19:04:25","modified_gmt":"2025-02-23T11:04:25","slug":"437","status":"publish","type":"post","link":"https:\/\/vm1.go2see.me\/?p=437","title":{"rendered":"\u5b89\u88dd Ubuntu24.04 \u670d\u52d9\u5668"},"content":{"rendered":"<h1>\u5b89\u88dd Ubuntu24.04 \u670d\u52d9\u5668<\/h1>\n<blockquote>\n<ul>\n<li>\u4f7f\u7528 Ubuntu24.04 \u684c\u9762\u7248<\/li>\n<li>\u5927\u90e8\u5206\u7684\u8a2d\u7f6e\u8981\u5728\u8d85\u7d1a\u7528\u6236\u6a21\u5f0f\u4e0b\u9032\u884c<\/li>\n<li>24.04 \u7684 php8.1-fpm \u5df2\u6539\u6210 php8.3-fpm<\/li>\n<\/ul>\n<\/blockquote>\n<h2>1 \u670d\u52d9\u5668\u898f\u5283\u8207\u5b89\u88dd<\/h2>\n<h3>1.1 \u8abf\u6574\u7de3\u8d77<\/h3>\n<p>\u5bb6\u88cf\u7684\u7121\u98a8\u6247\u5c0f\u4e3b\u6a5f\u51fa\u72c0\u6cc1\u4e86\uff0c\u62ff\u4f86\u4fee\u5fa9\u4e26\u5b89\u88ddUbuntu 22.04\u7cfb\u7d71\u5f8c\uff0c\u60f3\u8b93\u4ed6\u7e7c\u7e8c\u505a\u5bb6\u88cf\u7684\u670d\u52d9\u5668\u3002\u57df\u540d\u548c\u56fa\u5b9aIP\u5df2\u7d93\u51c6\u5099\u597d\u4e86\uff0c\u4f46\u6700\u8fd1\u4e0d\u6703\u56de\u5bb6\u5b89\u88dd\u6a5f\u5668\uff0c\u5c31\u5148\u628a\u80fd\u5b8c\u6210\u7684\u5de5\u4f5c\u505a\u5b8c\u5427\u3002<\/p>\n<p>\u4e4b\u524d\u7533\u8acb\u7684 Oracle VPS (\u4e00\u53f0ARM\uff0c\u5169\u53f0x86)\uff0c\u539f\u4f86\u662f\u7528 LEMP\u505aWeb\u670d\u52d9\u7684\uff0c\u4f46\u767c\u73feNginx\u76ee\u524d\u5c0d WebDAV\u652f\u6301\u4e0d\u5920\u5b8c\u6574\uff0c\u66fe\u7d93\u5617\u8a66\u81ea\u884c\u6dfb\u52a0\u63d2\u4ef6\u7de8\u8b6f\uff0c\u4f46\u9084\u662f\u6709\u9ede\u554f\u984c\uff0c\u6240\u4ee5\u6211\u6539\u56de\u7528\u50b3\u7d71\u7684 LAMP\uff0c\u5728 Nginx\u548cApache\u5207\u63db\u6642\uff0c\u9700\u8981\u6ce8\u610fWordpress\u7684\u8a2d\u7f6e\u8981\u91cd\u8a2d\uff0cCertBot\u9700\u8981\u66f4\u63db\u5de5\u4f5c\u6a21\u5f0f\u8207\u65b0\u7684Key\uff0c\u5207\u63db\u7684\u5de5\u4f5c\u6211\u5c31\u64fa\u5728\u7b2c7\u7bc0\u548cCertBot\u4e00\u5002\u8655\u7406\u4e86\u3002<\/p>\n<p>\u9019\u6a23\u6211\u7684VPS\u548c\u79c1\u4eba\u670d\u52d9\u5668\u5c31\u6709\u4e00\u81f4\u7684\u7db2\u8def\u5de5\u4f5c\u74b0\u5883\u4e86\u3002<\/p>\n<h3>1.2 \u670d\u52d9\u529f\u80fd\u8a08\u5283<\/h3>\n<p>\u60f3\u6709\u7684\u529f\u80fd\uff1a<\/p>\n<ul>\n<li>\u7db2\u9801\u670d\u52d9\uff1a\u63a1\u7528 WordPress\uff0c\u4f9d\u8cf4\u65bc LAMP\uff08 <strong>L<\/strong>inux server with <strong>A<\/strong>pache2, <strong>M<\/strong>arriaDB\/MySQL, and <strong>P<\/strong>hp\uff09 \u57fa\u790e\u670d\u52d9\u3002<\/li>\n<li>\u6587\u4ef6\u670d\u52d9\uff1a\u63a1\u7528 WebDAV\uff0c\u4f9d\u8cf4\u65bcApache2\u670d\u52d9\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728\u700f\u89bd\u5668\u4e2d\u700f\u89bd\u6587\u4ef6\uff0c\u751a\u81f3\u65bc\u5728\u6700\u8fd1\u7684OS\u4e2d\u90fd\u53ef\u4ee5\u639b\u8f09\u5230\u6587\u4ef6\u700f\u89bd\u5668\u4e2d\u8b80\u5beb\u6587\u4ef6\u3002\u6b64\u5916\uff0cWinSCP\u7b49ftp\u5de5\u5177\u73fe\u5728\u4e5f\u90fd\u652f\u6301WebDAV\u4e86\uff0c\u6bd4ftp\/sftp\u597d\u7528\u3002<\/li>\n<li>http \u7684 SSL \u52a0\u5bc6\u8b49\u66f8\u63a1\u7528\u514d\u8cbb\u7684Certbot\/Let\u2019sEncrypt \u6388\u6b0a\u6a5f\u5236\u3002<\/li>\n<li>OpenVPN\u670d\u52d9\uff1a\u63d0\u4f9b\u7279\u6b8a\u7684\u8de8\u7db2\u670d\u52d9\uff0c\u9019\u6a23\u4e0d\u5728\u53f0\u7063\u4e5f\u53ef\u4ee5\u9023\u4e0a\u53f0\u7063\u7684\u653f\u5e9c\u670d\u52d9\u7db2\u4e86\u3002<\/li>\n<li>\u7db2\u6587\u5beb\u4f5c\uff1a\u7531\u65bc\u6700\u8fd1\u90fd\u7528 Typora\u7b49 Markdown\u7de8\u8f2f\u5668\u4f86\u7de8\u8f2f\u6587\u7ae0\uff0c\u7528 mermaid \u8a9e\u8a00\u756b\u5404\u7a2e\u793a\u610f\u5716\u3002\u5728\u672c\u5730WYSIWYG\u7de8\u8f2f\u6587\u4ef6\u9084\u662f\u6bd4\u4e00\u822c\u96d9\u6b04\u7684Markdown\u7de8\u8f2f\u5668\u8212\u9069\u3002\u6211\u70ba Typora \u7de8\u5beb\u4e86\u5716\u7247\u4e0a\u50b3\u7684\u7c21\u55ae script\uff08Windows\/Unix\uff09\uff0c\u9019\u6a23\u53ef\u4ee5\u5099\u4efd markdown\u7684\u5716\u7247\u5230\uff08\u4e0d\u540c\u7684\uff09\u7db2\u7ad9\u4e0a\uff0c\u900f\u904e WordPress\u7684 mark down \u548c mermaid\u7b49\u63d2\u4ef6\uff0c\u6211\u53ef\u4ee5\u8f15\u9b06\u7684\u5c07\u672c\u5730\u7684\u9ecf\u8cbc\u6587\u7ae0\u548c\u5716\u7247\u516c\u958b\u5230\u7db2\u7ad9\u4e0a\u4e86\u3002<\/li>\n<\/ul>\n<p>\u5176\u4ed6\u66ab\u6642\u4e0d\u7528\u7684\u670d\u52d9\uff1a<\/p>\n<ul>\n<li>email\uff1a\u76ee\u524d\u5927\u516c\u53f8\u7684\u514d\u8cbbEmail\u90fd\u5f88\u65b9\u4fbf\u4e86\uff0c\u6211\u5c31\u4e0d\u6298\u9a30\u4e86\u3002<\/li>\n<li>git\uff0c\u9084\u662f\u5148\u7528 github\uff0c\u6709\u7a7a\/\u6709\u7a7a\u9593\u518d\u73a9\u5427\u3002<\/li>\n<li>ftp\/sftp\/ftps\u2026: \u76ee\u524d WebDAV\u5920\u7528\u4e86\uff0c\u5b89\u5168\u6027\u4e5f\u5920\u597d\u4e86\uff0c\u770b\u770b\u5427\u3002<\/li>\n<\/ul>\n<p>Apache\u7684WebDAV\u96d6\u7136\u6bd4 Nginx\u7684\u5b8c\u6574\uff0c\u4f46\u807d\u8aac\u4ecd\u7136\u4e0d\u5920\u7a69\u5b9a\uff0c\u6211\u5148\u73a9\u73a9\u770b\u3002\u9700\u8981\u7684\u8a71\uff0c\u63db go\u8a9e\u8a00\u7684 WebDAV\u670d\u52d9\u6216\u5982nextCloud\u7684\u514d\u8cbb\u96f2\u670d\u52d9\u8a66\u8a66\u3002<\/p>\n<h3>1.3 \u7cfb\u7d71\u66f4\u65b0&amp;\u9632\u706b\u7246\uff1a<\/h3>\n<p>Ubuntu 22.04 \u76f4\u63a5\u7528\u4e86Desktop\u7684\u7248\u672c\u3002\u670d\u52d9\u5668\u9700\u8981\u8a2d\u5b9a\u3002\u5148\u66f4\u65b0\u4e0b\u7cfb\u7d71\u4e26\u5b89\u88dd\u9632\u706b\u58bb\u3001ssh\u670d\u52d9\u3001ssh key\u3001\u7db2\u8def\u5de5\u5177\u7b49\u5e38\u7528\u5de5\u5177\u3002<\/p>\n<pre><code class=\"language-bash\">cd \/etc\/apt\n\n# 1. swap into nearby apt mirrors:\n# if in cn, set apt source to ustc mirrors: \nsudo sed -i 's\/tw.archive.ubuntu.com\/mirrors.ustc.edu.cn\/g' sources.list\n# if in taiwan, set apt source to nchc mirrors:\nsudo sed -i 's\/tw.archive.ubuntu.com\/free.nchc.org.tw\/g' sources.list\n\n# 2. update apt database and upgrade system packages (with new source.list)\nsudo apt update & sudo apt upgrade\n# 3. install sshd & ifconfig cmds...\nsudo apt install net-tools openssh-server\n# 4. generate ssh key for current user(cyue)\nssh-keygen\n\n# 5. enter sudoer account:\nsudo -s\n# 6. set ufw firewall:\nufw allow ssh\nufw allow https\nufw allow http\nufw allow ftp\nufw allow ftps\nufw allow **** #my 2nd ssh\nufw allow **** #my openvpn\nufw allow from 10.0.0.0\/8\nufw allow from 172.16.0.0\/12\nufw allow from 172.20.0.0\/16 \nufw allow from 192.168.0.0\/16\nufw allow l2tp\nufw enable\nufw status numbered<\/code><\/pre>\n<h3>1.4 \u5b89\u88dd XRDP\u670d\u52d9<\/h3>\n<pre><code class=\"language-bash\"> sudo apt install -y ubuntu-desktop xrdp\n\n# \u5141\u8a31\u5916\u7db2 XRDP\n#sudo ufw allow 3389\n\n# \u5141\u8a31\u5167\u7db2\u548c OpenVPN \u5ba2\u6236\u4f7f\u7528\u00b7 XRDP\nsudo ufw allow from 192.168.0.0\/16 to any port 3389\nsudo ufw allow from 10.0.0.0\/8 to any port 3389\n\n# \u91cd\u5553\u4e26\u6aa2\u67e5 XRDP \u670d\u52d9\nsudo systemctl restart xrdp\nsudo systemctl status xrdp<\/code><\/pre>\n<h3>1.5 \u66ab\u6642\u7684\u57df\u540d\u670d\u52d9<\/h3>\n<p>\u7531\u65bc\u9084\u6c92\u8fa6\u6cd5\u628a\u670d\u52d9\u5668\u9023\u63a5\u4e0a\u516c\u7db2\u56fa\u5b9aIP\uff0c\u5148\u5c07\u8981\u7528\u7684\u57df\u540d\u6307\u5b9a\u5230\u76ee\u524d\u6a5f\u5668\u7684\u5185\u7db2IP\uff0c\u65b9\u4fbf\u5148\u505a\u5927\u90e8\u5206\u7684\u8a2d\u5b9a\u548c\u9a57\u8b49\u3002\u5728\u5de5\u4f5c\u5ba2\u6236\u6a5f\u7684 <code>hosts<\/code> \u6587\u4ef6\u5148\u76f4\u63a5\u7d81\u5b9a\u57df\u540d\u5185\u7db2IP\u3002<code>hosts<\/code>\u6587\u4ef6\u4f4d\u65bc\uff1a<\/p>\n<ul>\n<li>linux\/macOS \u5ba2\u6236\u7aef\uff1a<code>\/etc\/hosts<\/code> \u3002<\/li>\n<li>Windows \u5ba2\u6236\u7aef\uff1a<code>c:\\Windows\\system32\\drivers\\etc\\hosts<\/code> \u3002<\/li>\n<\/ul>\n<p>\u5728<code>hosts<\/code> \u4e2d\u6dfb\u52a0\u5169\u884c\uff0c\u5f37\u5236\u5c07\u672a\u4f86\u8981\u7528\u7684\u57df\u540d\u6307\u5411 192.168.3.20 \u7684\u5185\u7db2IP \uff1a<\/p>\n<pre><code>192.168.3.20 go2see.me\n192.168.3.20 tkalook.us<\/code><\/pre>\n<p>\u670d\u52d9\u5668 &quot;\u6b78\u4f4d&quot; \u5f8c\uff0c\u518d\u6e05\u9664\u9019\u5169\u884c\u3002<\/p>\n<h3>1.6 ssh \u514d\u5bc6\u767b\u5165<\/h3>\n<p>\u82e5\u672c\u6a5f\u975e\u516c\u7528\u6a5f, \u5e33\u6236\u662f\u5b89\u5168\u7684, \u53ef\u4ee5\u5c07\u672c\u6a5f\u5e33\u6236\u7684 ssh \u516c\u9470\u6dfb\u52a0\u5230 \u670d\u52d9\u5668\u7684 <code>~\/.ssh\/authorized_keys<\/code> \u5c3e\u7aef, \u4ee5\u5f8c\u672c\u6a5f\u672c\u5e33\u6236\u767b\u5165\u670d\u52d9\u5668\u5c31\u4e0d\u5fc5\u5bc6\u78bc, \u76f4\u63a5\u767b\u5165\u4e86.<\/p>\n<p>\u672c\u673a\u7aef\uff1a<\/p>\n<pre><code class=\"language-bash\">#\u82e5\u672c\u6a5f\u9084\u6c92\u6709 ssh key, \u751f\u6210\u4e00\u500b(\u4e0d\u60f3\u52a0passphrase\u5728\u8a62\u554f\u6642\u76f4\u63a5\u6309 enter\u5373\u53ef):\nssh-keygen\n#\u50b3\u9001\u516c\u9470\u5230\u670d\u52d9\u5668\nscp .ssh\/id_rsa.pub cyue@go2see.me:~\/mykey<\/code><\/pre>\n<p>\u670d\u52a1\u5668\u7aef\uff1a<\/p>\n<pre><code class=\"language-bash\">#\u767b\u5165\u670d\u52d9\u5668\u4e26\u6dfb\u516c\u9470\u52a0\u5230 .ssh\/authorized_keys:\nssh cyue@go2see.me\ncat mykey >> .ssh\/authorized_keys\n# \u4e4b\u5f8cssh\u767b\u5165\u5c31\u4e0d\u7528\u5bc6\u78bc\u4e86<\/code><\/pre>\n<h2>2. LAMP \u5b89\u88dd\u8207\u8a2d\u7f6e\uff1a<\/h2>\n<p>\u52d5\u614b\u7db2\u9801\u76f8\u95dc\u7684 http \u670d\u52d9\u57fa\u790e\u662f LAMP\uff0c\uff08 <strong>L<\/strong> inux server with <strong>A<\/strong> pache2, <strong>M<\/strong> arriaDB, and <strong>P<\/strong>hp\uff09 \u7cfb\u7d71\u670d\u52d9\u7684\u7e2e\u5beb\u3002\u4e0d\u7528 \u6700\u8fd1\u6d41\u884c\u7684 Nginx\u53d6\u4ee3 Apache\u662f\u56e0\u7232 WebDAV\u7684\u652f\u6301\u4e0d\u5920\u5b8c\u6574\uff0c\u5617\u8a66\u52a0\u5165\u5404\u7a2e\u63d2\u4ef6\u7de8\u8b6f\u904e\u5f8c\uff0c\u5728Windows\u548cmacOS\u5ba2\u6236\u6a5f\u4e0a\uff0c\u5f88\u96e3\u76f4\u63a5\u639b\u8f09 WebDAV \u7db2\u76e4\uff0c\u9084\u662f\u7528\u56de Apache\u5427\u3002<\/p>\n<blockquote>\n<p>\u6700\u65b0\u7684Wordpress\u5df2\u7d93\u53ef\u4ee5\u517c\u5bb9v 8.3\u7248\u672c\u7684php\u4e86\uff0cubuntu 24.04 \u81ea\u5e36\u7684 php\u5305\u7248\u672c\u662f v8.3\u7684\uff0c\u7e3d\u7b97\u53ef\u4ee5\u5b89\u5168\u4f7f\u7528\u4e86\u3002<\/p>\n<\/blockquote>\n<h3>2.1 \u5305\u5b89\u88dd<\/h3>\n<ul>\n<li>\u5305\u5b89\u88dd\uff08apache2\u3001mariadb\u3001php\uff09\uff1a<\/li>\n<\/ul>\n<pre><code class=\"language-bash\"># with sudo -s\nsnap install curl\napt install -y apache2 \napt install -y mariadb-server mariadb-client\napt install -y php-fpm php-opcache php-cli php-gd php-curl php-mysql php-xml php-xmlrpc php-mbstring php-intl php-zip<\/code><\/pre>\n<p>PHP\u5b89\u88dd\u6642\uff0c\u986f\u793a\u4e86\u9700\u8981\u5b89\u88dd\u6216\u8a2d\u5b9a\u7684 Apache \u6a21\u584a\/\u670d\u52d9:<\/p>\n<pre><code>...\nNOTICE: Not enabling PHP 8.3 FPM by default.\nNOTICE: To enable PHP 8.3 FPM in Apache2 do:\nNOTICE: a2enmod proxy_fcgi setenvif\nNOTICE: a2enconf php8.3-fpm\nNOTICE: You are seeing this message because you have apache2 package installed.\n...<\/code><\/pre>\n<h3>2.2 \u6253\u958b Apache\u7684\u529f\u80fd\u6a21\u584a\u652f\u6301\u8207\u5c0dPHP\u7684\u8a2d\u7f6e\u652f\u6301<\/h3>\n<p>\u6545\u6839\u64da 2.1 \u5efa\u8b70\uff0c\u4ee5\u53ca\u4e4b\u5f8c WordPress\u3001WebDAV\u9700\u6c42\uff1a<\/p>\n<pre><code class=\"language-bash\"># LAMP \u7684\u6a21\u584a\u9700\u6c42\na2enmod proxy_fcgi setenvif \na2enconf php8.3-fpm\n# WordPress \u6dfb\u52a0\u6a21\u584a\u9700\u6c42\na2enmod rewrite\n# WebDAV \u6dfb\u52a0\u7684\u6a21\u584a\u9700\u6c42(dav_fs\u662f\u5c07\u5916\u90e8Dav\u7576\u6587\u4ef6\u7cfb\u7d71)\na2enmod dav dav_fs auth_digest<\/code><\/pre>\n<h3>2.3 marriaDB\u8cc7\u6599\u5eab\u670d\u52d9\u5553\u52d5\u8207\u8a2d\u7f6e<\/h3>\n<pre><code class=\"language-bash\"># with sudo -s\nsystemctl restart mariadb.service\nsystemctl enable mariadb.service\nsudo mysql_secure_installation\n# \u9664\u4e86\u8a2d\u5b9a root passowrd \u6642\u9700\u8981\u8f38\u5165\u5916\uff0c\u6309 Enter \u5373\u53ef\u3002<\/code><\/pre>\n<h3>2.4 \u4fee\u6539\u589e\u5927 php8.3-fpm \u7684\u8a2d\u7f6e\u503c\uff1a<\/h3>\n<pre><code class=\"language-bash\"># with sudo -s\nsed -i 's\/memory_limit = 128M\/memory_limit = 256M\/g' \/etc\/php\/8.3\/fpm\/php.ini\nsed -i 's\/max_execution_time = 30\/max_execution_time = 360\/g' \/etc\/php\/8.3\/fpm\/php.ini\nsed -i 's\/;cgi.fix_pathinfo=1\/cgi.fix_pathinfo=0\/g' \/etc\/php\/8.3\/fpm\/php.ini\nsed -i 's\/upload_max_filesize = 2M\/upload_max_filesize = 512M\/g' \/etc\/php\/8.3\/fpm\/php.ini \nsed -i 's\/;date.timezone =\/date.timezone =Asia\\\/Taipei\/g' \/etc\/php\/8.3\/fpm\/php.ini<\/code><\/pre>\n<h3>2.5 Apache &amp; Php\u670d\u52d9\u5553\u52d5<\/h3>\n<p>\u82e5\u4e0d\u60f3\u6aa2\u67e5\u72c0\u614b\uff0capache\/php \u670d\u52d9\u8a2d\u7f6e\u53ef\u4ee5\u5ef6\u9072\u5230 WordPress\/WebDAV \u6e96\u5099\u5c31\u7dd2\u3002<\/p>\n<pre><code class=\"language-bash\"># ubuntu 24\nsystemctl restart apache2\nsystemctl restart php8.3-fpm<\/code><\/pre>\n<blockquote>\n<p>ubuntu 24.04 \u4f7f\u7528 php 8.3\uff0c Ubuntu 22.04  \u53ef\u80fd\u662f 8.1, \u6240\u4ee5:<\/p>\n<pre><code class=\"language-bash\"># ubuntu 22\nsystemctl restart apache2\nsystemctl restart php8.1-fpm<\/code><\/pre>\n<\/blockquote>\n<h2>3. WordPress \u865b\u64ec\u7db2\u9801\u670d\u52d9\u5668\u5b89\u88dd\u8207\u8a2d\u7f6e<\/h2>\n<h3>3.1 WordPress \u5305\u5b89\u88dd<\/h3>\n<pre><code class=\"language-bash\">cd \/tmp && wget https:\/\/tw.wordpress.org\/latest-zh_TW.tar.gz\ntar -zxvf latest-zh_TW.tar.gz\nsudo mv wordpress \/var\/www\/wordpress\ntouch \/var\/www\/wordpress\/.htaccess\ncp \/var\/www\/wordpress\/wp-config-sample.php \/var\/www\/wordpress\/wp-config.php\nsudo chown -R www-data \/var\/www\/wordpress\nsudo chmod -R 755 \/var\/www\/wordpress<\/code><\/pre>\n<h3>3.2 WordPress \u6578\u64da\u5eab\u8a2d\u7f6e<\/h3>\n<p>root \u8eab\u4efd\u9032\u5165\u8cc7\u6599\u5eab\uff1a<\/p>\n<pre><code class=\"language-bash\">sudo mysql -u root -p<\/code><\/pre>\n<p>\u6dfb\u52a0\u7ad9\u9ede\u6578\u64da\u5eab MY_DB_NAME \u548c\u7528\u6236\u5e33\u6236 MY_DB_USER \u5bc6\u78bc MY_DB_PASSWORD\uff1a<\/p>\n<pre><code class=\"language-mysql\">drop database MY_DB_NAME;\ndrop user MY_DB_USER;\nCREATE DATABASE MY_DB_NAME;\nCREATE USER 'MY_DB_USER'@'localhost' IDENTIFIED BY 'MY_DB_PASSWORD';\nGRANT ALL ON MY_DB_NAME.* TO 'MY_DB_USER'@'localhost' IDENTIFIED BY 'MY_DB_PASSWORD' WITH GRANT OPTION;\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<blockquote>\n<pre><code class=\"language-mysql\">#\u53ef\u68c0\u67e5 \u8d44\u6599\u5e93\u4e2d\u6240\u6709 \u8868\u683c\u3002\u3002\u3002\nSHOW DATABASES;\n# \u9078\u64c7\u8cc7\u6599\u5eab\nUSE vm1;# wp, vm1, vm2,...\n# \u67e5\u770b\u8cc7\u6599\u5eab\u4e2d\u7684\u5217\u8868\nSHOW TABLES;<\/code><\/pre>\n<\/blockquote>\n<h3>3.3 wordpress\u5b89\u5168\u5bc6\u9470\u9e7d(salt)\u751f\u6210\uff1a<\/h3>\n<p>\u70ba WordPress\u7684\u5b89\u5168\u52a0\u4e9b\u6599, \u66f4\u5b89\u5168\u5594. \u5230 wordpress \u7db2\u7ad9\u96a8\u6a5f\u751f\u6210\u4e00\u7d44\u9e7d(salt):<\/p>\n<pre><code class=\"language-bash\">curl -s https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/<\/code><\/pre>\n<p>\u6211\u5011\u5c07\u7372\u5f97 wordpress \u9700\u6c42\u683c\u5f0f\u7684\u5b89\u5168\u5bc6\u9470\u9e7d\uff08\u9019\u53ea\u662f\u7bc4\u4f8b\uff09\uff1a<\/p>\n<pre><code>define('AUTH_KEY',   'XX GENERATE IT BY YOURSEVES XX K+M1@hJ+?7@8y$_49Th~R,JUd%s-Nx|X4');\ndefine('SECURE_AUTH_KEY',  'XX GENERATE IT BY YOURSEVES XX ](J(yeyFvrc8gae^ugT-qw+8j{g@$([vx');\ndefine('LOGGED_IN_KEY',    'XX GENERATE IT BY YOURSEVES XX !]Rqqh;LQMA*2+|9&ecu31P\/zBCn:5Ds&');\ndefine('NONCE_KEY', 'XX GENERATE IT BY YOURSEVES XX ]P`IUKb$,g~2?nA|}.rF\/Gu=2kjN:LzeW');\ndefine('AUTH_SALT', 'XX GENERATE IT BY YOURSEVES XX t[9qXtr{BF1qm1]TU9-yZfqHgjJCCSa6X');\ndefine('SECURE_AUTH_SALT', 'XX GENERATE IT BY YOURSEVES XX rv ~H~fQw4RTn*c{ELw ,qx}Thm+LIG;2eo');\ndefine('NONCE_SALT',       'XX GENERATE IT BY YOURSEVES XX nK&k!LK5U9TF3Ui_k@!5gB3[=lWHmcaNz');<\/code><\/pre>\n<p>\u9019\u4e9b\u9e7d\u5f8c, \u7528 nano \u7de8\u8f2f <code>\/var\/www\/wordpress\/wp-config.php<\/code> , \u7528\u751f\u6210\u7684\u5bc6\u9470\u9e7d\u66ff\u63db\u5176\u4e2d\u7684 <strong>Authentication unique keys and salts<\/strong> \u5340\u6bb5\u5167\u5bb9\uff1a<\/p>\n<pre><code class=\"language-bash\"># with sudo -s\nnano \/var\/www\/wordpress\/wp-config.php<\/code><\/pre>\n<h3>3.4 \u5c07\u4e4b\u524d\u6578\u64da\u5eab\u7684\u8cec\u865f\u5bc6\u78bc\u653e\u5165wp-config.php\uff1a<\/h3>\n<pre><code class=\"language-php\">...\n\/\/ ** Database settings - You can get this info from your web host ** \/\/\n\/** The name of the database for WordPress *\/\ndefine( 'DB_NAME', 'MY_DB_NAME' );\n\n\/** Database username *\/\ndefine( 'DB_USER', 'MY_DB_USER' );\n\n\/** Database password *\/\ndefine( 'DB_PASSWORD', 'MY_DB_PASSWORD' );\n\n\/** Database hostname *\/\ndefine( 'DB_HOST', 'localhost' );\n\n\/** Database charset to use in creating database tables. *\/\ndefine( 'DB_CHARSET', 'utf8' );\n\n\/** The database collate type. Don't change this if in doubt. *\/\ndefine( 'DB_COLLATE', '' );\n...<\/code><\/pre>\n<h3>3.5 \u5728\u914d\u7f6e\u6587\u4ef6\u5c3e\u90e8\u6dfb\u52a0\u4e00\u884c\uff1a<\/h3>\n<pre><code class=\"language-bash\">define('FS_METHOD', 'direct');<\/code><\/pre>\n<h2>4. \u70baWordPress\u8a2d\u7f6eApache\u8207\u63d2\u4ef6\u4e3b\u984c\uff1a<\/h2>\n<h3>4.1 \u751f\u6210Wordpress\u865b\u64ec\u7db2\u9801\u670d\u52d9\u5668\u7684\u914d\u7f6e\u6587\u4ef6<\/h3>\n<p>Apache \u53ef\u4ee5\u865b\u64ec\u591a\u53f0\u4e3b\u6a5f. \u9019\u88e1\u5efa\u7acb\u4e00\u53f0 Worepress \u865b\u64ec\u4e3b\u6a5f.<\/p>\n<p><code>pico \/etc\/apache2\/sites-available\/wordpress.conf<\/code>:<\/p>\n<pre><code class=\"language-txt\"><VirtualHost *:80>\n        ServerName    go2see.me\n        ServerAlias   tw0.go2see.me cyuetw.asuscomm.com tkalook.us tw0.tkalook.us\n        DocumentRoot  \/var\/www\/wordpress\/\n\n        ErrorLog ${APACHE_LOG_DIR}\/wordpress-error.log\n        CustomLog ${APACHE_LOG_DIR}\/wordpress-access.log combined\n        ServerAdmin cyue@localhost\n<\/VirtualHost><\/code><\/pre>\n<blockquote>\n<p>\u6ce8\u610f\u6709 <code>VirtualHost *\uff1a80<\/code>  \u6a19\u7c3d\u5c01\u5305\u6b64\u8a0a\u606f\u3002\u53ef\u4ee5\u628a  <code>\/etc\/apache2\/sites-available\/000-default.conf<\/code> \u5185\u5bb9\u7576\u53c3\u8003\u8a2d\u7f6e\u3002<\/p>\n<\/blockquote>\n<h3>4.2 \u555f\u7528\u6b64\u865b\u64ec\u670d\u52d9\u5668,\uff1a<\/h3>\n<pre><code class=\"language-bash\"># with sudo -s\n# 1. \u5728 sites-available \u5efa\u7acb\u8edf\u9023\u7d50, \u4ee5\u958b\u555f wordpress \u670d\u52d9\nln -s \/etc\/apache2\/sites-available\/wordpress.conf \/etc\/apache2\/sites-enabled\/\n# 2. \u70ba apache \u6dfb\u52a0\u9700\u8981\u7684\u6a21\u7d44\u8207\u8a2d\u7f6e\u5f8c\u91cd\u555f apache\u8207php\na2enconf php8.3-fpm\na2enmod proxy_fcgi setenvif rewrite\nsystemctl restart apache2\nsystemctl restart php8.3-fpm<\/code><\/pre>\n<h3>4.3 \u5728\u700f\u89bd\u5668\u4e2d\u700f\u89bd<code>http:\/\/go2see.me<\/code>\uff1a<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/dav2.go2see.me\/md-pics\/image-20230418024922599.png\" alt=\"image-20230418024922599\" \/><\/p>\n<p>\u8a2d\u7f6e\u7b2c\u4e00\u500b\u7528\u6236\u5e33\u6236\u548c\u7db2\u7ad9\u6a19\u984c\u2026\u7136\u5f8c\u6309\u3010\u5b89\u88ddWordPress\u3011\u3002<\/p>\n<p>\u7531\u65bc\u6211\u5011\u5df2\u7d93\u628a\u6578\u64da\u5eab\u8cec\u865f\u653e\u5728\u4e86<code>wp-confog.php<\/code>\uff0c\u6c92\u6709\u5176\u4ed6\u8a2d\u7f6e\uff0c\u7136\u5f8c\u9032\u5165admin\u6b61\u8fce\u9801\u9762\u2026<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/dav2.go2see.me\/md-pics\/image-20230418030532090-16817583334301.png\" alt=\"image-20230418030532090\" \/><\/p>\n<p>\u57fa\u672c\u7684 WordPress \u8a2d\u7f6e\u5df2\u5b8c\u6210\uff01<\/p>\n<h3>4.4 WordPress \u63d2\u4ef6\uff08Plugins\uff09\u8207\u4e3b\u984c\uff08Themes\uff09\u9078\u64c7<\/h3>\n<p>WordPress\u6700\u68d2\u7684\u5c31\u662f\u53ef\u4ee5\u9078\u64c7\u81ea\u5df1\u559c\u611b\u7684\u63d2\u4ef6\u548c\u4e3b\u984c\uff0c\u7528\u4f86\u6539\u5584\u7db2\u9801\u7684\u5beb\u4f5c\u65b9\u5f0f\u6216\u5c55\u73fe\u98a8\u683c\u3002\u9019\u88cf\u4ecb\u7d39\u5e7e\u500b\uff1a<\/p>\n<ul>\n<li><strong>WP Githuber MD<\/strong> Plugin\uff1a\u76ee\u524d\u6700\u9806\u624b\u7684Markdown\u63d2\u4ef6\u3002\u88cf\u9762\u6709\u8a31\u591a\u8a9e\u6cd5\u548c\u5c55\u793a\u9078\u9805\u53ef\u8abf\u6574\u3002\u7531\u65bc\u7fd2\u6163\u7528 Markdown\uff0c\u9019\u500b\u63d2\u4ef6\u76f4\u63a5\u7528 Markdown \u63d2\u4ef6\u4f86\u5206\u4eab\u6587\u7ae0\uff0c\u591a\u6a23\u5316\u7684\u8a2d\u5b9a\u53ef\u4ee5\u6709\u4e0d\u540c\u98a8\u683c\u7684\u7a0b\u5f0f\u78bc\u5c55\u73fe\uff0c\u662f\u4e0d\u932f\u7684\u9078\u64c7\u3002<\/li>\n<li><strong>MerPress<\/strong> Plugin\uff1a\u767c\u73fe\u67d0\u4e9bMermaid \u5716\u6642\uff0c\u4f7f\u7528WP Githuber MD\u4fc2\u51fa\u540c\u6e90\u7684 <strong>WP Mermaid<\/strong> \u63d2\u4ef6\u6703\u5c55\u793a\u4e0d\u51fa\u5716\u4f86\uff08\u4f46\u7de8\u8f2f\u6642OK\uff0c\u4e0d\u77e5\u54ea\u88cf\u6709\u554f\u984c\uff09\uff0c\u76ee\u524d\u6539\u7528 MerPress \u5de5\u4f5c\u826f\u597d\u3002<\/li>\n<\/ul>\n<p>\u5b89\u88dd\u4e26\u5553\u7528\u9019\u5169\u500b\u63d2\u4ef6\u540e\uff0c\u8a2d\u5b9a\u9801\u6703\u591a\u51fa &quot;WP Githuber HD&quot; \u9078\u9805\u3002\u9078\u9805\u4e2d\u6709\u591a\u500b\u8a2d\u5b9a\u5206\u9801\uff0c\u8a18\u5f97\u6253\u958bMarkdown \u2014 \u6587\u7ae0 \u52fe\u9078\u9078\u9805\uff0c\u6253\u958b\u6a21\u7d44\u9801\u5f8c\u8a72\u52a0\u8a72\u8a2d\u5b9a\u6a21\u7d44\u7684\u90fd\u52a0\u4e0a\uff0c\u64f4\u5145\u529f\u80fd\u3001\u504f\u597d\u8a2d\u5b9a\u770b\u559c\u597d\u52a0\u4e0a\u3002\u6bcf\u5206\u9801\u52fe\u9078\u5b8c\u5f8c\u8a18\u5f97\u8981\u5132\u5b58\u3002\u95dc\u65bc\u9801\u6709\u4f5c\u8005\u7684 MyNote\u4e3b\u984c\u93c8\u63a5\u53ef\u4ee5\u4e0b\u8f09\u5c0e\u5165\uff0c\u9084\u4e0d\u932f\u7528\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/dav2.go2see.me\/md-pics\/image-20230422103622555.png\" alt=\"image-20230422103622555\" \/><\/p>\n<ul>\n<li><strong>MyNote<\/strong> Theme\uff1a WP Githuber MD \u4f5c\u8005\u63d0\u4f9b\u4e86\u9069\u5408\u958b\u767c\u8005\u7684\u7c21\u55ae\u4e3b\u984c\uff0c\u9084\u4e0d\u932f\u3002\u53ef\u4ee5\u53c3\u8003\u4e0b\u8f09\uff1a <a href=\"https:\/\/wordpress.org\/themes\/mynote\/\u3002\u4e0b\u8f09zip\u5f8c\u5728\u5916\u89c0-\u4f48\u666f\u4e3b\u984c\u9801\u4e2d\u9ede\u9078\u5b89\u88dd\u4f48\u666f\u4e3b\u984c\uff0c\u9078\u64c7\u5df2\u4e0b\u8f09\u7684zip\u6a94\u6848\u5f8c\uff0c\u9ede\u64ca\u7acb\u5373\u5b89\u88dd\u5373\u53ef\u3002\u5b89\u88dd\u5b8c\u6210\u5f8c\u8a18\u5f97\u5553\u7528\">https:\/\/wordpress.org\/themes\/mynote\/\u3002\u4e0b\u8f09zip\u5f8c\u5728\u5916\u89c0-\u4f48\u666f\u4e3b\u984c\u9801\u4e2d\u9ede\u9078\u5b89\u88dd\u4f48\u666f\u4e3b\u984c\uff0c\u9078\u64c7\u5df2\u4e0b\u8f09\u7684zip\u6a94\u6848\u5f8c\uff0c\u9ede\u64ca\u7acb\u5373\u5b89\u88dd\u5373\u53ef\u3002\u5b89\u88dd\u5b8c\u6210\u5f8c\u8a18\u5f97\u5553\u7528<\/a>\u3002<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/dav2.go2see.me\/md-pics\/image-20230422105030229.png\" alt=\"image-20230422105030229\" \/><\/p>\n<h2>5. WebDAV \u670d\u52d9\u5b89\u88dd\u8a2d\u7f6e<\/h2>\n<p>WebDAV\u662f\u4f7f\u7528 http\u5354\u8b70\u7684\u958b\u653e\u7684\u7db2\u8def\u6587\u4ef6\u7cfb\u7d71\uff0c\u9664\u4e86\u53ef\u7528\u700f\u89bd\u5668\u67e5\u8a62\u4e0b\u8f09\u6587\u4ef6\uff0c\u73fe\u4ee3\u7684\u64cd\u4f5c\u7cfb\u7d71\u90fd\u80fd\u76f4\u63a5\u639b\u8f09\uff0c\u4ee5\u672c\u5730\u6587\u4ef6\u7cfb\u7d71\u7684\u7fd2\u6163\u4f7f\u7528WebDAV\u7db2\u76e4\u3002<\/p>\n<blockquote>\n<p>\u53c3\u8003\uff1a https: <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-configure-webdav-access-with-apache-on-ubuntu-20-04\">\/\/www.digitalocean.com\/community\/tutorials\/how-to-configure-webdav-access-with-apache-on-ubuntu-20-04<\/a><\/p>\n<\/blockquote>\n<h3>5.1 \u88fd\u4f5c webDAV \u6587\u4ef6\u593e\u548c apache DavLock\/password \u6587\u4ef6\u593e\uff1a<\/h3>\n<pre><code class=\"language-bash\"># with sudo -s\nmkdir -p \/var\/www\/webdav\nmkdir -p \/var\/www\/webdav\/share\nmkdir -p \/var\/www\/webdav\/johnny\nmkdir -p \/var\/www\/webdav\/cyue\nmkdir -p \/var\/www\/apache\/var\/\n#\u5efa\u7acb\u7a7a\u767d\u7684\u5bc6\u78bc\u6587\u4ef6\u8207WebDav\u9396\u6587\u4ef6\ntouch \/var\/www\/apache\/var\/users.password\ntouch \/var\/www\/apache\/var\/DavLock<\/code><\/pre>\n<h3>5.2 \u5728Apache\u4e0a\u6dfb\u52a0webDAV \u865b\u64ec\u4e3b\u6a5f\uff1a<\/h3>\n<pre><code class=\"language-bash\"># with sudo -s\nnano \/etc\/apache2\/sites-available\/webdav.conf<\/code><\/pre>\n<p>\u76ee\u524d\u503c\u70ba\uff1a<\/p>\n<pre><code class=\"language-php\">DavLockDB \/var\/www\/apache\/var\/DavLock\n\n<VirtualHost *:80>\n    ServerAdmin cyue\n    ServerName    davtw.go2see.me\n    ServerAlias   davtw.tkalook.us\n\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n\n    # default root area\n    DocumentRoot \/var\/www\/webdav\n\n    # <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>\n    # Require valid-user\n    # <\/Limit>\n\n    # \u5927\u773e\u53ef\u8b80, \u6388\u6b0a\u7528\u6236\u53ef\u5beb \/webdav\n    <Directory \/var\/www\/webdav>\n        DAV On\n        <Limit PUT POST MOVE DELETE MKCOL>\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require valid-user\n        <\/Limit>\n    <\/Directory>\n\n    # \u50c5\u6388\u6b0a\u7528\u6236\u53ef\u8b80\u5beb(\u53ef\u4ea4\u63db\u8cc7\u6599)\n    <Directory \/var\/www\/webdav\/share>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require valid-user\n    <\/Directory>\n\n    # \u52a0\u5bc6\u4fe1\u606f: \u50c5\u6388\u6b0a\u7528\u6236\u53ef\u8b80, cyue \u53ef\u8b80\u5beb\n    <Directory \/var\/www\/webdav\/info>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        <Limit PUT POST MOVE DELETE MKCOL>\n        Require user cyue\n        <\/Limit>\n        <Limit GET>\n        Require valid-user\n        <\/Limit>\n    <\/Directory>\n\n    # \u500b\u5225\u7528\u6236\u79c1\u4eba\u8cc7\u6599\u5340, \u50c5\u8a72\u7528\u6236\u53ef\u8b80\u5beb\n    # cyue\n    <Directory \/var\/www\/webdav\/cyue>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user cyue\n    <\/Directory>\n\n    # may\n    <Directory \/var\/www\/webdav\/may>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user may\n    <\/Directory>\n    # jj\n    <Directory \/var\/www\/webdav\/jj>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user jj\n    <\/Directory>\n\n    # johnny\n    <Directory \/var\/www\/webdav\/johnny>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user johnny\n    <\/Directory>\n\n    # shari\n    <Directory \/var\/www\/webdav\/shari>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user shari\n    <\/Directory>\n\n    # tony\n    <Directory \/var\/www\/webdav\/tony>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user tony\n    <\/Directory>\n\n    # yezi\n    <Directory \/var\/www\/webdav\/yezi>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user yezi\n    <\/Directory>\n\n    # yuchen\n    <Directory \/var\/www\/webdav\/yuchen>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user yuchen\n    <\/Directory>\n\n    # yuhan\n    <Directory \/var\/www\/webdav\/yuhan>\n        DAV On\n        AuthType Digest\n        AuthName \"webdav\"\n        AuthUserFile \/var\/www\/apache\/var\/users.password\n        Require user yuhan\n    <\/Directory>\n<\/VirtualHost><\/code><\/pre>\n<p>\u6211\u5011\u8a2d\u7f6e\u4e86 DavLock \u9396\u7684\u4f4d\u7f6e\uff0cWebDav \u670d\u52d9\u5668\u540d\u7a31\u662f<code>davtw.go2see.me<\/code>\uff0c\u7ba1\u7406\u54e1\u662f cyue\u3002<\/p>\n<p>\u63a1\u7528 http \u7684\u6458\u8981(digest) \u5bc6\u78bc\u6a21\u5f0f\u8a2a\u554f webdav \u7528\u6236\u6b0a\u9650\u3002<\/p>\n<p>\u8a2d\u8a08\u7684DAV\u7684\u6587\u4ef6\u7cfb\u7d71\u7d50\u69cb\u8207\u7528\u6236\u6b0a\u9650\u70ba\uff1a<\/p>\n<pre><code>\/webdav \u3010\u516c\u958b\u5340\uff1a\u6839\u76ee\u9304\uff0c\u5185\u5bb9\u516c\u8846\u53ef\u8b80\uff0c\u50c5Dav\u7528\u6236\u53ef\u5beb\u3011\n   +--- \/share  \u3010\u4fdd\u8b77\u5340\uff1aDav\u7528\u6236\u53ef\u8b80\u5beb\u5171\u4eab\u3011\n   +--- \/cyue   \u3010\u79c1\u4eba\u5340\uff1a\u53ea\u6709 \u7528\u6236 cyue \u53ef\u8b80\u5beb\u3011\n   +--- \/johnny \u3010\u79c1\u4eba\u5340\uff1a\u53ea\u6709 \u7528\u6236 johnny \u53ef\u8b80\u5beb\u3011<\/code><\/pre>\n<p>\u95b2\u8b80\u516c\u5171\u5340\u7684\u5185\u5bb9\u662f\u4e0d\u9700\u8981\u7528\u6236\u5bc6\u78bc\u7684\u3002<\/p>\n<h3>5.3 \u6dfb\u52a0WebDAV\u8cec\u865f\uff1a\uff08\u9019\u91cc\u4ee52\u500b\u8cec\u865f\u70ba\u4f8b\uff09<\/h3>\n<p>\u4f7f\u7528 htdigest \u751f\u6210\u5e36\u6709\u9818\u57df\u6458\u8981\uff08\u8173\u672c\u4e2d\u7684\u201cAuthName\u201d\u5b57\u6bb5\uff09\u7684WebDAV\u8cec\u865f\u5bc6\u78bc\uff0c\u4e26\u6307\u5b9a\u8cec\u6236\u5bc6\u78bc\u6587\u4ef6\uff08\u8207\u811a\u672c\u540c\uff09\u3002\u4e0b\u9762\u4f8b\u5b50\u5efa\u7acb\u5169\u500b\u8cec\u865f\uff0c\u7b2c\u4e00\u500b\u8cec\u865f\u8a2d\u7f6e\u6642\uff0c\u540c\u6642\u5efa\u7acb\u5bc6\u78bc\u6587\u4ef6\uff08\u2019-c\u2019 \u9078\u9805\uff09\uff1a<\/p>\n<pre><code class=\"language-bash\"># Usage: htdigest [-c] passwordfile realm username\nsudo htdigest -c \/var\/www\/apache\/var\/users.password webdav cyue\nsudo htdigest \/var\/www\/apache\/var\/users.password webdav johnny\nsudo htdigest \/var\/www\/apache\/var\/users.password webdav shari\nsudo htdigest \/var\/www\/apache\/var\/users.password webdav tony\nsudo htdigest \/var\/www\/apache\/var\/users.password webdav yezi\nsudo htdigest \/var\/www\/apache\/var\/users.password webdav yuchen\nsudo htdigest \/var\/www\/apache\/var\/users.password webdav yuhan<\/code><\/pre>\n<blockquote>\n<p>\u6ce8\u610f\uff1a\u7b2c\u4e00\u6b21\u6dfb\u52a0WebDAV\u8cec\u6236\uff0c\u8a18\u5f97\u4f7f\u7528 <code>-c<\/code> \u53c3\u6578\u5efa\u7acb\u5bc6\u78bc\u6587\u4ef6\u3002<\/p>\n<\/blockquote>\n<p>\u82e5\u4e4b\u5f8c\u7528\u6236\u4f7f\u7528 curl \u5beb\u5165\u9060\u7aef\u7684 WebDAV\u6587\u4ef6\uff0c\u8a18\u5f97\u6dfb\u52a0 \u2019 \u2013digest -u USER:PASSWORD \u2018 \u53c3\u6578\u8f38\u5165 WebDAV\u8cec\u6236\u5bc6\u78bc\u3002<\/p>\n<h3>5.4 \u555f\u7528\u6b64 webDav \u670d\u52d9\uff1a<\/h3>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/apache2\/sites-available\/webdav.conf \/etc\/apache2\/sites-enabled\/\nsudo touch \/var\/www\/apache\/var\/DavLock\n\nsudo chown -R www-data:www-data \/var\/www\/webdav\nsudo chown -R www-data:www-data \/var\/www\/apache\/var\n\nsudo a2enmod dav dav_fs auth_digest\n\nsudo systemctl restart apache2\nsudo systemctl restart php8.3-fpm<\/code><\/pre>\n<h2>6. \u63d0\u4f9b\u514d\u8cbb ssl \u8b49\u66f8\u7684 Let\u2019s Encrypt\/CertBot<\/h2>\n<p>Let\u2019s Encrypt \u63d0\u4f9b\u514d\u8cbb\u7684ssl\u8b49\u66f8\u516c\u8b49\u670d\u52d9\uff0c\u8b93\u6211\u5011\u7684\u7db2\u7ad9\u5185\u5bb9\u4e0d\u5fc5\u5728\u7db2\u8def\u4e16\u754c\u88f8\u5954\u3002\u96d6\u7136\u514d\u8cbb\uff0c\u4f46\u8b49\u66f8\u6548\u671f\u8f03\u77ed\uff0c\u4e14\u4e0d\u9069\u7528\u65bc\u7db2\u8def\u4ea4\u6613\u3002<\/p>\n<p>\u6211\u5011\u53ef\u4ee5\u7528CertBot\u5354\u52a9\u6211\u5011\u5b89\u88dd\u4e26\u81ea\u52d5\u66f4\u65b0 Let\u2019s Encrypt \u8b49\u66f8\u3002\u9700\u8981\u76f4\u63a5\u505a\u7db2\u8def\u4ea4\u6613\u7684\u8a71\uff0c\u5c31\u8981\u627e\u4ed8\u8cbb\u7684\u516c\u8b49\u6a5f\u95dc\u4e86\u3002<\/p>\n<blockquote>\n<p>\u6ce8\u610f\uff1a<\/p>\n<p>CertBot\u4f9d\u8cf4\u65bcApache\u6216Nginx\u3002\u82e5\u662f\u5f9e nginx\u6539\u5230 apache2\u7684\u7db2\u7ad9\u670d\u52d9\uff0c\u6700\u597d\u5148\u6e05\u6389 nginx\u7684\u6a21\u7d44\uff0c\u4ee5\u514d\u6388\u6b0a\u8edf\u9ad4\u6df7\u80b4\u4e86\uff1a<\/p>\n<pre><code class=\"language-bash\"># in sudo -s\nservice nginx* stop\napt remove nginx*\napt autoremove<\/code><\/pre>\n<p>\u6211\u5011\u53ef\u80fd\u9700\u8981\u4f7f\u7528 Let\u2019s Encrypt Server \u4e2d\u7684 Certbot \u5de5\u5177\u5c07\u6b64 \u670d\u52d9\u5668 \u653e\u5230\u6b63\u78ba\u7684\u4f4d\u7f6e\u4ee5\u6b63\u78ba\u751f\u6210\u8b49\u66f8\u3002<\/p>\n<p>\u9019\u500b\u7bc4\u4f8b\u6211\u7528 2 \u500b\u57df\u540d\u6307\u5b9a\u5230\u540c\u4e00\u53f0\u670d\u52d9\u5668\uff0c\u4ee5\u7d81\u5b9a\u4e0d\u540c\u7684Web\u670d\u52d9\u3002\u57df\u540d go2see.me<code>\u7528\u65bc WordPress \u7db2\u9801\u670d\u52d9\uff0c\u800c\u57df\u540d <\/code>davtw.go2see.me` \u7528\u65bcWebDAV \u7db2\u9801\u6a94\u6848\u670d\u52d9\u3002CertBot \u7528 -d\u4f86\u77e5\u6703 Let\u2019s Encrypt\u9019\u500b\u7db2\u7ad9\u6240\u64c1\u6709\u7684\u57df\u540d\u8b93\u5176\u9a57\u8b49\u3002<\/p>\n<\/blockquote>\n<ul>\n<li>\u6aa2\u67e5https:\/\/certbot.eff.org\/lets-encrypt\u4ee5\u7372\u5f97\u8a73\u7d30\u7684 apache+ubuntu20 \u670d\u52d9\u5668\u8a2d\u7f6e\u4fe1\u606f\u3002\u76ee\u524dubuntu\u7528 snap \u5b89\u88dd certbot\uff1a<\/li>\n<\/ul>\n<pre><code class=\"language-bash\">#--------------------------------------------------------------\n#--                  \u5148\u5b89\u88dd\u597d CertBot \u5de5\u5177\u3002                  --\n#--------------------------------------------------------------\n\n# 1. Install snapd store:\nsudo apt update -y\nsudo apt install snapd\nsudo snap install core; sudo snap refresh core\n# 2. remove prev if have:\n#sudo apt remove certbot \n# 3. reinstall classic certbot\nsudo snap install --classic certbot\nsudo ln -s \/snap\/bin\/certbot \/usr\/bin\/certbot\n\n#--------------------------------------------------------------\n#-- \u9700\u8981\u628a\u670d\u52d9\u5668\u653e\u5728\u6b63\u78ba\u7684\u7db2\u8def\u74b0\u5883\u518d\u5230Let's Encrypt\u751f\u6210 SSL\u8b49\u66f8\u3002--\n#--------------------------------------------------------------\n\n# 4. create cert of domain names for this \u670d\u52d9\u5668\nsudo certbot --apache -m cyue12@me.com -d davtw.go2see.me -d davtw.tkalook.us -d tkalook.us -d go2see.me -d cyuetw.asuscomm.com\n#sudo certbot --apache -m cyue12@me.com -d dav1.go2see.me -d dav1.tkalook.us -d vm1.tkalook.us -d vm1.go2see.me\n# 5. auto renew cert\nsudo certbot renew --dry-run\n# 6. check the auto renew timers of certbot:\nsudo systemctl list-timers | grep certbot<\/code><\/pre>\n<pre><code class=\"language-bash\">#VM1\nsudo certbot --apache -m cyue12@me.com -d dav1.go2see.me -d dav1.tkalook.us -d vm1.tkalook.us -d vm1.go2see.me\nsudo certbot renew --dry-run\nsudo systemctl list-timers | grep certbot\n\n#VM2\nsudo certbot --apache -m cyue12@me.com -d dav2.go2see.me -d dav2.tkalook.us -d vm2.tkalook.us -d vm2.go2see.me\nsudo certbot renew --dry-run\nsudo systemctl list-timers | grep certbot\n<\/code><\/pre>\n<p>\u904b\u884c certbot \u5f8c\uff0c\u70ba\u4e86\u5b89\u5168\u8d77\u898b\uff0c\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 https \u7db2\u7d61\u670d\u52d9\u3002<\/p>\n<blockquote>\n<h4>\u554f\u984c\u8655\u7406\u6ce8\u610f\uff1a<\/h4>\n<ol>\n<li>\u82e5\u662f\u5f9e nginx \u6539 apache2\uff0c\u5728\u7b2c\u4e00\u6b21\u57f7\u884c <code>sudo certbot --apache<\/code> \u9047\u5230\u9078\u9805\u6642\uff0c\u9700\u8981\u9078\u64c7 <strong>(U)pdate key type<\/strong>\uff0c\u4ee5\u514d certbot\u4ecd\u4f7f\u7528 nginx\u670d\u52d9\u66f4\u65b0key\u3002<\/li>\n<\/ol>\n<pre><code>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nAn RSA certificate named vm0.go2see.me already exists. Do you want to update its\nkey type to ECDSA?\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n(U)pdate key type\/(K)eep existing key type: u\nRenewing an existing certificate for vm0.go2see.me and vm0.go2see.me<\/code><\/pre>\n<ol>\n<li>\u82e5\u662f\u5f9e nginx \u6539 apache2\uff0cWordpress\u6587\u7ae0\u7db2\u9801\u53ef\u80fd\u6709\u9023\u7d50\u932f\u8aa4\u3002\u9032\u5165\u7ba1\u7406\u754c\u9762\uff08{site.name}\/web-admin\uff09\u91cd\u65b0\u4fee\u6539 <code>\u8a2d\u5b9a --&gt; \u6c38\u4e45\u9023\u7d50 --&gt; \u6c38\u4e45\u9023\u7d50\u7d50\u69cb<\/code> \u9078\u9805\u5f8c\uff0c\u6309\u4e0b`<code>\u5132\u5b58\u8a2d\u5b9a<\/code> \u6309\u9215\uff0c\u7db2\u9801\u5185\u5bb9\u5c31\u6703\u6062\u5fa9\u6b63\u5e38\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/dav2.go2see.me\/md-pics\/image-20230422145618877.png\" alt=\"image-20230422145618877\" \/><\/p>\n<\/blockquote>\n<p>\u82e5 <code>sudo certbot renew --dry-run<\/code> \u767c\u751f Error:<\/p>\n<pre><code class=\"language-bash\">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nProcessing \/etc\/letsencrypt\/renewal\/vm1.go2see.me.conf\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nFailed to renew certificate vm1.go2see.me with error: The nginx plugin is not working; there may be problems with your existing configuration.\nThe error was: NoInstallationError(\"Could not find a usable 'nginx' binary. Ensure nginx exists, the binary is executable, and your PATH is set correctly.\")<\/code><\/pre>\n<p>\u76f4\u63a5\u628a <code>\/etc\/letsencrypt\/renewal\/vm1.go2see.me.conf<\/code> \u7684 <code>nginx<\/code> \u6539\u6210 apache \u91cd\u65b0\u57f7\u884c <code>certbot renew --dry-run<\/code> :<\/p>\n<pre><code class=\"language-bashell\">sudo sed -i 's\/nginx\/apache\/g' \/etc\/letsencrypt\/renewal\/vm1.go2see.me.conf\nsudo certbot renew --dry-run<\/code><\/pre>\n<h2>7. OpenVPN \u670d\u52d9<\/h2>\n<p>OpenVPN \u4e0d\u4f9d\u8cf4\u65bc LAMP\uff0c\u53ef\u4ee5\u900f\u904e\u5efa\u7acb\u9023\u63a5\u96a7\u9053\uff0c\u505a\u8de8\u8d8a\u9632\u706b\u58bb\u7684\u5185\u5bb9\u5b58\u53d6\u3002\u5b89\u88dd\u65b9\u6cd5\u5f88\u7c21\u55ae\u3002<\/p>\n<p>\u70ba\u7b2c\u4e00\u500b openvpn \u5ba2\u6236\u7aef\u5b89\u88dd\u4e26\u69cb\u5efa\u914d\u7f6e\u6587\u4ef6\uff1a<\/p>\n<pre><code class=\"language-bash\"># with sudo -s\nmkdir -p \/home\/cyue\/ovpn\nchown -R cyue \/home\/cyue\/ovpn\ncd \/home\/cyue\/ovpn\ncd \/home\/cyue\nwget https:\/\/git.io\/vpn -O openvpn-install.sh && sudo bash openvpn-install.sh\n# port:???? \u4fee\u6539\u6210\u6211\u8981\u7684\n# 1st client: OpenVPN\u4e00\u500b\u5ba2\u6236\u7aef\u8981\u4e00\u500b\u8a2d\u5b9a\u6a94\u6848\uff0c\u6211\u901a\u5e38\u662f\u8a2d\u6210 \u201c\u670d\u52d9\u5668\u4ee3\u865f-\u7528\u6236\u540d\u6a5f\u5668\u540d\u201d\u7684\u547d\u540d\u65b9\u5f0f<\/code><\/pre>\n<p>\u7136\u5f8c\u8abf\u7528<code>sudo bash openvpn-install.sh<\/code> \u6dfb\u52a0\u65b0\u7684openvpn\u5ba2\u6236\u7aef\u7684\u914d\u7f6e\u6587\u4ef6\u3002\u518d\u5c07\u5b83\u5011\u8907\u88fd\u5230\/home\/cyue\/ovpn\u3002<\/p>\n<pre><code class=\"language-bash\"># with sudo -s\ncp \/root\/*.ovpn \/home\/cyue\/ovpn\/<\/code><\/pre>\n<p>\u628a\u9019\u4e9b ovpn \u6587\u4ef6\u5c0f\u5fc3\u5730\u767c\u4f48\u7d66\u76f8\u61c9\u7684\u5ba2\u6236\uff0c\u53ef\u7528scp \u53d6\u5f97\u6587\u4ef6\u3002<\/p>\n<h2>8. \u4f7f\u7528 Typora \u4e0a\u50b3\u5716\u7247\u5230 WebDAV \u9032\u884c WordPress \u6587\u7ae0\u767c\u5e03<\/h2>\n<p>Typora\u5b58\u5728\u672c\u5730\u7684\u5716\u7247\u5728\u526a\u8cbc\u6587\u7ae0\u5230 WordPress\u6642\uff0c\u9060\u7aef\u4e0d\u80fd\u53d6\u5f97\u5716\u7247\u3002Typora\u53ef\u4ee5\u628a\u5716\u7247\u4fdd\u5b58\u5230\u9060\u7aef\u7684\u5e7e\u500b\u5716\u7247\u670d\u52d9\u7ad9\u4e0a\uff0c\u4e5f\u53ef\u4ee5\u81ea\u884c\u5b9a\u7fa9\u4e0a\u50b3 app\u8b93 Typora\u547c\u53eb\u3002\u7576\u672c\u5730\u7684\u5716\u7247\u4e0a\u50b3\u5f8c\uff0c\u672c\u5730\u93c8\u63a5\u6703\u88ab\u6539\u6210\u4e0a\u50b3\u7a0b\u5f0f\u56de\u50b3\u7684\u7db2\u8def\u93c8\u63a5\u3002<\/p>\n<p>\u5efa\u8b70\u5728\u672c\u5730\u7de8\u8f2f\u597d\u5716\u7247\uff0c\u5728\u6587\u7ae0\u767c\u4f48\u524d\u518d\u4e0a\u50b3\u5716\u7247\u5230WebDAV\u670d\u52d9\u5668\u3002\u6587\u7ae0\u767c\u4f48\u5f8c\u7684\u5185\u5bb9\u4fee\u6539\u5f71\u97ff\u4e0d\u4e86\u5716\u7247\uff0c\u9664\u975e\u81ea\u5df1\u53e6\u5916\u7de8\u8f2fWebDAV\u88cf\u7684\u5716\u7247\u3002<\/p>\n<p>\uff08macOS\u3001Linux\u3001Windows\u7684\u6587\u4ef6\u7ba1\u7406\u5668\u90fd\u80fd\u6302\u8f09WebDav\u7684\u6587\u4ef6\u7cfb\u7d71\u3002\uff09<\/p>\n<p>\u6700\u5f8cWordpress\u9084\u53ef\u4ee5\u9078\u64c7\u5c07\u5716\u7247\u670d\u52d9\u5668\u7684\u5716\u7247\u4e0b\u8f09\u5230Wordpress\u7db2\u7ad9\u4e2d\u7d71\u4e00\u7ba1\u7406\uff0c\u9019\u6a23\u6574\u7ad9\u5099\u4efd\u6642\uff0c\u4e0d\u6703\u5fd8\u4e86\u5099\u4efd\u5716\u7247\u3002<\/p>\n<pre><code>\u3010Local Markdown File\u3011\nUnsupported markdown: list\nUnsupported markdown: list\nUnsupported markdown: list\nUnsupported markdown: list\nUnsupported markdown: list\nUnsupported markdown: list\nMD file\nPicture files\nWebDAV\nFile System\nService\nWordPress\nWWW Content\nService\nTypora\nBrowser<\/code><\/pre>\n<p><strong>\u512a\u9ede\uff1a<\/strong><\/p>\n<ul>\n<li>\u5c07\u6587\u4ef6\u7684\u5716\u7247\u5099\u4efd\u5230 WebDAV \u670d\u52d9\u5668\u65b9\u4fbf\u4fdd\u5b58\u7ba1\u7406\uff0c\u4e0d\u9700\u7d93\u904e\u7b2c\u4e09\u65b9\u5716\u50b3\u670d\u52d9\u3002<\/li>\n<li>\u672c\u5730Typora\u7684\u5716\u7247\u93c8\u63a5\u80fd\u548c\u7db2\u9801\u7684\u4fdd\u6301\u4e00\u81f4\uff0c\u6587\u7ae0\u4fee\u6539\u5f8c\u53ef\u4ee5\u76f4\u63a5\u5f35\u8cbc\u5230Wordpress\u4e2d\uff0c\u4e0d\u5fc5\u8003\u616e\u5716\u7247\u8f49\u63db\u5730\u5740\u554f\u984c\u3002<\/li>\n<li>\u78ba\u8a8d\u6587\u7ae0\u5b9a\u7a3f\u5f8c\uff0c\u53ef\u4ee5\u5728Wordpress\u4e2d\u9078\u64c7\u8907\u88fd\u5716\u7247\u5230Wordpress\u591a\u5a92\u9ad4\u8cc7\u6599\u5eab\uff0c\u7d71\u4e00\u5099\u4efd\u7ba1\u7406\u7db2\u7ad9\u5185\u5bb9\u3002<\/li>\n<\/ul>\n<p><strong>\u7f3a\u9ede\uff1a<\/strong><\/p>\n<ul>\n<li>WebDAV \u4e0a\u50b3\u4f9d\u8cf4\u65bc\u7db2\u8def\u7a69\u5b9a\uff0cTypora \u811a\u672c\u4f3c\u4e4e\u6c92\u5b9a\u7fa9\u91cd\u50b3\uff0c\u9700\u8981\u811a\u672c\u4e2d\u8655\u7406\u3002\u4e0a\u50b3\u5f8c\u6700\u597d\u78ba\u8a8d\u4e0b\u6bcf\u5f35\u5716\u7247\u5185\u5bb9\u90fd\u6c92\u554f\u984c\u3002<\/li>\n<li>WebDAV \u4e0a\u50b3\u8173\u672c\u6216\u8a31\u4e0d\u9069\u7528\u65bc Windows \u4e0a\u7684\u4e2d\u6587\u6587\u4ef6\u540d\u6a23\u5f0f\uff1f\u9084\u597d\u526a\u8cbc\u7c3f\u5716\u7247\u7684\u6587\u4ef6\u540d\u6c92\u4e2d\u6587\uff0c\u76ee\u524d\u6c92\u9047\u5230\u554f\u984c\u3002<\/li>\n<\/ul>\n<p>\u6211\u7684\u811a\u672c\u7528\u53e6\u4e00\u53f0VPS\u7684 WebDAV \u670d\u52d9\u7576\u4f5c\u5716\u50b3\u670d\u52d9\u5668\uff0c\u4ee5\u514d\u670d\u52d9\u5668\u639b\u4e86\u5716\u7247\u8cc7\u6599\u4e1f\u5931\u3002<\/p>\n<p>\u6211\u7684\u811a\u672c\u7c21\u55ae\u7684\u5047\u8a2d\u6bcf\u6b21curl\u4e0a\u50b3\u5716\u7247\u90fd\u6210\u529f\uff0c\u6c92\u6709\u5b9a\u7fa9\u932f\u8aa4\u8655\u7406\uff0c\u53ea\u80fd\u4f9d\u8cf4http\u901a\u4fe1\u54c1\u8cea\u4e86\u3002<\/p>\n<h3>8.1 UNIX\uff08Linux\/macOS\uff09\u7684 Typora\u7684\u5716\u7247\u4e0a\u50b3\u811a\u672c\uff1a\u2019upload.sh\u2019<\/h3>\n<pre><code class=\"language-bash\">#!\/bin\/bash\nfor i in \"$@\"; do\n    curl -f --digest -u MY_USER:MY_PASSW https:\/\/dav2.go2see.me\/md-pics\/ -T $i\ndone\necho \"Upload Success:\"\nfor file in \"$@\"; do\n    IFS='\/' read -r -a array <<< \"$file\"\n    id=\"${#array[@]}\"\n    echo \"https:\/\/dav2.go2see.me\/md-pics\/\"\"${array[$id-1]}\"\ndone<\/code><\/pre>\n<p>\u7528\u6cd5\uff1a<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/dav2.go2see.me\/md-pics\/image-20230418230713141.png\" alt=\"\u5716\u7247-20230418230713141\" \/><\/p>\n<p>\u53ef\u4ee5\u9ede\u64ca \u3010Test Uploader\u3011\u78ba\u8a8d\u662f\u5426\u6587\u4ef6\u80fd\u6b63\u78ba\u4e0a\u50b3\u3002\uff08\u6703\u8df3\u51fa\u4e0a\u50b3\u5c0d\u8a71\u6846\uff0c\u6700\u4e0b\u7aef\u6709\u5169\u500b\u4e0a\u50b3\u6e2c\u8a66\u5716\u7247\u7684\u9023\u63a5\uff0c\u7528\u4f86\u9ede\u64ca\u67e5\u770b\u662f\u5426\u6210\u529f\u4e0a\u50b3\u3002\uff09<\/p>\n<h3>8.2 Windows \u7684 Typora \u7684\u5716\u7247\u4e0a\u50b3\u811a\u672c\uff1aupload-dav2.bat<\/h3>\n<p>\u641c\u5c0b\u4e86Batch\u7528\u6cd5\u8cc7\u6599\uff0c\u5beb\u6210\u4e86Windows\u4e0b\u7684\u4e0a\u50b3\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-powershell\">@echo off\nsetlocal enabledelayedexpansion\n\nset argCount=0\nfor %%I in (%*) do (\n   @echo on\n   curl -f --digest -u MY_USER:MY_PASSW https:\/\/dav2.go2see.me\/md-pics\/ -T %%I\n   @echo off\n)\n\necho \"Upload Success:\"\n\nfor %%I in (%*) do (\n   echo https:\/\/dav2.go2see.me\/md-pics\/%%~nxI\n)<\/code><\/pre>\n<p>\u7528\u6cd5\uff1a<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/dav2.go2see.me\/md-pics\/image-20230418230137260.png\" alt=\"\u5716\u7247-20230418230137260\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5b89\u88dd Ubuntu24.04 \u670d\u52d9\u5668 \u4f7f\u7528 Ubuntu24.04 \u684c\u9762\u7248 \u5927\u90e8\u5206\u7684\u8a2d\u7f6e\u8981\u5728\u8d85\u7d1a\u7528\u6236\u6a21\u5f0f\u4e0b\u9032\u884c&#8230; &raquo; <a class=\"read-more-link\" href=\"https:\/\/vm1.go2see.me\/?p=437\">\u95b1\u8b80\u5168\u6587<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,15],"tags":[],"class_list":["post-437","post","type-post","status-publish","format-standard","hentry","category-linux","category-server"],"_links":{"self":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=437"}],"version-history":[{"count":27,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/437\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/437\/revisions\/441"}],"wp:attachment":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}