<!DOCTYPE html>
<html lang="zh-Hans">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>fenij.com &#8211; 望野有风</title>
<meta name='robots' content='max-image-preview:large' />
    <script>
        // Check user preference first
        if ('theme' in localStorage) {
            if (localStorage.theme === 'dark') {
                document.documentElement.classList.add('dark');
            } else {
                document.documentElement.classList.remove('dark');
            }
        } else {
            // No user preference, check Admin Setting
            var colorMode = 'light';
            if (colorMode === 'dark') {
                document.documentElement.classList.add('dark');
            } else if (colorMode === 'light') {
                document.documentElement.classList.remove('dark');
            } else {
                // Auto: Use system preference
                if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
                    document.documentElement.classList.add('dark');
                } else {
                    document.documentElement.classList.remove('dark');
                }
            }
        }
    </script>
    <link rel='dns-prefetch' href='//www.googletagmanager.com' />
<link rel='dns-prefetch' href='//pagead2.googlesyndication.com' />
<link rel="alternate" type="application/rss+xml" title="fenij.com &raquo; Feed" href="https://fenij.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="fenij.com &raquo; 评论 Feed" href="https://fenij.com/comments/feed/" />
<link rel="canonical" href="https://fenij.com/" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="wp-emoji-styles-inline-css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*wp_block_styles_on_demand_placeholder:6a6bb3cb982b3*/
/*# sourceURL=wp-block-library-inline-css */
</style>
<style id="classic-theme-styles-inline-css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<style id="wp-block-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the block styles printed at wp_footer." }
/*# sourceURL=wp-block-styles-placeholder-inline-css */
</style>
<style id="wp-global-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the global-styles printed at wp_footer." }
/*# sourceURL=wp-global-styles-placeholder-inline-css */
</style>
<link rel='stylesheet' id='less-tailwind-css' href='https://fenij.com/wp-content/themes/Less-main/assets/css/style.min.css?ver=1.0.4' media='all' />
<link rel='stylesheet' id='less-style-css' href='https://fenij.com/wp-content/themes/Less-main/style.css?ver=1.0.4' media='all' />
<script id="jquery-core-js" src="https://fenij.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
<script id="jquery-migrate-js" src="https://fenij.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>

<!-- Google tag (gtag.js) snippet added by Site Kit -->
<!-- Site Kit 添加的 Google Analytics 代码段 -->
<script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=GT-WK5F3R67" async></script>
<script id="google_gtagjs-js-after">
window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
gtag("set","linker",{"domains":["fenij.com"]});
gtag("js", new Date());
gtag("set", "developer_id.dZTNiMT", true);
gtag("config", "GT-WK5F3R67");
 window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); }; 
//# sourceURL=google_gtagjs-js-after
</script>
<link rel="https://api.w.org/" href="https://fenij.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://fenij.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.0.2" />

<!-- Fenij Structured Data (JSON-LD) -->
<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","@id":"https://fenij.com/#website","url":"https://fenij.com/","name":"fenij.com","description":"望野有风","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://fenij.com/?s={search_term_string}"},"query-input":"required name=search_term_string"}}</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://fenij.com/#organization","name":"fenij.com","url":"https://fenij.com/","sameAs":[],"logo":"https://fenij.com/wp-content/uploads/2026/07/cropped-zzsCalculate页面功能实现.png","image":"https://fenij.com/wp-content/uploads/2026/07/cropped-zzsCalculate页面功能实现.png"}</script>
<!-- /Fenij Structured Data -->
<meta name="generator" content="Site Kit by Google 1.184.0" />
<!-- Google AdSense meta tags added by Site Kit -->
<meta name="google-adsense-platform-account" content="ca-host-pub-2644536267352236">
<meta name="google-adsense-platform-domain" content="sitekit.withgoogle.com">
<!-- End Google AdSense meta tags added by Site Kit -->

<!-- Site Kit 添加的 Google AdSense 代码段 -->
<script async crossorigin="anonymous" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8124772245158500&#038;host=ca-host-pub-2644536267352236"></script>

<!-- 结束 Site Kit 添加的 Google AdSense 代码段 -->
<link rel="icon" href="https://fenij.com/wp-content/uploads/2026/07/cropped-zzsCalculate页面功能实现-32x32.png" sizes="32x32" />
<link rel="icon" href="https://fenij.com/wp-content/uploads/2026/07/cropped-zzsCalculate页面功能实现-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://fenij.com/wp-content/uploads/2026/07/cropped-zzsCalculate页面功能实现-180x180.png" />
<meta name="msapplication-TileImage" content="https://fenij.com/wp-content/uploads/2026/07/cropped-zzsCalculate页面功能实现-270x270.png" />
    </head>
<body class="home blog wp-theme-Less-main bg-gray-100 dark:bg-gray-900 text-gray-800 dark:text-gray-200 font-sans antialiased">

    <!-- Header -->
    <header class="bg-white dark:bg-gray-800 shadow-sm sticky top-0 z-50 transition-colors duration-200">
        <div class="container mx-auto px-4 h-16 flex items-center">
            <!-- Logo -->
            <div class="text-2xl font-medium text-primary">
                <a href="https://fenij.com/">fenij.com</a>            </div>

            <!-- Mobile Dark Mode Button -->
            <button onclick="toggleDarkMode()" class="lg:hidden block text-gray-600 dark:text-gray-400 hover:text-primary ml-auto mr-4 focus:outline-none">
                <svg fill="currentColor" width="1em" height="1em" class="dark:hidden text-xl" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"/></svg>                <svg fill="currentColor" width="1em" height="1em" class="hidden dark:inline-block text-xl text-yellow-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"/></svg>            </button>

            <!-- Mobile Search Button -->
            <button onclick="toggleSearch()" class="lg:hidden block text-gray-600 dark:text-gray-400 hover:text-primary mr-4 focus:outline-none">
                <svg fill="currentColor" width="1em" height="1em" class="text-xl" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>            </button>

            <!-- Mobile Menu Button -->
            <button onclick="toggleMobileMenu()" class="lg:hidden block text-gray-600 dark:text-gray-400 hover:text-primary focus:outline-none">
                <svg fill="currentColor" width="1em" height="1em" class="text-xl" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"/></svg>            </button>

            <!-- Nav -->
            <nav class="hidden lg:flex flex-1 items-center justify-between ml-10">
                <ul id="menu-%e9%a6%96%e9%a1%b5" class="flex space-x-6 text-gray-700 dark:text-gray-300"><li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home"><a href="https://fenij.com/" class="flex items-center gap-1 hover:text-primary transition-colors py-4 px-2">首页</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/json-format-tool/" class="flex items-center gap-1 hover:text-primary transition-colors py-4 px-2">JSON Format Tool</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/zzsjsq/" class="flex items-center gap-1 hover:text-primary transition-colors py-4 px-2">增值税计算器</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/local-ai-image-bg-remover/" class="flex items-center gap-1 hover:text-primary transition-colors py-4 px-2">图片在线去除背景工具</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/random-password-generator/" class="flex items-center gap-1 hover:text-primary transition-colors py-4 px-2">Random Password Generator</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/%e6%88%bf%e8%b4%b7%e8%ae%a1%e7%ae%97%e5%99%a8/" class="flex items-center gap-1 hover:text-primary transition-colors py-4 px-2">2026版房贷计算器</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-has-children group relative h-full flex items-center"><a href="https://fenij.com/" class="flex items-center gap-1 hover:text-primary transition-colors py-4 px-2">Other <svg fill="currentColor" width="1em" height="1em" class="text-xs opacity-70 group-hover:opacity-100 transition-opacity ml-1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"/></svg></a><ul class="sub-menu absolute top-full left-0 bg-white dark:bg-gray-800 shadow-lg rounded-md py-2 min-w-[160px] opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 transform translate-y-2 group-hover:translate-y-0 border border-gray-100 dark:border-gray-700"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy"><a href="https://fenij.com/privacy-policy/" class="block px-4 py-2 hover:bg-gray-50 dark:hover:bg-gray-700 hover:text-primary transition-colors">Privacy Policy</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/terms-of-use/" class="block px-4 py-2 hover:bg-gray-50 dark:hover:bg-gray-700 hover:text-primary transition-colors">Terms of Website Use</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/contact-me/" class="block px-4 py-2 hover:bg-gray-50 dark:hover:bg-gray-700 hover:text-primary transition-colors">About Me</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://fenij.com/disclaimer/" class="block px-4 py-2 hover:bg-gray-50 dark:hover:bg-gray-700 hover:text-primary transition-colors">Disclaimer</a></li>
</ul>
</li>
</ul>                
                <div class="flex items-center gap-2 ml-auto">
                    <button onclick="toggleDarkMode()" class="w-10 h-10 rounded-full flex items-center justify-center text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors focus:outline-none" aria-label="Toggle Dark Mode">
                        <svg fill="currentColor" width="1em" height="1em" class="dark:hidden text-lg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"/></svg>                        <svg fill="currentColor" width="1em" height="1em" class="hidden dark:inline-block text-lg text-yellow-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"/></svg>                    </button>
                    <button onclick="toggleSearch()" class="w-10 h-10 rounded-full flex items-center justify-center text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors focus:outline-none" aria-label="Search">
                        <svg fill="currentColor" width="1em" height="1em" class="text-lg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>                    </button>
                </div>
            </nav>
        </div>

        <!-- Mobile Nav Menu -->
        <div id="mobile-menu" class="hidden lg:hidden bg-white dark:bg-gray-800 border-t border-gray-100 dark:border-gray-700">
            <div class="flex flex-col p-4 space-y-3 text-gray-700 dark:text-gray-300">
                <ul id="menu-%e9%a6%96%e9%a1%b5-1" class="space-y-3"><li id="menu-item-29" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-29"><a href="https://fenij.com/">首页</a></li>
<li id="menu-item-125" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-125"><a href="https://fenij.com/json-format-tool/">JSON Format Tool</a></li>
<li id="menu-item-77" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-77"><a href="https://fenij.com/zzsjsq/">增值税计算器</a></li>
<li id="menu-item-149" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-149"><a href="https://fenij.com/local-ai-image-bg-remover/">图片在线去除背景工具</a></li>
<li id="menu-item-120" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-120"><a href="https://fenij.com/random-password-generator/">Random Password Generator</a></li>
<li id="menu-item-212" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-212"><a href="https://fenij.com/%e6%88%bf%e8%b4%b7%e8%ae%a1%e7%ae%97%e5%99%a8/">2026版房贷计算器</a></li>
<li id="menu-item-163" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-has-children menu-item-163"><a href="https://fenij.com/">Other</a>
<ul class="sub-menu">
	<li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-30"><a rel="privacy-policy" href="https://fenij.com/privacy-policy/">Privacy Policy</a></li>
	<li id="menu-item-31" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31"><a href="https://fenij.com/terms-of-use/">Terms of Website Use</a></li>
	<li id="menu-item-143" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-143"><a href="https://fenij.com/contact-me/">About Me</a></li>
	<li id="menu-item-146" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-146"><a href="https://fenij.com/disclaimer/">Disclaimer</a></li>
</ul>
</li>
</ul>            </div>
        </div>
    </header>

    <div class="container mx-auto px-4 py-6">
        
        <!-- Main Content Wrapper -->
        <div class="grid grid-cols-1 lg:grid-cols-3 gap-8">
            
            <!-- Content Area -->
            <div class="lg:col-span-2">
                <div class="flex justify-between items-center border-b border-gray-200 dark:border-gray-700 pb-4 mb-6">
                    <h3 class="text-lg font-medium border-l-4 border-primary pl-3 leading-none text-gray-800 dark:text-gray-100">最新文章</h3>
                    <!-- <a href="https://fenij.com/how-to-set-up-a-firewall-on-your-vps-with-ufw/" class="text-sm text-gray-500 dark:text-gray-400 hover:text-primary">全部</a> -->
                </div>

                <div class="space-y-6" id="post-list">
                    <article id="post-414" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-414 post type-post status-publish format-standard has-post-thumbnail hentry category-technology">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/how-to-set-up-a-firewall-on-your-vps-with-ufw/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/how-to-set-up-a-firewall-on-your-vps-with-ufw/">How to Set Up a Firewall on Your VPS with UFW</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    A fresh VPS ships with every port open. Within hours of going online, bots will ...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-30</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 8</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="414">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-413" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-413 post type-post status-publish format-standard has-post-thumbnail hentry category-odoo">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/odoo-%e6%a8%a1%e5%9d%97%e4%be%9d%e8%b5%96%e7%bc%ba%e5%a4%b1%e5%ae%89%e8%a3%85%e6%8a%a5%e9%94%99%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/odoo-%e6%a8%a1%e5%9d%97%e4%be%9d%e8%b5%96%e7%bc%ba%e5%a4%b1%e5%ae%89%e8%a3%85%e6%8a%a5%e9%94%99%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/">Odoo 模块依赖缺失安装报错怎么办？</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    装 Odoo 模块时弹出「无法安装模块 xxx，因为未满足外部依赖：No module named &#8216;xlsxwriter&#8217;」，或者干脆...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-30</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 9</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="413">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-412" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-412 post type-post status-publish format-standard has-post-thumbnail hentry category-technology">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/%e7%bd%91%e7%ab%99%e8%a2%ab%e6%8c%82%e9%a9%ac%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e6%9c%a8%e9%a9%ac%e6%b8%85%e9%99%a4%e5%ae%9e%e6%93%8d%e6%ad%a5%e9%aa%a4/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/%e7%bd%91%e7%ab%99%e8%a2%ab%e6%8c%82%e9%a9%ac%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e6%9c%a8%e9%a9%ac%e6%b8%85%e9%99%a4%e5%ae%9e%e6%93%8d%e6%ad%a5%e9%aa%a4/">网站被挂马怎么办？木马清除实操步骤</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    网站打开跳转到赌博页、搜索引擎快照变成乱七八糟的关键词、或者杀毒软件提示你的域名有风险——多半是被挂马了。挂马不是删几个文件就完事，攻击者通常留了不止一个后门。...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-30</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 10</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="412">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-396" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-396 post type-post status-publish format-standard has-post-thumbnail hentry category-technology">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/how-to-protect-your-server-from-brute-force-attacks-with-fail2ban/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/how-to-protect-your-server-from-brute-force-attacks-with-fail2ban/">How to Protect Your Server from Brute-Force Attacks with Fail2ban</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    Every server exposed to the internet gets hammered by brute-force login attempts...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-29</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 15</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="396">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-394" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-394 post type-post status-publish format-standard has-post-thumbnail hentry category-wordpress">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/wordpress-%e6%8f%90%e7%a4%ba-allowed-memory-size-exhausted-%e5%86%85%e5%ad%98%e8%80%97%e5%b0%bd%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/wordpress-%e6%8f%90%e7%a4%ba-allowed-memory-size-exhausted-%e5%86%85%e5%ad%98%e8%80%97%e5%b0%bd%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/">WordPress 提示 Allowed memory size exhausted 内存耗尽怎么办？</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    打开网站或后台时看到 Fatal error: Allowed memory size of 134217728 bytes exhausted，意思是某段 P...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-29</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 11</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="394">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-392" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-392 post type-post status-publish format-standard has-post-thumbnail hentry category-technology">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/nginx-504-gateway-timeout-%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e8%b6%85%e6%97%b6%e4%bc%98%e5%8c%96%e4%b8%8e%e6%8e%92%e6%9f%a5%e6%8c%87%e5%8d%97/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/nginx-504-timeout-cover-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/nginx-504-timeout-cover-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/nginx-504-timeout-cover-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/nginx-504-timeout-cover-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/nginx-504-timeout-cover.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/nginx-504-gateway-timeout-%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e8%b6%85%e6%97%b6%e4%bc%98%e5%8c%96%e4%b8%8e%e6%8e%92%e6%9f%a5%e6%8c%87%e5%8d%97/">Nginx 504 Gateway Timeout 怎么办？超时优化与排查指南</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    网站突然报 504 Gateway Timeout，说明 Nginx 把请求转给了后端（PHP-FPM、Node、Java 等），但后端在限定时间内没给回结果，...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-29</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 12</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="392">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-367" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-367 post type-post status-publish format-standard has-post-thumbnail hentry category-technology">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/how-to-secure-your-vps-step-by-step-guide-for-beginners/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-367-v2-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-367-v2-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-367-v2-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-367-v2-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-367-v2.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/how-to-secure-your-vps-step-by-step-guide-for-beginners/">How to Secure Your VPS (Step-by-Step Guide for Beginners)</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    The moment your VPS goes online, automated bots start probing it — scanning for ...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-28</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 12</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="367">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">1</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-365" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-365 post type-post status-publish format-standard has-post-thumbnail hentry category-technology">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/docker-%e5%ae%b9%e5%99%a8%e4%b8%80%e7%9b%b4%e9%87%8d%e5%90%af%e6%88%96%e9%80%80%e5%87%ba%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e7%b3%bb%e7%bb%9f%e6%8e%92%e6%9f%a5%e6%8c%87%e5%8d%97/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-365-v2-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-365-v2-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-365-v2-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-365-v2-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-365-v2.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/docker-%e5%ae%b9%e5%99%a8%e4%b8%80%e7%9b%b4%e9%87%8d%e5%90%af%e6%88%96%e9%80%80%e5%87%ba%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e7%b3%bb%e7%bb%9f%e6%8e%92%e6%9f%a5%e6%8c%87%e5%8d%97/">Docker 容器一直重启或退出怎么办？系统排查指南</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    docker ps 里容器状态一直显示 Restarting (1) xx seconds ago，或者刚 up 没多久又变成 Exited——这是用 Dock...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-28</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 20</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="365">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-363" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-363 post type-post status-publish format-standard has-post-thumbnail hentry category-technology">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/nginx-502-bad-gateway-%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e5%8e%9f%e5%9b%a0%e5%ae%9a%e4%bd%8d%e4%b8%8e%e8%a7%a3%e5%86%b3%e5%85%a8%e6%b5%81%e7%a8%8b/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-363-v2-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-363-v2-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-363-v2-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-363-v2-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-363-v2.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/nginx-502-bad-gateway-%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e5%8e%9f%e5%9b%a0%e5%ae%9a%e4%bd%8d%e4%b8%8e%e8%a7%a3%e5%86%b3%e5%85%a8%e6%b5%81%e7%a8%8b/">Nginx 502 Bad Gateway 怎么办？原因定位与解决全流程</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    访问网站突然弹出「502 Bad Gateway」，说明 Nginx 自己还活着，但它把请求转给后端（PHP-FPM、Node、Tomcat、上游服务等）时，后...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-28</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 18</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="363">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">0</span>
                    </span>
                            </div>
        </div>
    </div>
</article><article id="post-345" class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm hover:shadow-md transition-shadow flex flex-col md:flex-row gap-5 post-345 post type-post status-publish format-standard has-post-thumbnail hentry category-wordpress">
    <div class="w-full md:w-60 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden relative group">
        
                
        <a href="https://fenij.com/wordpress-%e5%9b%ba%e5%ae%9a%e9%93%be%e6%8e%a5404%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/" class="block w-full h-full">
                            <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-345-v2-300x205.png" class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105 wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-345-v2-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-345-v2-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-345-v2-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-345-v2.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                    </a>
    </div>
    <div class="flex flex-col justify-between flex-1">
        <div>
            <h2 class="text-xl font-medium text-gray-800 dark:text-gray-100 hover:text-primary mb-4 leading-snug">
                <a href="https://fenij.com/wordpress-%e5%9b%ba%e5%ae%9a%e9%93%be%e6%8e%a5404%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/">WordPress 固定链接404怎么办？</a>
            </h2>
            <div class="hidden md:block">
                <div class="text-gray-500 dark:text-gray-400 text-base mb-4 line-clamp-2 leading-relaxed">
                    网站首页能正常打开，一点进文章却提示 404？这是 WordPress 很常见的一个问题，绝大多数情况下都跟「固定链接（伪静态）规则」有关。别慌，按下面几步挨个...                </div>
            </div>
        </div>
        <div class="flex items-center justify-between text-xs text-gray-400">
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"/></svg> fenij</span>
                                <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> 2026-07-27</span>
            </div>
            
            <div class="flex items-center gap-4">
                                    <span class="flex items-center gap-1"><svg fill="currentColor" width="1em" height="1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg> 26</span>
                                                                    <span class="flex items-center gap-1 cursor-pointer js-like-post group transition-colors " data-post-id="345">
                        <svg fill="currentColor" width="1em" height="1em" class="icon-regular transition-colors " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"/></svg><svg fill="currentColor" width="1em" height="1em" class="icon-solid hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>                        <span class="like-count text-gray-400">1</span>
                    </span>
                            </div>
        </div>
    </div>
</article>                </div>

                <div class="text-center mt-8"><button id="load-more-posts" class="px-6 py-2 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-full text-gray-600 dark:text-gray-300 hover:text-primary hover:border-primary transition-all shadow-sm" data-page="1" data-max="4" data-vars="{&quot;post_type&quot;:&quot;post&quot;,&quot;paged&quot;:1,&quot;posts_per_page&quot;:10}">加载更多</button></div>            </div>

            <!-- Sidebar -->
            <aside class="hidden lg:block lg:col-span-1 space-y-6">
            <!-- Widget: Recent Posts -->
        <div class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm">
            <h3 class="text-lg font-medium mb-4 pb-2 border-b border-gray-100 dark:border-gray-700">最新文章</h3>
            <ul class="space-y-4">
                                        <li class="flex gap-3">
                            <div class="w-20 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden">
                                                                    <a href="https://fenij.com/how-to-set-up-a-firewall-on-your-vps-with-ufw/" class="block w-full h-full">
                                        <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-300x205.png" class="w-full h-full object-cover wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-vps-firewall.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                                    </a>
                                                            </div>
                            <div class="flex-1">
                                <h4 class="text-base leading-snug mb-1 text-gray-800 dark:text-gray-200"><a href="https://fenij.com/how-to-set-up-a-firewall-on-your-vps-with-ufw/" class="hover:text-primary">How to Set Up a Firewall on Your VPS with UFW</a></h4>
                                <span class="text-sm text-gray-400">2026-07-30</span>
                            </div>
                        </li>
                                                <li class="flex gap-3">
                            <div class="w-20 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden">
                                                                    <a href="https://fenij.com/odoo-%e6%a8%a1%e5%9d%97%e4%be%9d%e8%b5%96%e7%bc%ba%e5%a4%b1%e5%ae%89%e8%a3%85%e6%8a%a5%e9%94%99%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/" class="block w-full h-full">
                                        <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-300x205.png" class="w-full h-full object-cover wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-odoo-dep.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                                    </a>
                                                            </div>
                            <div class="flex-1">
                                <h4 class="text-base leading-snug mb-1 text-gray-800 dark:text-gray-200"><a href="https://fenij.com/odoo-%e6%a8%a1%e5%9d%97%e4%be%9d%e8%b5%96%e7%bc%ba%e5%a4%b1%e5%ae%89%e8%a3%85%e6%8a%a5%e9%94%99%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/" class="hover:text-primary">Odoo 模块依赖缺失安装报错怎么办？</a></h4>
                                <span class="text-sm text-gray-400">2026-07-30</span>
                            </div>
                        </li>
                                                <li class="flex gap-3">
                            <div class="w-20 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden">
                                                                    <a href="https://fenij.com/%e7%bd%91%e7%ab%99%e8%a2%ab%e6%8c%82%e9%a9%ac%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e6%9c%a8%e9%a9%ac%e6%b8%85%e9%99%a4%e5%ae%9e%e6%93%8d%e6%ad%a5%e9%aa%a4/" class="block w-full h-full">
                                        <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-300x205.png" class="w-full h-full object-cover wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/cover-webshell-clean.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                                    </a>
                                                            </div>
                            <div class="flex-1">
                                <h4 class="text-base leading-snug mb-1 text-gray-800 dark:text-gray-200"><a href="https://fenij.com/%e7%bd%91%e7%ab%99%e8%a2%ab%e6%8c%82%e9%a9%ac%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%e6%9c%a8%e9%a9%ac%e6%b8%85%e9%99%a4%e5%ae%9e%e6%93%8d%e6%ad%a5%e9%aa%a4/" class="hover:text-primary">网站被挂马怎么办？木马清除实操步骤</a></h4>
                                <span class="text-sm text-gray-400">2026-07-30</span>
                            </div>
                        </li>
                                                <li class="flex gap-3">
                            <div class="w-20 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden">
                                                                    <a href="https://fenij.com/how-to-protect-your-server-from-brute-force-attacks-with-fail2ban/" class="block w-full h-full">
                                        <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-300x205.png" class="w-full h-full object-cover wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/fail2ban-brute-force-cover.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                                    </a>
                                                            </div>
                            <div class="flex-1">
                                <h4 class="text-base leading-snug mb-1 text-gray-800 dark:text-gray-200"><a href="https://fenij.com/how-to-protect-your-server-from-brute-force-attacks-with-fail2ban/" class="hover:text-primary">How to Protect Your Server from Brute-Force Attacks with Fail2ban</a></h4>
                                <span class="text-sm text-gray-400">2026-07-29</span>
                            </div>
                        </li>
                                                <li class="flex gap-3">
                            <div class="w-20 aspect-[3/2] bg-gray-200 dark:bg-gray-700 rounded shrink-0 overflow-hidden">
                                                                    <a href="https://fenij.com/wordpress-%e6%8f%90%e7%a4%ba-allowed-memory-size-exhausted-%e5%86%85%e5%ad%98%e8%80%97%e5%b0%bd%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/" class="block w-full h-full">
                                        <img width="300" height="205" src="https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-300x205.png" class="w-full h-full object-cover wp-post-image" alt="" decoding="async" srcset="https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-300x205.png 300w, https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-1024x701.png 1024w, https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover-768x525.png 768w, https://fenij.com/wp-content/uploads/2026/07/wordpress-memory-exhausted-cover.png 1216w" sizes="(max-width: 300px) 100vw, 300px" />                                    </a>
                                                            </div>
                            <div class="flex-1">
                                <h4 class="text-base leading-snug mb-1 text-gray-800 dark:text-gray-200"><a href="https://fenij.com/wordpress-%e6%8f%90%e7%a4%ba-allowed-memory-size-exhausted-%e5%86%85%e5%ad%98%e8%80%97%e5%b0%bd%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f/" class="hover:text-primary">WordPress 提示 Allowed memory size exhausted 内存耗尽怎么办？</a></h4>
                                <span class="text-sm text-gray-400">2026-07-29</span>
                            </div>
                        </li>
                                    </ul>
        </div>

        <!-- Widget: Tags -->
        <div class="bg-white dark:bg-gray-800 p-5 rounded-lg shadow-sm">
            <h3 class="text-lg font-medium mb-4 pb-2 border-b border-gray-100 dark:border-gray-700 text-gray-900 dark:text-gray-100">热门标签</h3>
            <div class="flex flex-wrap gap-2">
                <a href="https://fenij.com/tag/wordpress/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">wordpress</a><a href="https://fenij.com/tag/%e8%99%9a%e6%8b%9f%e5%8c%96/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">虚拟化</a><a href="https://fenij.com/tag/docker/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">Docker</a><a href="https://fenij.com/tag/odoo/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">odoo</a><a href="https://fenij.com/tag/%e6%8f%92%e4%bb%b6/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">插件</a><a href="https://fenij.com/tag/%e6%b3%9b%e5%be%ae/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">泛微</a><a href="https://fenij.com/tag/resin/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">Resin</a><a href="https://fenij.com/tag/e-office/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">E-office</a><a href="https://fenij.com/tag/%e8%81%8c%e4%b8%9a%e7%94%9f%e6%b6%af/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">职业生涯</a><a href="https://fenij.com/tag/code/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">Code</a><a href="https://fenij.com/tag/%e6%a0%87%e7%ad%be%e6%89%93%e5%8d%b0%e6%9c%ba/" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 text-sm text-gray-600 dark:text-gray-400 rounded hover:bg-primary hover:text-white transition-colors">标签打印机</a>            </div>
        </div>
    </aside>
            
        </div>
    </div>

    <!-- Footer -->
        <footer class="bg-white dark:bg-gray-800 border-t border-gray-100 dark:border-gray-700 mt-12 transition-colors duration-200">
        <div class="container mx-auto px-4 py-8">
            <!-- Footer Bottom -->
            <div class="flex flex-col md:flex-row justify-between items-center border-t border-gray-100 dark:border-gray-700 pt-8 gap-4">
                <!-- Left: Nav -->
                <nav>
                    <ul id="menu-%e9%a6%96%e9%a1%b5-2" class="flex flex-wrap gap-x-6 gap-y-2 text-sm text-gray-600 dark:text-gray-400 justify-center md:justify-start"><li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-29"><a href="https://fenij.com/" class="hover:text-primary transition-colors flex items-center gap-2 before:content-[&quot;&quot;] before:w-1.5 before:h-1.5 before:bg-blue-500 before:rounded-full before:inline-block">首页</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-125"><a href="https://fenij.com/json-format-tool/" class="hover:text-primary transition-colors flex items-center gap-2 before:content-[&quot;&quot;] before:w-1.5 before:h-1.5 before:bg-blue-500 before:rounded-full before:inline-block">JSON Format Tool</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-77"><a href="https://fenij.com/zzsjsq/" class="hover:text-primary transition-colors flex items-center gap-2 before:content-[&quot;&quot;] before:w-1.5 before:h-1.5 before:bg-blue-500 before:rounded-full before:inline-block">增值税计算器</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-149"><a href="https://fenij.com/local-ai-image-bg-remover/" class="hover:text-primary transition-colors flex items-center gap-2 before:content-[&quot;&quot;] before:w-1.5 before:h-1.5 before:bg-blue-500 before:rounded-full before:inline-block">图片在线去除背景工具</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-120"><a href="https://fenij.com/random-password-generator/" class="hover:text-primary transition-colors flex items-center gap-2 before:content-[&quot;&quot;] before:w-1.5 before:h-1.5 before:bg-blue-500 before:rounded-full before:inline-block">Random Password Generator</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-212"><a href="https://fenij.com/%e6%88%bf%e8%b4%b7%e8%ae%a1%e7%ae%97%e5%99%a8/" class="hover:text-primary transition-colors flex items-center gap-2 before:content-[&quot;&quot;] before:w-1.5 before:h-1.5 before:bg-blue-500 before:rounded-full before:inline-block">2026版房贷计算器</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-163"><a href="https://fenij.com/" class="hover:text-primary transition-colors flex items-center gap-2 before:content-[&quot;&quot;] before:w-1.5 before:h-1.5 before:bg-blue-500 before:rounded-full before:inline-block">Other</a></li>
</ul>                </nav>

                <!-- Center: Social -->
                <div class="flex items-center gap-3">
                                    </div>

                <!-- Right: Copyright -->
                <div class="text-xs text-gray-500 text-center md:text-right">
                    Copyright © 2026 Fenjj. All rights reserved.                    <span class="ml-2">Designed by <a href="https://less-theme.com" target="_blank" class="hover:text-primary transition-colors">LessTheme</a></span>
                </div>
            </div>
        </div>
    </footer>

    <!-- Search Modal -->
    <div id="search-modal" class="fixed inset-0 bg-black/50 z-[60] hidden opacity-0 transition-opacity duration-300 flex items-center justify-center p-4">
        <div class="bg-white dark:bg-gray-800 w-full max-w-2xl rounded-lg shadow-2xl overflow-hidden transform scale-95 transition-transform duration-300">
            <div class="p-4 border-b border-gray-100 dark:border-gray-700 flex items-center justify-between">
                <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100">搜索</h3>
                <button onclick="toggleSearch()" class="text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 focus:outline-none">
                    <svg fill="currentColor" width="1em" height="1em" class="text-xl" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"/></svg>                </button>
            </div>
            <div class="p-6">
                <form role="search" method="get" class="search-form" action="https://fenij.com/">
                    <div class="relative">
                        <input type="search" class="w-full pl-12 pr-4 py-4 bg-gray-50 dark:bg-gray-700 border border-gray-200 dark:border-gray-600 rounded-lg focus:outline-none focus:border-primary dark:focus:border-primary text-lg text-gray-900 dark:text-gray-100" placeholder="请输入关键词..." value="" name="s" />
                        <svg fill="currentColor" width="1em" height="1em" class="absolute left-4 top-1/2 -translate-y-1/2 text-gray-400 text-xl" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>                    </div>
                </form>
                                <div class="mt-6">
                    <h4 class="text-sm font-medium text-gray-500 dark:text-gray-400 mb-3">热门搜索</h4>
                    <div class="flex flex-wrap gap-2">
                                                    <a href="https://fenij.com/?s=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%EF%BC%8C%E8%AE%BE%E8%AE%A1%EF%BC%8CWordPress" class="px-3 py-1 bg-gray-100 dark:bg-gray-700 hover:bg-primary hover:text-white dark:hover:bg-primary rounded-full text-sm text-gray-600 dark:text-gray-300 transition-colors">人工智能，设计，WordPress</a>
                                            </div>
                </div>
                            </div>
        </div>
    </div>

    <!-- QR Code Modal -->
    <div id="qr-modal" class="fixed inset-0 bg-black/50 z-[70] hidden opacity-0 transition-opacity duration-300 flex items-center justify-center p-4">
        <div class="bg-white dark:bg-gray-800 w-full max-w-sm rounded-lg shadow-2xl overflow-hidden transform scale-95 transition-transform duration-300 relative">
            <button onclick="closeQr()" class="absolute top-4 right-4 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 focus:outline-none z-10">
                <svg fill="currentColor" width="1em" height="1em" class="text-xl" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"/></svg>            </button>
            <div class="p-8 flex flex-col items-center">
                <h3 id="qr-title" class="text-xl font-medium text-gray-900 dark:text-gray-100 mb-6"></h3>
                <div class="bg-white p-2 rounded-lg shadow-sm">
                    <img id="qr-image" src="" alt="QR Code" class="w-48 h-48 object-contain">
                </div>
                <p class="text-sm text-gray-500 mt-4">扫一扫上面的二维码图案，加我微信/QQ</p>
            </div>
        </div>
    </div>

    <script>
    function showQr(url, title) {
        const modal = document.getElementById('qr-modal');
        const modalContent = modal.querySelector('div');
        const qrImage = document.getElementById('qr-image');
        const qrTitle = document.getElementById('qr-title');

        qrImage.src = url;
        qrTitle.textContent = title;

        modal.classList.remove('hidden');
        // Trigger reflow
        void modal.offsetWidth;
        modal.classList.remove('opacity-0');
        modalContent.classList.remove('scale-95');
        modalContent.classList.add('scale-100');
    }

    function closeQr() {
        const modal = document.getElementById('qr-modal');
        const modalContent = modal.querySelector('div');

        modal.classList.add('opacity-0');
        modalContent.classList.remove('scale-100');
        modalContent.classList.add('scale-95');

        setTimeout(() => {
            modal.classList.add('hidden');
        }, 300);
    }
    
    // Close on click outside
    document.getElementById('qr-modal').addEventListener('click', function(e) {
        if (e.target === this) {
            closeQr();
        }
    });
    </script>

<style>
.footer-links-block {
    text-align: center;
    padding: 25px 10px;
    font-size: 15px;
}
.footer-en-links a {
    color: #222;
    text-decoration: none;
    margin: 0 6px;
}
.footer-cn-links a {
    color: #555;
    text-decoration: none;
    margin: 0 6px;
}
.footer-en-links span, .footer-cn-links span {
    color: #999;
}
</style>

<div class="footer-links-block">
    <div class="footer-en-links">
        <a href="/about-fenij">About Fenij</a>
        <span>|</span>
        <a href="/contact-me">Contact Me</a>
        <span>|</span>
        <a href="/privacy-policy">Privacy Policy</a>
        <span>|</span>
        <a href="/terms-of-use">Terms of Use</a>
    </div>
    <div class="footer-cn-links" style="margin-top:8px;">
        <a href="/about-me/">站长介绍</a>
        <span>|</span>
        <a href="/about-me/">联系方式</a>
        <span>|</span>
        <a href="/privacy-policy/">隐私政策</a>
        <span>|</span>
        <a href="/sample-page/">使用条款</a>
    </div>
</div>
</body>
</html>
