{"id":690,"date":"2026-10-30T13:36:54","date_gmt":"2026-10-30T12:36:54","guid":{"rendered":"https:\/\/webbay.pl\/blog\/?p=690"},"modified":"2026-10-30T17:06:33","modified_gmt":"2026-10-30T16:06:33","slug":"hosting-php-mysql","status":"publish","type":"post","link":"https:\/\/webbay.pl\/blog\/2026\/10\/30\/hosting-php-mysql\/","title":{"rendered":"Hosting PHP i MySQL: 7 wymaga\u0144 w\u0142asnej aplikacji"},"content":{"rendered":"\n<style>\n\/* Styl lokalny dla szkicu WebBay. Tre\u015b\u0107 pozostaje w blokach Gutenberg\/Kadence. *\/\nbody.page-id-8{background:#fff}\nbody.page-id-8 .content-area{margin-top:0;margin-bottom:0}\nbody.page-id-8 .site-container,body.page-id-8 .content-container{max-width:none;padding:0}\nbody.page-id-8 .entry-content-wrap{padding:0}\nbody.page-id-8 .entry-content{margin:0}\n.wb-premium{--wb-ink:#183451;--wb-text:#40566c;--wb-blue:#287cde;--wb-action:#2168bc;--wb-line:#dce8f3;color:var(--wb-ink);background:#fff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;font-size:17px;line-height:1.65;width:100%;isolation:isolate}\n.wb-premium *{box-sizing:border-box}\n.wb-premium{margin:0!important}\n.wb-premium .wp-block-group{margin-block:0}\n.wb-premium .wp-block-group__inner-container{display:contents}\n.wb-premium .wp-block-group__inner-container>*{margin-block-start:0}\n.wb-premium p,.wb-premium h1,.wb-premium h2,.wb-premium h3,.wb-premium .wp-block-group{margin-top:0}\n.wb-premium p{color:var(--wb-text);margin-bottom:16px}\n.wb-premium h1,.wb-premium h2,.wb-premium h3{color:var(--wb-ink);font-family:inherit;font-weight:700;letter-spacing:-.035em}\n.wb-premium h1{font-size:clamp(38px,4.25vw,62px);line-height:1.1;margin:22px 0 24px}\n.wb-premium h1 span{color:#2168bc}\n.wb-premium h2{font-size:clamp(30px,3vw,42px);line-height:1.18;margin-bottom:18px}\n.wb-premium h3{font-size:22px;line-height:1.3;margin-bottom:12px}\n.wb-premium a{color:#2168bc;text-decoration-thickness:1px;text-underline-offset:4px}\n.wb-premium a:hover{color:#183451}\n.wb-premium a:focus-visible,.wb-premium summary:focus-visible,.wb-premium input:focus-visible,.wb-premium button:focus-visible{outline:3px solid #183451;outline-offset:4px}\n.wb-premium [id]{scroll-margin-top:30px}\n.wb-wrap{max-width:1216px!important;padding:0 32px;margin:0 auto!important}\n.wb-header{background:#fff;border-bottom:1px solid #e7eff7}\n.wb-header-inner{display:flex;align-items:center;gap:30px;min-height:94px}\n.wb-brand{margin:0!important;white-space:nowrap}\n.wb-brand a{font-size:31px;font-weight:800;letter-spacing:-1.6px;line-height:1;text-decoration:none!important;color:#183451!important;display:inline-flex;align-items:center;min-height:44px}\n.wb-brand span{color:#287cde}\n.wb-brand small{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#40566c;border-left:1px solid #cbdcec;padding:7px 0 7px 12px;margin-left:12px}\n.wb-desktop-nav{margin-left:auto!important}\n.wb-nav-links{display:flex;gap:24px;margin:0!important;align-items:center}\n.wb-nav-links a{color:#334d66;text-decoration:none;font-size:14px;font-weight:600;white-space:nowrap;padding:12px 0}\n.wb-header-cta{margin:0!important}\n.wb-header-cta a{display:block;border:1px solid #cbdeef;border-radius:8px;padding:10px 15px;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap;color:#183451}\n.wb-header-cta span{margin-left:9px;color:#2168bc}\n.wb-mobile-menu{display:none}\n.wb-hero{padding:76px 0 44px;background:radial-gradient(ellipse at 85% 8%,#dceeff 0%,transparent 53%),linear-gradient(120deg,#fff 0%,#f2f8ff 100%);border-bottom:1px solid #e7eff7}\n.wb-premium .wb-hero-grid>.kt-row-column-wrap{grid-template-columns:1.4fr 1fr;gap:64px;padding:0;align-items:center}\n.wb-kicker{color:#2168bc!important;font-size:11px;font-weight:800;letter-spacing:1.7px;line-height:1.6;margin:0 0 17px!important}\n.wb-hero-kicker{display:inline-flex;align-items:center;gap:9px}\n.wb-hero-kicker:before{content:\"\";width:7px;height:7px;border-radius:100%;background:#287cde;box-shadow:0 0 0 4px #dceeff;flex-shrink:0}\n.wb-premium .wb-lead{font-size:18px;line-height:1.75;max-width:580px;margin-bottom:28px}\n.wb-buttons{gap:12px!important;display:flex;align-items:center;flex-wrap:wrap;margin:24px 0 0}\n.wb-premium .wb-buttons .wp-block-button{margin:0}\n.wb-premium .wp-block-button__link{font-size:14px;font-weight:700;line-height:1.4;border:1px solid transparent;border-radius:8px;padding:16px 20px;text-decoration:none;box-shadow:none;transition:background .15s,color .15s,box-shadow .15s}\n.wb-primary .wp-block-button__link{background:#2168bc!important;color:#fff!important;box-shadow:0 6px 16px #2168bc20!important}\n.wb-primary .wp-block-button__link:hover{background:#183451!important}\n.wb-secondary .wp-block-button__link{background:#fff!important;border-color:#cbddec!important;color:#183451!important}\n.wb-secondary .wp-block-button__link:hover{background:#eaf4ff!important}\n.wb-proof{font-size:12px;margin:22px 0 0!important;color:#40566c!important}\n.wb-proof span{padding:0 7px;color:#2168bc}\n.wb-plan-card{position:relative;isolation:isolate;background:#fff;border:1px solid #d2e4f5;border-radius:24px;box-shadow:0 22px 60px #184b7d12;padding:32px;transform:rotate(1deg)}\n.wb-plan-card:before{content:\"\";position:absolute;inset:14px -12px -12px 14px;z-index:-1;border:1px solid #c8dff5;border-radius:24px;background:transparent;transform:rotate(-3deg)}\n.wb-premium .wb-plan-title{font-size:28px;line-height:1.23;margin-bottom:24px}\n.wb-step{display:flex;gap:15px;padding:18px 0;border-top:1px solid #e6eef6}\n.wb-step-number{background:#f2f8ff;border:1px solid #dceeff;border-radius:11px;flex:0 0 40px;height:40px;display:flex;align-items:center;justify-content:center;color:#2168bc!important;font-size:12px;font-weight:800;margin:0!important}\n.wb-step-copy{min-width:0}\n.wb-premium .wb-step h3{font-size:16px;letter-spacing:-.02em;margin:0 0 5px}\n.wb-step p:not(.wb-step-number){font-size:13px;line-height:1.6;margin:0}\n.wb-plan-note{font-size:11px;border-top:1px solid #e6eef6;padding-top:18px;margin:0!important}\n.wb-search-panel{margin:58px 0 0!important;background:#fff;border:1px solid #dce8f3;border-radius:16px;display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:center;padding:26px 30px;box-shadow:0 8px 22px #18345104}\n.wb-search-caption h2{font-size:21px;margin:0 0 4px;letter-spacing:-.02em}\n.wb-search-caption p{font-size:14px;margin:0}\n.wb-search .wp-block-search__label{font-size:11px;color:#40566c;display:block;margin-bottom:6px;font-weight:700}\n.wb-search .wp-block-search__inside-wrapper{gap:8px}\n.wb-search .wp-block-search__input{min-width:0;width:100%;border:1px solid #738ba3!important;border-radius:7px;padding:12px 14px;font-family:inherit;font-size:14px;color:#183451;background:#fff;height:48px}\n.wb-search .wp-block-search__input::placeholder{color:#596e82;opacity:1}\n.wb-search .wp-block-search__button{background:#183451;color:#fff;font-size:14px;font-weight:700;border:0;border-radius:7px;margin:0;padding:10px 20px;height:48px}\n.wb-section{padding:86px 0}\n.wb-intro{max-width:700px;margin:0 0 38px!important}\n.wb-section-lead{font-size:17px;line-height:1.75;max-width:640px}\n.wb-premium .wb-use-grid>.kt-row-column-wrap{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:0;align-items:stretch}\n.wb-use-grid .wp-block-kadence-column>.kt-inside-inner-col{height:100%}\n.wb-use-card{height:100%;padding:28px;background:#fff;border:1px solid #dce8f3;border-radius:16px;box-shadow:0 5px 14px #18345103;transition:box-shadow .15s,border-color .15s}\n.wb-use-card:hover{border-color:#9ebfe0;box-shadow:0 12px 26px #18345109}\n.wb-card-label{font-size:10px;font-weight:800;letter-spacing:1.25px;color:#2168bc!important;margin:0 0 24px!important}\n.wb-use-card h3{font-size:22px;margin-bottom:10px}\n.wb-use-card>p:not(.wb-card-label){font-size:14px;min-height:68px;margin-bottom:18px}\n.wb-card-details{border-top:1px solid #e3edf6;padding-top:16px;font-size:13px;margin:0}\n.wb-card-details summary{font-size:13px;color:#2168bc;font-weight:700;cursor:pointer;min-height:28px;list-style:none}\n.wb-card-details summary:after{content:\"+\";float:right;font-size:18px;line-height:22px}\n.wb-card-details[open] summary:after{content:\"\u2212\"}\n.wb-card-details p{margin:12px 0 0}\n.wb-featured:has(.wp-block-query-no-results){display:none}\n.wb-cost{background:linear-gradient(110deg,#f2f8ff,#e7f2ff);border-block:1px solid #dce8f3}\n.wb-premium .wb-cost-grid>.kt-row-column-wrap{grid-template-columns:1fr 1.12fr;gap:80px;padding:0;align-items:start}\n.wb-cost-item{display:flex;gap:20px;border-bottom:1px solid #cbdff2;padding:22px 0}\n.wb-cost-item:first-child{padding-top:0}\n.wb-cost-item:last-child{border:0;padding-bottom:0}\n.wb-cost-number{font-weight:700;color:#2168bc!important;font-size:13px;flex:0 0 24px;margin:3px 0 0}\n.wb-cost-item h3{font-size:20px;margin:0 0 8px}\n.wb-cost-item p:not(.wb-cost-number){font-size:14px;margin:0}\n.wb-source-note{font-size:11px;margin:32px 0 0!important;padding-top:22px;border-top:1px solid #cbdff2;line-height:1.7}\n.wb-faq-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;align-items:start}\n.wb-faq{border:1px solid #dce8f3;border-radius:12px;background:#fff;padding:21px 24px;margin:0}\n.wb-faq summary{font-size:16px;font-weight:650;line-height:1.5;color:#183451;cursor:pointer;list-style:none;position:relative;padding-right:28px;min-height:26px}\n.wb-faq summary:after{content:\"+\";position:absolute;right:0;top:0;color:#2168bc;font-size:22px;font-weight:400}\n.wb-faq[open]{background:#f7fbff;border-color:#bed6ed}\n.wb-faq[open] summary:after{content:\"\u2212\"}\n.wb-faq p{font-size:14px;line-height:1.8;margin:16px 0 0}\n.wb-premium summary::-webkit-details-marker{display:none}\n.wb-directory{background:#f8fbff;border-block:1px solid #e5eef6}\n.wb-operator-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}\n.wb-operator{display:flex;align-items:center;justify-content:center;min-height:74px;border:1px solid #dce8f3;border-radius:10px;background:#fff;font-size:17px;font-weight:700;letter-spacing:-.03em;color:#334d66!important;margin:0!important}\n.wb-directory-bottom{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-top:26px!important}\n.wb-directory-note{max-width:620px;font-size:12px;margin:0!important}\n.wb-text-cta{font-size:13px;font-weight:700;flex-shrink:0;margin:0!important}\n.wb-empty{border:1px dashed #bdd3e8;border-radius:16px;background:linear-gradient(110deg,#f7fbff,#fff);padding:32px;max-width:none}\n.wb-empty-title{font-size:20px;font-weight:700;color:#183451!important;margin-bottom:8px!important}\n.wb-empty p{font-size:15px;max-width:720px}\n.wb-empty p:last-child{margin:0;font-weight:700;font-size:14px}\n.wb-query .wb-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;padding:0;margin:0}\n.wb-post-grid>.wp-block-post{border:1px solid #dce8f3;border-radius:16px;padding:24px;overflow:hidden}\n.wb-post-grid .wp-block-post-featured-image{margin:-24px -24px 20px}\n.wb-post-grid .wp-block-post-featured-image img{width:100%;aspect-ratio:16\/9;object-fit:cover}\n.wb-post-category{font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}\n.wb-post-grid .wp-block-post-title{font-size:22px;margin:0 0 14px}\n.wb-post-grid .wp-block-post-title a{color:#183451;text-decoration:none}\n.wb-post-grid .wp-block-post-excerpt{font-size:14px}\n.wb-method{background:linear-gradient(110deg,#f2f8ff,#fff);border-top:1px solid #dce8f3}\n.wb-premium .wb-method-grid>.kt-row-column-wrap{grid-template-columns:1fr 1.12fr;gap:80px;padding:0}\n.wb-method h3{font-size:20px;margin:0 0 10px}\n.wb-method h3:not(:first-child){margin-top:26px}\n.wb-method-grid .wp-block-kadence-column:last-child p{font-size:14px}\n.wb-method-note{padding-left:16px;border-left:3px solid #287cde;margin-top:24px}\n.wb-footer{background:#fff;border-top:1px solid #dce8f3;padding:52px 0 0}\n.wb-footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:50px;padding-bottom:44px}\n.wb-footer-tagline{font-size:15px;margin:18px 0 0!important}\n.wb-footer-column h3{font-size:13px;letter-spacing:0;margin-bottom:16px}\n.wb-footer-column p{font-size:13px;margin-bottom:9px}\n.wb-footer-column a{text-decoration:none;color:#40566c;display:inline-block;padding:4px 0}\n.wb-footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e5edf5;padding-top:20px;padding-bottom:20px}\n.wb-footer-bottom p{font-size:11px;margin:0}\n.wb-footer-bottom a{color:#40566c;text-decoration:none}\n@media(max-width:1100px){.wb-header-inner{gap:22px}.wb-nav-links{gap:16px}.wb-nav-links a{font-size:12px}.wb-header-cta a{font-size:12px;padding:10px}.wb-premium .wb-hero-grid>.kt-row-column-wrap{gap:36px}.wb-plan-card{padding:25px}.wb-premium h1{font-size:49px}.wb-premium .wb-cost-grid>.kt-row-column-wrap,.wb-premium .wb-method-grid>.kt-row-column-wrap{gap:44px}.wb-directory-bottom{gap:24px}.wb-text-cta{flex-shrink:1}}\n@media(max-width:900px){.wb-header-inner{min-height:82px;flex-wrap:wrap;padding-top:15px;padding-bottom:15px;gap:12px 24px}.wb-desktop-nav{order:3;width:100%;margin-left:0!important}.wb-nav-links{justify-content:space-between}.wb-nav-links a{font-size:13px;padding:4px 0}.wb-header-cta{margin-left:auto!important}.wb-hero{padding-top:48px}.wb-premium .wb-hero-grid>.kt-row-column-wrap{grid-template-columns:1fr;gap:38px}.wb-premium h1{font-size:52px;max-width:670px}.wb-premium .wb-lead{max-width:650px}.wb-plan-card{transform:none;max-width:none;padding:28px}.wb-plan-card:before{display:none}.wb-plan-card .wb-plan-title{font-size:24px}.wb-plan-card .wb-plan-title br{display:none}.wb-step{padding:16px 0}.wb-plan-card .wb-step h3{font-size:17px}.wb-step p:not(.wb-step-number){font-size:14px}.wb-search-panel{margin-top:32px!important;gap:24px;grid-template-columns:1fr;padding:24px}.wb-section{padding:64px 0}.wb-premium .wb-use-grid>.kt-row-column-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.wb-use-card{padding:24px}.wb-premium .wb-cost-grid>.kt-row-column-wrap,.wb-premium .wb-method-grid>.kt-row-column-wrap{grid-template-columns:1fr;gap:34px}.wb-premium h2 br{display:none}.wb-operator-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wb-query .wb-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wb-directory-bottom{align-items:start;flex-direction:column;gap:14px}.wb-footer-top{grid-template-columns:1.2fr 1fr 1fr;gap:24px}.wb-faq{padding:20px}.wb-faq summary{font-size:15px}}\n@media(max-width:600px){.wb-wrap{padding-left:20px;padding-right:20px}.wb-header-inner{min-height:76px;position:relative;gap:10px}.wb-brand a{font-size:27px}.wb-brand small{font-size:8px;margin-left:9px;padding-left:9px;letter-spacing:1px}.wb-desktop-nav,.wb-header-cta{display:none}.wb-mobile-menu{display:block;margin:0 0 0 auto!important}.wb-mobile-menu>summary{cursor:pointer;list-style:none;border:1px solid #b8cee2;border-radius:7px;padding:8px 13px;font-size:13px;color:#183451;font-weight:700;min-height:42px}.wb-mobile-menu>summary:after{content:\" +\";padding-left:7px;color:#2168bc}.wb-mobile-menu[open]>summary:after{content:\" \u2212\"}.wb-mobile-menu[open]{width:100%;margin:0!important}.wb-mobile-menu[open]>summary{position:absolute;right:20px;top:17px}.wb-mobile-menu .wb-nav-links{display:flex;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid #dce8f3;margin-top:8px!important}.wb-mobile-menu .wb-nav-links a{padding:12px 4px;border-bottom:1px solid #e7eff7;font-size:14px}.wb-mobile-menu>p:last-child{margin:12px 0 4px;font-size:14px;font-weight:700}.wb-hero{padding:35px 0 28px}.wb-kicker{font-size:10px;letter-spacing:1.3px}.wb-hero-kicker{font-size:8.5px;letter-spacing:1.1px;gap:8px}.wb-premium h1{font-size:39px;line-height:1.12;letter-spacing:-.045em;margin:19px 0 22px}.wb-premium .wb-lead{font-size:16px;line-height:1.8;margin-bottom:22px}.wb-buttons{gap:10px!important;margin-top:20px}.wb-buttons .wp-block-button{width:100%}.wb-premium .wp-block-button__link{width:100%;padding:15px 14px;font-size:14px}.wb-proof{font-size:10px;line-height:1.9;margin-top:18px!important}.wb-proof span{padding:0 3px}.wb-premium .wb-hero-grid>.kt-row-column-wrap{gap:28px}.wb-plan-card{padding:25px 22px;border-radius:17px}.wb-plan-card .wb-plan-title{font-size:24px;line-height:1.25;margin-bottom:20px}.wb-step{gap:13px}.wb-step-number{flex-basis:34px;height:34px;font-size:11px}.wb-plan-card .wb-step h3{font-size:15px}.wb-step p:not(.wb-step-number){font-size:12px}.wb-plan-note{font-size:10px;line-height:1.7}.wb-search-panel{padding:22px 18px;border-radius:13px;margin-top:24px!important;gap:20px}.wb-search-caption h2{font-size:20px}.wb-search-caption p{font-size:13px}.wb-search .wp-block-search__input{font-size:12px;padding:11px 10px}.wb-search .wp-block-search__button{font-size:12px;padding:10px 15px}.wb-search .wp-block-search__inside-wrapper{gap:7px}.wb-section{padding:52px 0}.wb-premium h2{font-size:31px;line-height:1.2;letter-spacing:-.035em;margin-bottom:16px}.wb-section-lead{font-size:15px}.wb-intro{margin-bottom:28px!important}.wb-premium .wb-use-grid>.kt-row-column-wrap{grid-template-columns:1fr;gap:14px}.wb-use-card{padding:25px;border-radius:14px}.wb-card-label{margin-bottom:19px!important}.wb-use-card h3{font-size:23px}.wb-use-card>p:not(.wb-card-label){min-height:0;font-size:15px}.wb-card-details summary{font-size:14px;min-height:30px}.wb-card-details p{font-size:14px}.wb-premium .wb-cost-grid>.kt-row-column-wrap,.wb-premium .wb-method-grid>.kt-row-column-wrap{gap:32px}.wb-cost-item{gap:13px}.wb-cost-item h3{font-size:21px}.wb-cost-item p:not(.wb-cost-number){font-size:14px}.wb-source-note{font-size:11px}.wb-faq-list{grid-template-columns:1fr;gap:11px}.wb-faq{padding:21px 18px}.wb-faq summary{font-size:15px}.wb-operator-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wb-operator{min-height:64px;font-size:16px}.wb-directory-note{font-size:12px}.wb-text-cta{font-size:14px}.wb-empty{padding:25px 22px}.wb-empty .wb-empty-title{font-size:20px}.wb-empty p{font-size:14px}.wb-query .wb-post-grid{grid-template-columns:1fr}.wb-method h3{font-size:21px}.wb-method-grid .wp-block-kadence-column:last-child p{font-size:14px}.wb-footer{padding-top:36px}.wb-footer-top{grid-template-columns:1fr 1fr;gap:30px 18px;padding-bottom:30px}.wb-footer-brand{grid-column:1\/-1}.wb-footer-tagline{font-size:14px;margin-top:12px!important}.wb-footer-tagline br{display:none}.wb-footer-column h3{font-size:14px}.wb-footer-column p{font-size:12px}.wb-footer-column a{overflow-wrap:anywhere}.wb-footer-bottom{flex-direction:column;gap:8px;padding-top:18px;padding-bottom:24px}}\n@media(max-width:359px){.wb-wrap{padding-left:16px;padding-right:16px}.wb-premium h1{font-size:35px}.wb-hero-kicker{font-size:7.5px;letter-spacing:.7px}.wb-premium h2{font-size:28px}.wb-plan-card{padding:22px 18px}.wb-use-card{padding:23px}.wb-search-panel{padding:19px 15px}.wb-proof{font-size:9px}.wb-search .wp-block-search__button{padding:10px 11px}.wb-mobile-menu[open]>summary{right:16px}.wb-footer-top{gap:28px 15px}.wb-operator{font-size:15px}}\n@media(prefers-reduced-motion:reduce){.wb-premium *{transition:none!important;scroll-behavior:auto!important}}\n\/* Nadpisanie stylu przycisku wyszukiwania z motywu, tylko w tym projekcie. *\/\n.wb-premium .wb-search .wp-block-search__button{background:#183451!important;color:#fff!important;border:1px solid #183451!important}\n.wb-premium .wb-search .wp-block-search__button:hover{background:#2168bc!important;border-color:#2168bc!important}\n.wb-premium .wb-empty .wb-empty-title{font-size:20px}\n@media(max-width:600px){.wb-hero-kicker{font-size:10px;letter-spacing:1px}.wb-proof{font-size:11px}.wb-plan-note{font-size:11px}.wb-card-label{font-size:11px}.wb-source-note{font-size:12px}.wb-footer-bottom p{font-size:12px}}\n\n.wb-article{--wb-ink:#183451;--wb-text:#40566c;background:#fff;color:var(--wb-text)}\n.wb-article .wb-article-main{max-width:900px;margin:0 auto;padding:58px 36px 72px;min-width:0;font-size:18px;line-height:1.8}\n.wb-article .wb-article-main>*,.wb-article .wb-article-main>.wp-block-group__inner-container>*{margin:0 0 24px}\n.wb-article .wb-article-main h1{font-size:clamp(31px,4.1vw,55px);line-height:1.13;letter-spacing:-1.7px;color:#183451;margin:18px 0 26px;font-weight:750;max-width:none}\n.wb-article .wb-article-main h2{font-size:31px;line-height:1.24;letter-spacing:-.6px;margin:54px 0 20px;color:#183451;scroll-margin-top:36px}\n.wb-article .wb-article-main h3{font-size:24px;line-height:1.3;margin:34px 0 16px;color:#183451}\n.wb-article .wb-article-main a{color:#2168bc;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}\n.wb-article .wb-article-main p{font-size:inherit;line-height:inherit;color:inherit}\n.wb-article .wb-article-main .wb-article-lead{font-size:21px;line-height:1.65;color:#183451}\n.wb-article .wb-article-main .wb-article-meta{font-size:14px;color:#40566c;border-top:1px solid #dce6ef;padding-top:20px}\n.wb-article .wb-article-main .wb-article-disclosure,.wb-article .wb-article-main .wb-article-note{font-size:15px;line-height:1.7;background:#f2f8ff;padding:20px 24px;border-radius:14px}\n.wb-article .wb-article-main .wp-block-image{margin:32px 0;max-width:100%}\n.wb-article .wb-article-main .wp-block-image img{height:auto;width:100%;display:block;border-radius:20px}\n.wb-article .wb-article-main .wb-article-diagram{max-width:700px;margin:40px auto}\n.wb-article .wb-article-main figcaption{color:#40566c;font-size:14px;line-height:1.6;margin-top:12px;text-align:left}\n.wb-article .wb-article-main .wb-toc{background:#f2f8ff;border:1px solid #dceeff;border-radius:18px;padding:26px 26px 26px 52px;columns:2;column-gap:42px;font-size:16px;line-height:1.6}\n.wb-article .wb-article-main li{padding-left:4px;margin-bottom:11px;break-inside:avoid}\n.wb-article .wb-article-main ul,.wb-article .wb-article-main ol{margin-left:0;padding-left:26px}\n.wb-article .wb-article-main .wp-block-table{max-width:100%;margin:28px 0;overflow-x:auto;border:1px solid #dce6ef;border-radius:14px}\n.wb-article .wb-article-main table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.65;table-layout:fixed;margin:0;border:0}\n.wb-article .wb-article-main th,.wb-article .wb-article-main td{padding:15px 13px;border:0;border-bottom:1px solid #dce6ef;vertical-align:top;overflow-wrap:break-word;hyphens:auto;text-align:left}\n.wb-article .wb-article-main th{background:#e8f3ff;color:#183451;font-weight:700}\n.wb-article .wb-article-main tr:nth-child(even){background:#f8fbff}\n.wb-article .wb-article-main .wp-block-table figcaption{padding:12px 16px;margin:0;background:#f2f8ff;font-size:13px}\n.wb-article .wb-article-main .wb-final-cta{padding:28px;border-radius:18px;background:linear-gradient(120deg,#f2f8ff,#dceeff);text-align:center}\n.wb-article .wb-article-main .wb-final-cta a{display:inline-block;padding:15px 23px;background:#2168bc;color:white;border-radius:10px;text-decoration:none;font-weight:700;line-height:1.5}\n.wb-article .wb-article-main code{font-size:.9em;color:#183451;background:#eef4fa;padding:2px 5px}\n.wb-article .wb-article-main strong{color:#183451}\n.wb-article .wb-article-main .wb-kicker{font-size:12px;letter-spacing:1.1px;line-height:1.6;color:#2168bc}\nbody:has(.wb-article) .entry-related,body:has(.wb-article) .post-navigation,body:has(.wb-article) .entry-author,body:has(.wb-article) .comments-area{display:none}\n@media(max-width:767px){.wb-article .wb-article-main{padding:36px 24px 48px;font-size:17px;line-height:1.8}.wb-article .wb-article-main h1{letter-spacing:-.9px}.wb-article .wb-article-main h2{font-size:27px;margin-top:42px}.wb-article .wb-article-main .wb-article-lead{font-size:19px}.wb-article .wb-article-main .wb-toc{columns:1;padding:23px 24px 23px 44px}.wb-article .wb-article-main .wb-final-cta{padding:20px}.wb-article .wb-article-main table{font-size:13px;line-height:1.6}.wb-article .wb-article-main th,.wb-article .wb-article-main td{padding:10px 7px}.wb-article .wb-article-main .wb-article-note,.wb-article .wb-article-main .wb-article-disclosure{padding:16px}}\n@media(max-width:359px){.wb-article .wb-article-main{padding:30px 16px 42px}.wb-article .wb-article-main h1{font-size:30px}.wb-article .wb-article-main h2{font-size:25px}.wb-article .wb-article-main table{font-size:12px}.wb-article .wb-article-main th,.wb-article .wb-article-main td{padding:9px 5px}.wb-article .wb-article-main .wb-final-cta a{padding:13px}}\n\n\n\/* Etap 3: oryginalny znak WebBay, zachowane proporcje. *\/\n.wb-premium .wb-brand{margin:0!important;flex-shrink:0}\n.wb-premium .wb-brand img{display:block;width:180px!important;height:auto!important;max-width:100%;border-radius:0}\n.wb-premium .wb-brand a{display:block;line-height:0}\n.wb-article .wb-mid-cta{background:linear-gradient(120deg,#f2f8ff,#dceeff);border:1px solid #d1e4f7;border-radius:18px;padding:28px;margin:32px 0!important}\n.wb-article .wb-mid-cta h3{margin:0 0 12px;font-size:26px}\n.wb-article .wb-mid-cta p{margin:0 0 18px}\n.wb-article .wb-mid-cta .wp-block-button__link{color:#fff!important;text-decoration:none!important}\n@media(max-width:600px){.wb-premium .wb-brand img{width:156px!important}.wb-article .wb-mid-cta{padding:22px}.wb-article .wb-mid-cta h3{font-size:24px}}\n\n<\/style>\n\n\n<div id=\"poczatek\" class=\"wp-block-group wb-premium wb-article\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<header class=\"wp-block-group wb-header\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group wb-wrap wb-header-inner\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-image size-full wb-brand\"><a href=\"https:\/\/webbay.pl\/blog\/\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"200\" src=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/logo_templatemonster.jpg\" alt=\"WebBay \u2014 strona g\u0142\u00f3wna bloga\" class=\"wp-image-24\" srcset=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/logo_templatemonster.jpg 600w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/logo_templatemonster-300x100.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n<nav class=\"wp-block-group wb-desktop-nav\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wb-nav-links wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/blog\/#zastosowania\">Zastosowania<\/a> <a href=\"https:\/\/webbay.pl\/blog\/#koszty\">Ceny i odnowienia<\/a> <a href=\"https:\/\/webbay.pl\/blog\/#problemy\">Pomoc<\/a> <a href=\"https:\/\/webbay.pl\/blog\/#operatorzy\">Operatorzy<\/a><\/p>\n\n<\/div><\/nav>\n\n\n<details class=\"wp-block-details wb-mobile-menu is-layout-flow wp-block-details-is-layout-flow\"><summary>Menu<\/summary>\n<p class=\"wb-nav-links wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/blog\/#zastosowania\">Zastosowania<\/a> <a href=\"https:\/\/webbay.pl\/blog\/#koszty\">Ceny i odnowienia<\/a> <a href=\"https:\/\/webbay.pl\/blog\/#problemy\">Pomoc<\/a> <a href=\"https:\/\/webbay.pl\/blog\/#operatorzy\">Operatorzy<\/a><\/p>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/ranking-hostingow\/\">Ranking hosting\u00f3w \u2192<\/a><\/p>\n\n<\/details>\n\n\n<p class=\"wb-header-cta wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/ranking-hostingow\/\">Zobacz ranking <span aria-hidden=\"true\">\u2197<\/span><\/a><\/p>\n\n<\/div><\/div>\n\n<\/div><\/header>\n\n\n<div class=\"wp-block-group wb-article-main\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h1 class=\"wp-block-heading\">Hosting PHP i MySQL: 7 wymaga\u0144 w\u0142asnej aplikacji<\/h1>\n\n\n<p class=\"wp-block-paragraph\"><strong>Hosting PHP i MySQL wybierz na podstawie wymaga\u0144 konkretnej aplikacji: wersji interpretera dla WWW i terminala, rozszerze\u0144, silnika bazy oraz sposobu uruchamiania zada\u0144.<\/strong> Sam napis \u201ePHP i nielimitowane bazy\u201d nie potwierdza zgodno\u015bci. W\u0142asna aplikacja mo\u017ce potrzebowa\u0107 Composera, zmiany katalogu publicznego lub proces\u00f3w, kt\u00f3rych zwyk\u0142y pakiet nie pozwala utrzymywa\u0107.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Najpierw przygotuj kr\u00f3tk\u0105 specyfikacj\u0119 z wykonawc\u0105, potem por\u00f3wnuj dostawc\u00f3w. Poni\u017cej przechodzimy przez t\u0119 czynno\u015b\u0107 na przyk\u0142adzie niewielkiego systemu obs\u0142ugi zapyta\u0144. Nie jest to kolejny poradnik wyboru WordPressa: licz\u0105 si\u0119 zale\u017cno\u015bci Twojego kodu i spos\u00f3b wdro\u017cenia.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" loading=\"eager\" decoding=\"async\" src=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-okladka-premium.webp\" alt=\"Aplikacja PHP: bia\u0142e modu\u0142y kodu, baza danych i zegar zada\u0144 po\u0142\u0105czone w jeden uk\u0142ad\" width=\"1200\" height=\"675\" class=\"wp-image-689\" srcset=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-okladka-premium.webp 1200w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-okladka-premium-300x169.webp 300w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-okladka-premium-1024x576.webp 1024w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-okladka-premium-768x432.webp 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n<h2 id=\"spis-tresci\" class=\"wp-block-heading\">W tym poradniku<\/h2>\n\n\n<ol class=\"wp-block-list wb-toc\"><li><a href=\"#specyfikacja\">Hosting PHP: 7 sprawdzalnych wymaga\u0144 aplikacji<\/a><\/li><li><a href=\"#przyklad\">Przyk\u0142ad: panel zapyta\u0144, eksport CSV i codzienny raport<\/a><\/li><li><a href=\"#dwa-php\">Dlaczego PHP w przegl\u0105darce mo\u017ce by\u0107 inne ni\u017c w terminalu?<\/a><\/li><li><a href=\"#ograniczony-raport-php\">Praktyczny przyk\u0142ad: WWW dzia\u0142a, a Composer zg\u0142asza brak zgodno\u015bci<\/a><\/li><li><a href=\"#baza\">MySQL i MariaDB: podobie\u0144stwo nazwy nie zast\u0119puje pr\u00f3by<\/a><\/li><li><a href=\"#composer-wdrozenie\">Hosting PHP: Composer, katalog public i aktualizacje<\/a><\/li><li><a href=\"#cron-worker\">Cron to nie stale dzia\u0142aj\u0105ca kolejka<\/a><\/li><li><a href=\"#wynik-kontroli\">Jak zako\u0144czy\u0107 ocen\u0119 oferty bez zgadywania?<\/a><\/li><\/ol>\n\n\n<h2 id=\"specyfikacja\" class=\"wp-block-heading\">Hosting PHP: 7 sprawdzalnych wymaga\u0144 aplikacji<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Popro\u015b wykonawc\u0119 o pliki <code>composer.json<\/code> i <code>composer.lock<\/code>, instrukcj\u0119 uruchomienia, wymagania bazy oraz list\u0119 zada\u0144 w tle. Plik lock zapisuje wybrane wersje pakiet\u00f3w; nie wystarczy sama informacja, \u017ce program \u201ekorzysta z Composera\u201d. Zapisz tak\u017ce obs\u0142ugiwan\u0105 wersj\u0119 aplikacji i termin jej aktualizacji.<\/p>\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Warstwa<\/th><th>Co potwierdzi\u0107<\/th><th>Przyk\u0142ad odpowiedzi, kt\u00f3ra pomaga<\/th><\/tr><\/thead><tbody><tr><td>PHP WWW<\/td><td>Zakres wersji i rozszerzenia<\/td><td>Wymagana ga\u0142\u0105\u017a z pliku projektu oraz PDO MySQL i mbstring<\/td><\/tr><tr><td>PHP CLI<\/td><td>Wersja i \u015bcie\u017cka interpretera dla polece\u0144<\/td><td>Osobna komenda wskazana przez operatora, zgodna z projektem<\/td><\/tr><tr><td>Baza<\/td><td>Silnik, wersja, kodowanie, uprawnienia<\/td><td>MySQL 8.4 lub odr\u0119bnie przetestowana wersja MariaDB<\/td><\/tr><tr><td>Wdro\u017cenie<\/td><td>SSH, Composer lub gotowy pakiet z zale\u017cno\u015bciami<\/td><td>Udokumentowana metoda aktualizacji z pliku lock<\/td><\/tr><tr><td>Katalog WWW<\/td><td>Mo\u017cliwo\u015b\u0107 wskazania katalogu publicznego<\/td><td>Domena udost\u0119pnia tylko folder public aplikacji<\/td><\/tr><tr><td>Zadania<\/td><td>Cron lub sta\u0142y proces<\/td><td>Eksport uruchamiany okresowo; nie bezterminowy worker<\/td><\/tr><tr><td>Odtworzenie<\/td><td>Pliki, baza i spos\u00f3b przywr\u00f3cenia<\/td><td>Sp\u00f3jny komplet oraz osoba odpowiedzialna za kontrol\u0119 wyniku<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Hosting PHP \u2014 karta zgodno\u015bci w\u0142asnej aplikacji do uzupe\u0142nienia przed zakupem<\/figcaption><\/figure>\n\n\n<p class=\"wp-block-paragraph\">Wersja \u201eod 5.6 do 8.5\u201d w ofercie nie oznacza, \u017ce wszystkie ga\u0142\u0119zie maj\u0105 ten sam stan wsparcia. Z oficjalnego kalendarza PHP odczytanego 30.10.2026 wynika m.in. wsparcie bezpiecze\u0144stwa PHP 8.3 do ko\u0144ca 2027 r. i PHP 8.4 do ko\u0144ca 2028 r. Wybieraj ga\u0142\u0105\u017a obs\u0142ugiwan\u0105 przez aplikacj\u0119 i producenta, a nie najstarsz\u0105 wersj\u0119, na kt\u00f3rej kod uda\u0142o si\u0119 kiedy\u015b uruchomi\u0107.<\/p>\n\n\n<h2 id=\"przyklad\" class=\"wp-block-heading\">Przyk\u0142ad: panel zapyta\u0144, eksport CSV i codzienny raport<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Modelowa aplikacja przechowuje zapytania klient\u00f3w, zapisuje za\u0142\u0105czniki i raz dziennie przygotowuje raport. Jej wykonawca okre\u015bli\u0142 PHP 8.3 lub nowsz\u0105 zgodn\u0105 wersj\u0119 z ga\u0142\u0119zi 8, PDO MySQL i mbstring. U\u017cywa MySQL 8.4, kodowania utf8mb4 oraz jednego kr\u00f3tkiego zadania uruchamianego przez cron. To jawny przyk\u0142ad wymaga\u0144, nie opis wdro\u017conego systemu klienta.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Fragment <code>composer.json<\/code> mo\u017ce wygl\u0105da\u0107 tak:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"require\": {\n    \"php\": \"^8.3\",\n    \"ext-pdo\": \"*\",\n    \"ext-pdo_mysql\": \"*\",\n    \"ext-mbstring\": \"*\"\n  }\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Nie dopisuj rozszerze\u0144 na podstawie nazwy aplikacji. Wymagania generatora PDF, pracy z obrazami albo integracji mog\u0105 by\u0107 inne. Je\u015bli projekt wymaga programu systemowego, kt\u00f3rego nie da si\u0119 zainstalowa\u0107 na koncie, og\u00f3lna zgodno\u015b\u0107 PHP nie rozwi\u0105zuje problemu. Uzyskaj nazw\u0119, wersj\u0119 i spos\u00f3b uruchamiania tej zale\u017cno\u015bci przed wyborem planu.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Dla tak okre\u015blonego projektu gotowy hosting PHP mo\u017ce wystarczy\u0107, je\u015bli obs\u0142uguje ca\u0142y zestaw, zadanie mie\u015bci si\u0119 w jego ograniczeniach, a dane maj\u0105 bezpieczny katalog. Je\u015bli potrzebny jest stale dzia\u0142aj\u0105cy worker, niestandardowy serwis lub uprawnienia systemowe, sprawd\u017a odpowiedni\u0105 us\u0142ug\u0119 aplikacyjn\u0105 albo VPS. <a href=\"https:\/\/webbay.pl\/blog\/2026\/10\/28\/vps-czy-hosting-wspoldzielony\/\">Rozdzielenie hostingu i VPS<\/a> pomaga przypisa\u0107 tak\u017ce obowi\u0105zek administracji.<\/p>\n\n\n<h2 id=\"dwa-php\" class=\"wp-block-heading\">Dlaczego PHP w przegl\u0105darce mo\u017ce by\u0107 inne ni\u017c w terminalu?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Panel mo\u017ce zmienia\u0107 interpreter dla jednej domeny, natomiast komenda <code>php<\/code> w SSH mo\u017ce wskazywa\u0107 inn\u0105 instalacj\u0119 i konfiguracj\u0119. Cron r\u00f3wnie\u017c mo\u017ce u\u017cywa\u0107 innej \u015bcie\u017cki. Nie uznawaj poprawnego ekranu startowego aplikacji za sprawdzenie Composera i zada\u0144 okresowych.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Na w\u0142asnym koncie testowym wykonawca mo\u017ce zacz\u0105\u0107 od odczytowych polece\u0144:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>php -v\nphp -m\ncomposer check-platform-reqs --lock --no-dev<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Pierwsze dwa pokazuj\u0105 wersj\u0119 i modu\u0142y CLI. Ostatnie sprawdza wymagania zapisane w pliku lock; polecenie uruchamiaj w katalogu w\u0142a\u015bciwego projektu. Je\u017celi operator wymaga innej komendy PHP lub uruchomienia <code>composer.phar<\/code> wskazanym interpreterem, u\u017cyj dok\u0142adnie jego \u015bcie\u017cki. Nie zgaduj jej po przyk\u0142adzie z innej firmy. Pierwsze po\u0142\u0105czenie i sprawdzenie narz\u0119dzi opisuje <a href=\"https:\/\/webbay.pl\/blog\/2026\/10\/30\/hosting-z-ssh\/\">instrukcja wyboru hostingu z SSH<\/a>.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Wynik CLI trzeba zestawi\u0107 z konfiguracj\u0105 WWW. Popro\u015b o potwierdzenie wersji i rozszerze\u0144 domeny albo sprawd\u017a ograniczony raport diagnostyczny w chronionej kopii testowej. Nie zostawiaj publicznego <code>phpinfo()<\/code>: potrafi ujawni\u0107 du\u017co wi\u0119cej konfiguracji, ni\u017c potrzeba do wyboru hostingu. Po kontroli usu\u0144 plik diagnostyczny.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Brakuj\u0105cego rozszerzenia nie naprawiaj przez <code>--ignore-platform-reqs<\/code>. Taka opcja pomija wymagania podczas instalowania pakiet\u00f3w; nie dodaje modu\u0142u do serwera i nie dowodzi, \u017ce aplikacja b\u0119dzie dzia\u0142a\u0107. Potrzebne jest udost\u0119pnienie zale\u017cno\u015bci, zmiana zgodnej konfiguracji lub wyb\u00f3r innej us\u0142ugi.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-diagram-praktyczny-v2.webp\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-diagram-praktyczny-v2.webp\" alt=\"Hosting PHP: por\u00f3wnanie przyk\u0142adowego PHP WWW i PHP CLI z wymaganiami projektu\" width=\"1000\" height=\"1304\" class=\"wp-image-794\" srcset=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-diagram-praktyczny-v2.webp 1000w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-diagram-praktyczny-v2-230x300.webp 230w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-diagram-praktyczny-v2-785x1024.webp 785w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/webbay-wb71-diagram-praktyczny-v2-768x1001.webp 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><figcaption class=\"wp-element-caption\">Odczyty s\u0105 przyk\u0142adem, nie wynikiem testu hostingu.<\/figcaption><\/figure>\n\n\n<h2 id=\"ograniczony-raport-php\" class=\"wp-block-heading\">Praktyczny przyk\u0142ad: WWW dzia\u0142a, a Composer zg\u0142asza brak zgodno\u015bci<\/h2>\n\n\n<p class=\"wp-block-paragraph\">W opisanym panelu zapyta\u0144 aplikacja wymaga PHP z zakresu <code>^8.3<\/code>, PDO MySQL i mbstring. Za\u0142\u00f3\u017cmy, \u017ce domena dzia\u0142a na PHP 8.4, natomiast domy\u015blna konsola u\u017cywa PHP 8.1 bez mbstring. Strona startowa mo\u017ce si\u0119 otworzy\u0107, a kontrola Composera uruchomiona w pow\u0142oce s\u0142usznie odrzuci \u015brodowisko. Nie jest to sprzeczny wynik testu tej samej konfiguracji: sprawdzasz dwa r\u00f3\u017cne procesy.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Na odizolowanej kopii wykonawca mo\u017ce utworzy\u0107 kr\u00f3tki plik <code>diag-wymagania.php<\/code> w katalogu obs\u0142ugiwanym przez testow\u0105 domen\u0119. Najpierw ogranicza dost\u0119p do ca\u0142ej kopii, np. autoryzacj\u0105 lub w\u0142a\u015bciw\u0105 list\u0105 adres\u00f3w. Niepublikowany adres ani nietypowa nazwa pliku nie s\u0105 zabezpieczeniem. Je\u017celi host nie pozwala bezpiecznie ograniczy\u0107 raportu, popro\u015b o potwierdzenie tych warto\u015bci przez pomoc zamiast wystawia\u0107 diagnostyk\u0119 publicznie.<\/p>\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nheader(&#x27;Content-Type: application\/json; charset=utf-8&#x27;);\necho json_encode([\n    &#x27;php&#x27; =&gt; PHP_VERSION,\n    &#x27;sapi&#x27; =&gt; PHP_SAPI,\n    &#x27;pdo_mysql&#x27; =&gt; extension_loaded(&#x27;pdo_mysql&#x27;),\n    &#x27;mbstring&#x27; =&gt; extension_loaded(&#x27;mbstring&#x27;),\n], JSON_PRETTY_PRINT);\n<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Otw\u00f3rz chroniony adres przez przegl\u0105dark\u0119 i zapisz cztery wskazane wyniki. Ten skrypt nie pokazuje hase\u0142, zmiennych \u015brodowiska ani pe\u0142nego <code>phpinfo()<\/code>, lecz informacj\u0119 o wersji nadal nale\u017cy chroni\u0107. Nast\u0119pnie w katalogu w\u0142a\u015bciwego projektu por\u00f3wnaj je z <code>php -v<\/code>, <code>php -m<\/code> oraz kontrol\u0105 <code>composer check-platform-reqs --lock --no-dev<\/code>.<\/p>\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Kontrola w przyk\u0142adzie<\/th><th>WWW<\/th><th>Domy\u015blne CLI<\/th><\/tr><\/thead><tbody><tr><td>Wersja PHP<\/td><td>8.4<\/td><td>8.1<\/td><\/tr><tr><td>PDO MySQL<\/td><td>obecne<\/td><td>obecne<\/td><\/tr><tr><td>mbstring<\/td><td>obecne<\/td><td>brak<\/td><\/tr><tr><td>Czy spe\u0142nia opisany zestaw?<\/td><td>te trzy warunki tak<\/td><td>nie: wersja i mbstring<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Hipotetyczne odczyty pokazuj\u0105ce spos\u00f3b rozpoznania problemu. Nie potwierdzaj\u0105 dzia\u0142ania ca\u0142ej aplikacji ani po\u0142\u0105czenia z baz\u0105.<\/figcaption><\/figure>\n\n\n<p class=\"wp-block-paragraph\">Przeka\u017c operatorowi konkretn\u0105 rozbie\u017cno\u015b\u0107 i nazw\u0119 pakietu. Ustal wspieran\u0105 \u015bcie\u017ck\u0119 PHP dla Composera i crona oraz mo\u017cliwo\u015b\u0107 do\u0142\u0105czenia brakuj\u0105cego modu\u0142u. Potem powt\u00f3rz sprawdzenie i pojedynczy raport aplikacji na testowych danych. Nie zmieniaj globalnego PHP innych witryn i nie obchod\u017a kontroli zale\u017cno\u015bci. Po rozpoznaniu usu\u0144 plik diagnostyczny; wersje i metod\u0119 odczytu zachowaj w prywatnej dokumentacji projektu.<\/p>\n\n\n<h2 id=\"baza\" class=\"wp-block-heading\">MySQL i MariaDB: podobie\u0144stwo nazwy nie zast\u0119puje pr\u00f3by<\/h2>\n\n\n<p class=\"wp-block-paragraph\">W ofercie \u201ebaza MySQL\u201d mo\u017ce oznacza\u0107 r\u00f3\u017cne wersje lub kompatybilny silnik MariaDB. Potwierd\u017a dok\u0142adny produkt i wersj\u0119. W\u0142asny kod mo\u017ce korzysta\u0107 z konkretnej sk\u0142adni, funkcji, kolacji, indeks\u00f3w lub trybu SQL. Nie zamieniaj tych \u015brodowisk w ciemno na podstawie deklaracji og\u00f3lnej zgodno\u015bci.<\/p>\n\n\n<p class=\"wp-block-paragraph\">PDO jest interfejsem dost\u0119pu do baz, ale wymaga sterownika w\u0142a\u015bciwego dla silnika. Obecno\u015b\u0107 samego PDO bez PDO MySQL nie rozstrzyga, czy program po\u0142\u0105czy si\u0119 z baz\u0105. Analogicznie dost\u0119pno\u015b\u0107 sterownika nie potwierdza poprawno\u015bci schematu i zapyta\u0144 aplikacji.<\/p>\n\n\n<p class=\"wp-block-paragraph\">W testowej bazie mo\u017cna odczyta\u0107 wersj\u0119 i tryb SQL:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>SELECT VERSION(), @@sql_mode;<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Pr\u00f3b\u0119 importu wykonuj do nowej, oddzielnej bazy z osobnym u\u017cytkownikiem. Zanim uruchomisz kopi\u0119 aplikacji, ustaw jej docelowe po\u0142\u0105czenie i odetnij produkcyjne integracje. Zgodno\u015b\u0107 potwierd\u017a zapisem, odczytem, sortowaniem i wyszukiwaniem reprezentatywnych danych, w tym polskich znak\u00f3w. Sam poprawny import nie wykryje ka\u017cdego problemu zapytania.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Do por\u00f3wnania dopisz maksymalny rozmiar pojedynczej bazy, liczb\u0119 po\u0142\u0105cze\u0144 i uprawnienia potrzebne do aktualizacji schematu. Dziesi\u0119\u0107 baz po 1 GB nie daje jednej bazy 10 GB. Je\u015bli import lub raport jest ci\u0119\u017cki, sprawd\u017a tak\u017ce granice czasu i pami\u0119ci. Ich znaczenie wyja\u015bnia <a href=\"https:\/\/webbay.pl\/blog\/2026\/10\/28\/limity-hostingu-cpu-ram-php\/\">poradnik limit\u00f3w konta i PHP<\/a>.<\/p>\n\n\n<h2 id=\"composer-wdrozenie\" class=\"wp-block-heading\">Hosting PHP: Composer, katalog public i aktualizacje<\/h2>\n\n\n<p class=\"wp-block-paragraph\">W\u0142a\u015bciwe pytanie do wykonawcy brzmi: \u201eJak przygotujesz i wdro\u017cysz powtarzalny pakiet aplikacji?\u201d. Mo\u017cna u\u017cywa\u0107 Composera na serwerze, je\u017celi hosting daje potrzebny dost\u0119p, pami\u0119\u0107 i czas. Mo\u017cna te\u017c budowa\u0107 artefakt poza hostingiem w zgodnym \u015brodowisku i wgrywa\u0107 komplet zale\u017cno\u015bci. Druga metoda wymaga potwierdzenia zgodno\u015bci platformy i procedury aktualizacji; samo FTP jej nie zapewnia.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Przy istniej\u0105cym pliku lock polecenie <code>composer install<\/code> s\u0142u\u017cy do instalowania zapisanych wersji zale\u017cno\u015bci. <code>composer update<\/code> mo\u017ce zmieni\u0107 wybrane wersje i plik lock, dlatego nie powinno by\u0107 przypadkowym krokiem ka\u017cdej aktualizacji na dzia\u0142aj\u0105cej produkcji. Nowe zale\u017cno\u015bci przygotuj i sprawd\u017a przed wdro\u017ceniem.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Je\u017celi aplikacja ma katalog <code>public<\/code>, potwierd\u017a mo\u017cliwo\u015b\u0107 ustawienia go jako katalogu dokument\u00f3w domeny. Pliki konfiguracyjne, logi, repozytorium i kopie nie powinny stawa\u0107 si\u0119 publiczne tylko dlatego, \u017ce ca\u0142y projekt wgrano pod adres WWW. Nie zast\u0119puj poprawnego katalogu sztuczk\u0105 przekierowuj\u0105c\u0105 u\u017cytkownika, kt\u00f3ra pozostawi inne pliki dost\u0119pne po bezpo\u015brednim URL.<\/p>\n\n\n<h2 id=\"cron-worker\" class=\"wp-block-heading\">Cron to nie stale dzia\u0142aj\u0105ca kolejka<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Cron uruchamia komend\u0119 wed\u0142ug harmonogramu. Do raportu raz dziennie mo\u017ce by\u0107 wystarczaj\u0105cy, ale trzeba potwierdzi\u0107 minimalny interwa\u0142, limit czasu i nak\u0142adanie zada\u0144. Zadanie powinno zapisywa\u0107 wynik i b\u0142\u0105d w bezpiecznym miejscu oraz nie uruchamia\u0107 drugiej kopii tej samej d\u0142ugiej pracy bez kontroli.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Stale dzia\u0142aj\u0105cy worker kolejki, WebSocket lub inny proces nadzorowany to inne wymaganie. Dost\u0119p SSH i obecno\u015b\u0107 crona nie gwarantuj\u0105 prawa do pozostawienia takiego procesu na zawsze. Zapytaj, kto go uruchomi po restarcie, jak b\u0119dzie monitorowany i czy model jest zgodny z warunkami us\u0142ugi. Nie maskuj problemu niesko\u0144czon\u0105 p\u0119tl\u0105 w skrypcie uruchamianym co minut\u0119.<\/p>\n\n\n<h2 id=\"wynik-kontroli\" class=\"wp-block-heading\">Jak zako\u0144czy\u0107 ocen\u0119 oferty bez zgadywania?<\/h2>\n\n\n<ol class=\"wp-block-list\"><li>Zapisz wersj\u0119 aplikacji, wymagania z plik\u00f3w projektu i rzeczywisty silnik bazy.<\/li><li>Uzyskaj odpowiedzi operatora dla WWW, CLI, rozszerze\u0144, katalogu public i zada\u0144.<\/li><li>Przygotuj chronion\u0105, odseparowan\u0105 pr\u00f3b\u0119 z osobn\u0105 baz\u0105 i testowymi integracjami.<\/li><li>Sprawd\u017a wymagania platformy, import, logowanie, zapis rekordu, za\u0142\u0105cznik i pojedyncze zadanie raportu.<\/li><li>Zapisz wynik ka\u017cdej czynno\u015bci oraz plan wycofania aktualizacji plik\u00f3w i bazy. Kopia bez instrukcji odtworzenia jest niepe\u0142nym planem utrzymania.<\/li><li>Por\u00f3wnaj cen\u0119 wy\u0142\u0105cznie ofert, kt\u00f3re przesz\u0142y niezb\u0119dne wymagania. Element niepotwierdzony pozostaje pytaniem, nie domy\u015blnym \u201etak\u201d.<\/li><\/ol>\n\n\n<p class=\"wp-block-paragraph\">Gdy masz gotow\u0105 kart\u0119 zgodno\u015bci, <a href=\"https:\/\/webbay.pl\/ranking-hostingow\/\">wykorzystaj ranking WebBay do por\u00f3wnania kandydat\u00f3w na hosting WWW<\/a>. Obecno\u015b\u0107 operatora w rankingu nie gwarantuje zgodno\u015bci ka\u017cdego planu z Twoim kodem. Potwierdzona funkcja i odtwarzalny spos\u00f3b utrzymania s\u0105 wa\u017cniejsze ni\u017c etykieta \u201ehosting dla programisty\u201d.<\/p>\n\n\n<h2 id=\"zrodla\" class=\"wp-block-heading\">\u0179r\u00f3d\u0142a i data weryfikacji<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Dokumentacja odczytana 30.10.2026. Fragment projektu jest przyk\u0142adem WebBay; polecenia opisuj\u0105 kontrol\u0119 w\u0142asnego \u015brodowiska, a nie wykonany test konkretnego operatora.<\/p>\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.php.net\/supported-versions.php\" target=\"_blank\" rel=\"noopener\">PHP \u2014 aktualny kalendarz wspieranych ga\u0142\u0119zi<\/a>.<\/li><li><a href=\"https:\/\/www.php.net\/manual\/en\/features.commandline.php\" target=\"_blank\" rel=\"noopener\">PHP \u2014 interpreter wiersza polece\u0144<\/a>.<\/li><li><a href=\"https:\/\/www.php.net\/manual\/en\/pdo.drivers.php\" target=\"_blank\" rel=\"noopener\">PHP \u2014 sterowniki PDO<\/a>.<\/li><li><a href=\"https:\/\/getcomposer.org\/doc\/03-cli.md#check-platform-reqs\" target=\"_blank\" rel=\"noopener\">Composer \u2014 install, update i sprawdzanie rzeczywistej platformy<\/a>.<\/li><li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.4\/en\/charset-unicode-utf8mb4.html\" target=\"_blank\" rel=\"noopener\">MySQL \u2014 kodowanie utf8mb4<\/a>.<\/li><li><a href=\"https:\/\/docs.cpanel.net\/cpanel\/advanced\/cron-jobs\/\" target=\"_blank\" rel=\"noopener\">cPanel \u2014 zadania cron i unikanie nak\u0142adaj\u0105cych si\u0119 wywo\u0142a\u0144<\/a>.<\/li><li><a href=\"https:\/\/www.php.net\/manual\/en\/function.extension-loaded.php\" target=\"_blank\" rel=\"noopener\">PHP \u2014 sprawdzenie obecno\u015bci pojedynczego rozszerzenia<\/a>.<\/li><li><a href=\"https:\/\/www.php.net\/manual\/en\/reserved.constants.php\" target=\"_blank\" rel=\"noopener\">PHP \u2014 znaczenie PHP_VERSION i PHP_SAPI<\/a>.<\/li><\/ul>\n\n<\/div><\/div>\n\n<footer class=\"wp-block-group wb-footer\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group wb-wrap wb-footer-top\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group wb-footer-brand\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-image size-full wb-brand\"><a href=\"https:\/\/webbay.pl\/blog\/\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"200\" src=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/logo_templatemonster.jpg\" alt=\"WebBay \u2014 strona g\u0142\u00f3wna bloga\" class=\"wp-image-24\" srcset=\"https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/logo_templatemonster.jpg 600w, https:\/\/webbay.pl\/blog\/wp-content\/uploads\/2026\/10\/logo_templatemonster-300x100.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n\n\n<p class=\"wb-footer-tagline wp-block-paragraph\">Lepsze pytania.<br> \u015awiadomy wyb\u00f3r hostingu.<\/p>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group wb-footer-column\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Odkrywaj<\/h3>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/blog\/#zastosowania\">Hosting wed\u0142ug zastosowania<\/a><\/p>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/blog\/#koszty\">Ceny i odnowienia<\/a><\/p>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/blog\/#problemy\">Pytania i odpowiedzi<\/a><\/p>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group wb-footer-column\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">WebBay<\/h3>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/ranking-hostingow\/\">Ranking hosting\u00f3w \u2197<\/a><\/p>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/blog\/#metodologia\">Metodologia i afiliacja<\/a><\/p>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"mailto:contact@webbay.pl\">contact@webbay.pl<\/a><\/p>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group wb-wrap wb-footer-bottom\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u00a9 WebBay \u00b7 Centrum wiedzy o hostingu<\/p>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/webbay.pl\/blog\/\">Strona g\u0142\u00f3wna \u2192<\/a><\/p>\n\n<\/div><\/div>\n\n<\/div><\/footer>\n\n<\/div><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>W\u0142asna aplikacja wymaga wi\u0119cej ni\u017c napisu PHP i baza w ofercie. Karta zgodno\u015bci i konkretny przyk\u0142ad pokazuj\u0105, co potwierdzi\u0107 przed zakupem.<\/p>\n","protected":false},"author":2,"featured_media":689,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"unboxed","_kad_post_vertical_padding":"hide","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":true,"_kad_post_footer":true,"_kad_post_classname":"","footnotes":""},"categories":[11],"tags":[],"class_list":["post-690","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologie-i-wydajnosc"],"_links":{"self":[{"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/posts\/690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/comments?post=690"}],"version-history":[{"count":2,"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions"}],"predecessor-version":[{"id":819,"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions\/819"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/media\/689"}],"wp:attachment":[{"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/media?parent=690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/categories?post=690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webbay.pl\/blog\/wp-json\/wp\/v2\/tags?post=690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}