{"id":780,"date":"2026-10-24T01:34:53","date_gmt":"2026-10-23T16:34:53","guid":{"rendered":"https:\/\/blog.gerd.kr\/?p=780"},"modified":"2026-10-24T01:34:53","modified_gmt":"2026-10-23T16:34:53","slug":"php2shell-%ec%b7%a8%ec%95%bd%ec%a0%90%ec%97%90-%eb%8c%80%ed%95%9c-php-%ec%97%85%eb%8d%b0%ec%9d%b4%ed%8a%b8","status":"publish","type":"post","link":"https:\/\/blog.gerd.kr\/?p=780","title":{"rendered":"PHP2SHELL \ucde8\uc57d\uc810\uc5d0 \ub300\ud55c PHP \uc5c5\ub370\uc774\ud2b8"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\uc6b0\ubd84\ud22c 26.04 \ub294 \uae30\uc874\uc758 ondrej PPA \ub97c \uc0ac\uc6a9\ud558\uba74 \uc5c5\ub370\uc774\ud2b8\ub97c \ubabb \ubc1b\ub294\ub2e4. \ub2e4\ud589\uc2a4\ub7fd\uac8c\ub3c4 codeberg \uc758 jmflores \ub2d8\uc774 26.04 \uc5d0 \ub9de\ub294 \ubc29\ubc95\uc744 \ucf54\uba58\ud2b8 \ud574 \uc8fc\uc154\uc11c \uae34\ube60\uc774&#8230;. \ud574\uc11c \uc800\uc7a5\ud574 \ub193\ub294\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uaf64 \uc2ec\uac01\ud55c \ucde8\uc57d\uc810\uc774\ub77c \ub300\uc751\uc774 \ub2a6\uc740 \uba87\uba87 \uc0ac\uc774\ud2b8\ub294 \uc544\uc608 \ub0b4\ub824\ubc84\ub838\uc744 \uc815\ub3c4\uc600\ub2e4. \ud328\uce58\ub294 \ube60\ub974\uac8c \ub098\uc654\uace0, \ub300\ubd80\ubd84 \uae08\ubc29 \uc801\uc6a9\ud588\uc9c0\ub9cc, \uc6b0\ubd84\ud22c\ub294 \uc774\uc0c1\ud558\uac8c \uacf5\uc2dd \ub808\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\uc11c \ud328\uce58 \ubc30\ud3ec\uac00 \ub290\ub824\uc11c \ub2e4\ub978 \uc800\uc7a5\uc18c\ub97c \ucd94\uac00\ud558\uc5ec \uc5c5\ub370\uc774\ud2b8\ud588\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Starting with Ubuntu 26.04 (Resolute), the PHP packages are being unified under a single infrastructure at packages.sury.org.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Migration Steps<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Removes the legacy PPA from your sources<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To avoid &#8220;404 Not Found&#8221; errors during apt update, remove the old PPA references:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Removes the legacy PPA from your sources\nsudo add-apt-repository --remove ppa:ondrej\/php\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Setup the new Repository<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following commands install the official keyring and point your system to the new unified server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Update local index and install dependencies\nsudo apt-get update\nsudo apt-get -y install lsb-release ca-certificates curl\n\n# Download and install the new GPG keyring (managed via .deb for easier updates)\nsudo curl -sSLo \/tmp\/debsuryorg-archive-keyring.deb https:\/\/packages.sury.org\/debsuryorg-archive-keyring.deb\nsudo dpkg -i \/tmp\/debsuryorg-archive-keyring.deb\n\n# Create the new source list targeting the unified repository\n# 'lsb_release -sc' will automatically detect \"resolute\" on 26.04\nsudo sh -c 'echo \"deb &#91;signed-by=\/usr\/share\/keyrings\/debsuryorg-archive-keyring.gpg] https:\/\/packages.sury.org\/php\/ $(lsb_release -sc) main\" &gt; \/etc\/apt\/sources.list.d\/php.list'\n\n# Refresh and upgrade\nsudo apt-get update\nsudo apt-get upgrade<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.5 \ubc84\uc83c\uc740 \ub9e8 \ub9c8\uc9c0\ub9c9 \uc22b\uc790\uac00 12 \uba74 \ud328\uce58 \ub41c \ubc84\uc83c\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>gerd@miniboxx:~$ php -v<br>PHP 8.5.12 (cli) (built: Oct 21 2026 08:07:33) (NTS)<br>Copyright (c) The PHP Group<br>Built by Ubuntu<br>Zend Engine v4.5.12, Copyright (c) Zend Technologies<br>with Zend OPcache v8.5.12, Copyright (c), by Zend Technologies<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc6b0\ubd84\ud22c 26.04 \ub294 \uae30\uc874\uc758 ondrej PPA \ub97c \uc0ac\uc6a9\ud558\uba74 \uc5c5\ub370\uc774\ud2b8\ub97c \ubabb \ubc1b\ub294\ub2e4. \ub2e4\ud589\uc2a4\ub7fd\uac8c\ub3c4 codeberg \uc758 jmflores \ub2d8\uc774 26.04 \uc5d0 \ub9de\ub294 \ubc29\ubc95\uc744 \ucf54\uba58\ud2b8 \ud574 \uc8fc\uc154\uc11c \uae34\ube60\uc774&#8230;. \ud574\uc11c \uc800\uc7a5\ud574 \ub193\ub294\ub2e4. \uaf64 \uc2ec\uac01\ud55c \ucde8\uc57d\uc810\uc774\ub77c \ub300\uc751\uc774 \ub2a6\uc740 \uba87\uba87 \uc0ac\uc774\ud2b8\ub294 \uc544\uc608 \ub0b4\ub824\ubc84\ub838\uc744 \uc815\ub3c4\uc600\ub2e4. \ud328\uce58\ub294 \ube60\ub974\uac8c \ub098\uc654\uace0, \ub300\ubd80\ubd84 \uae08\ubc29 \uc801\uc6a9\ud588\uc9c0\ub9cc, \uc6b0\ubd84\ud22c\ub294 \uc774\uc0c1\ud558\uac8c \uacf5\uc2dd \ub808\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\uc11c \ud328\uce58 \ubc30\ud3ec\uac00 \ub290\ub824\uc11c \ub2e4\ub978 \uc800\uc7a5\uc18c\ub97c \ucd94\uac00\ud558\uc5ec \uc5c5\ub370\uc774\ud2b8\ud588\ub2e4. Starting [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[116,228],"class_list":["post-780","post","type-post","status-publish","format-standard","hentry","category-1","tag-php","tag-php2shell"],"_links":{"self":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/780","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=780"}],"version-history":[{"count":1,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/780\/revisions"}],"predecessor-version":[{"id":781,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/780\/revisions\/781"}],"wp:attachment":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}