PageSourceSearch

https://docs.phpvms.net/assets/js/fec286cd.2e3e21c8.js

js phpvms.net collected 2026-10-04 13:25:02 UTC 4,343 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkphpvms_docs=self.webpackChunkphpvms_docs||[]).push([[6212],{610(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>a,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"requirements","title":"Requirements","description":"Server Requirements","source":"@site/versioned_docs/version-v7.x/requirements.md","sourceDirName":".","slug":"/requirements","permalink":"/requirements","draft":false,"unlisted":false,"editUrl":"https://github.com/phpvms/docs/tree/master/versioned_docs/version-v7.x/requirements.md","tags":[],"version":"v7.x","frontMatter":{"id":"requirements","title":"Requirements"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/"},"next":{"title":"Download","permalink":"/download"}}');var r=s(74848),t=s(28453);const o={id:"requirements",title:"Requirements"},l=void 0,d={},c=[{value:"Server Requirements",id:"server-requirements",level:2},{value:"Optional",id:"optional",level:5},{value:"Shared Hosting",id:"shared-hosting",level:3},{value:"VPS/Dedicated Hosts",id:"vpsdedicated-hosts",level:3}];function h(e){const n={a:"a",br:"br",code:"code",em:"em",h2:"h2",h3:"h3",h5:"h5",hr:"hr",li:"li",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"server-requirements",children:"Server Requirements"}),"\n",(0,r.jsx)(n.p,{children:"One of the first steps in the installer is to check your server for the proper\nrequirements."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["PHP 8.1+; extensions required (most of these are installed by default):","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"cURL"}),"\n",(0,r.jsx)(n.li,{children:"JSON"}),"\n",(0,r.jsx)(n.li,{children:"fileinfo"}),"\n",(0,r.jsx)(n.li,{children:"mbstring"}),"\n",(0,r.jsx)(n.li,{children:"openssl"}),"\n",(0,r.jsx)(n.li,{children:"pdo"}),"\n",(0,r.jsx)(n.li,{children:"tokenizer"}),"\n",(0,r.jsx)(n.li,{children:"bcmath"}),"\n",(0,r.jsx)(n.li,{children:"intl"}),"\n",(0,r.jsx)(n.li,{children:"zip"}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Database:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"MySQL 5.7+ (or MySQL variant, including MariaDB and Percona)"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h5,{id:"optional",children:"Optional"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"http://php.net/manual/en/book.apc.php",children:"php-apc"})}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"https://redis.io",children:"Redis"})," (for job queuing, various caching and optimizations)"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"shared-hosting",children:"Shared Hosting"}),"\n",(0,r.jsxs)(n.p,{children:["While shared hosts are not ideal for numerous reasons, it's still possible to\nrun phpvms.",(0,r.jsx)(n.br,{}),"\n",'Check especially CRON features/capabilities and hidden limits the provider\napplies while advertising the service as "limitless". Ram or resource usage\nlimits (like I/O) may directly affect phpvms and your operations.']}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.em,{children:"Don't use free hosts, you'll have a really bad time and they can not be\nsupported."})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"vpsdedicated-hosts",children:"VPS/Dedicated Hosts"}),"\n",(0,r.jsxs)(n.p,{children:["If you have control over your server, the combination of nginx/php-fpm will\noffer you the best performance, over using Apache. It's the combination that I\ntest with. It will also be much more secure, seeing that only the ",(0,r.jsx)(n.code,{children:"/public"}),"\ndirectory is exposed."]}),"\n",(0,r.jsxs)(n.p,{children:["Pointing the vhost to the ",(0,r.jsx)(n.code,{children:"/public"})," directory is the best way to run on a host\nthat you control."]})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},28453(e,n,s){s.d(n,{R:()=>o,x:()=>l});var i=s(96540);const r={},t=i.createContext(r);function o(e){const n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.