{"id":60488,"date":"2025-04-14T00:00:14","date_gmt":"2025-04-14T04:00:14","guid":{"rendered":"https:\/\/charlesworks.com\/?p=60488"},"modified":"2025-04-05T17:54:30","modified_gmt":"2025-04-05T21:54:30","slug":"virtualmin-php-options-made-simple","status":"publish","type":"post","link":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/","title":{"rendered":"Virtualmin PHP Options Made Simple"},"content":{"rendered":"<h2>A Look Into PHP Options in Virtualmin \u2013 Made Simple<\/h2>\n<p>Virtualmin PHP options matter quite a bit! When I work with websites, one of the most important parts that runs behind the scenes is <strong>PHP<\/strong>. People sometimes ask me, <i>\u201cWhat does PHP stand for?\u201d<\/i> Originally, PHP stood for &#8220;<strong>Personal Home Page<\/strong>&#8220;, but today it stands for &#8220;<strong>PHP: Hypertext Preprocessor<\/strong>&#8221; (yes, it&#8217;s a bit of a tongue-twister\u2014it&#8217;s a recursive acronym!). PHP is a popular scripting language used to create dynamic web pages, like WordPress sites or contact forms.<\/p>\n<h2>Why Does PHP Matter?<\/h2>\n<p>Any time a website is doing something smart\u2014like showing today\u2019s weather, taking contact form submissions, or letting you log in\u2014that&#8217;s likely powered by PHP. When you&#8217;re running a website, especially on your own server, PHP has lots of settings that control how it behaves. If something goes wrong, or if a site needs more speed or control, knowing these settings helps a lot.<\/p>\n<p>I manage servers using <strong>Virtualmin<\/strong>, which gives me a friendly web interface to manage websites. In this post, I want to walk you through one specific screen that I use regularly\u2014the <strong>PHP Options<\/strong> page in Virtualmin.<\/p>\n<p style=\"text-align: center;\"><i>Below is a screenshot of the PHP Options page for a sample domain on a test server:<\/i> \ud83d\udc49<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-60491\" src=\"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp\" alt=\"Virtualmin PHP Options Page\" width=\"1303\" height=\"569\" srcset=\"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp 1303w, https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page-1280x559.webp 1280w, https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page-980x428.webp 980w, https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page-480x210.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1303px, 100vw\" \/><br \/>\n<i>This image shows the PHP Options settings for the example domain birdhaven.charlesworks.com inside Virtualmin.<\/i><\/p>\n<p>Let\u2019s go through every part of this page so you understand what it all means.<\/p>\n<hr \/>\n<h2>\ud83e\udde0 PHP Script Execution Mode<\/h2>\n<p>This section controls <i>how<\/i> PHP code runs on the server. You have four choices:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>Disabled<\/strong> \u2013 This turns off PHP completely for the website. That means if your site uses PHP (like WordPress), it just won\u2019t work. I only use this if a site doesn\u2019t need PHP at all.<\/li>\n<li><strong>FPM (FastCGI Process Manager)<\/strong> \u2013 This is the most efficient and modern way to run PHP. It keeps PHP running in the background, which speeds up your site and uses less memory overall. I usually go with this setting.<\/li>\n<li><strong>FCGI (FastCGI)<\/strong> \u2013 This is similar to FPM but a bit older. It\u2019s better than the oldest method (CGI), but not as efficient as FPM.<\/li>\n<li><strong>CGI (Common Gateway Interface)<\/strong> \u2013 This is the traditional, slower method. It starts a new PHP process every time a page is loaded. It works, but it&#8217;s not great for busy websites.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h2>\u2699\ufe0f PHP Process Manager Mode<\/h2>\n<p class=\"\" data-start=\"2664\" data-end=\"2757\">This only shows up when FPM is selected. It tells the server how to manage the PHP processes.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>Dynamic<\/strong> \u2013 PHP adjusts the number of processes depending on how busy the site is. This is usually the best balance.<\/li>\n<li><strong>Static<\/strong> \u2013 It keeps the same number of PHP processes running all the time. Good for consistent performance but can waste resources.<\/li>\n<li><strong>Ondemand<\/strong> \u2013 PHP processes only start when needed, then stop when idle. Great for saving memory on less-busy sites.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83d\udd22 PHP Service Maximum Sub-Processes<\/h2>\n<p>Here you can control how many PHP processes (mini-programs) can run at once. The default is usually fine\u2014Virtualmin recommends 16. If a site is very busy and needs more, I can increase it here.<\/p>\n<hr \/>\n<h2>\u23f1\ufe0f Maximum PHP Script Run Time<\/h2>\n<p>Sometimes a PHP script might take too long to finish (like importing a huge file). This setting limits how long a script can run.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>Unlimited<\/strong> \u2013 Lets PHP scripts run as long as they need. I don\u2019t recommend this unless there\u2019s a good reason.<\/li>\n<li><strong>30 seconds (or other)<\/strong> \u2013 This stops any PHP script that takes too long, which helps prevent a slow or stuck site.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83d\udcc4 PHP Error Log File<\/h2>\n<p>When PHP has a problem, it writes a message to a log file. This helps me debug issues.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>PHP logging disabled<\/strong> \u2013 No errors will be logged. I only use this when I\u2019m sure everything\u2019s working.<\/li>\n<li><strong>Default log file<\/strong> \u2013 This logs errors in a standard location. For example, in the screenshot, the errors go to:\n<pre>\/home\/birdhavenb\/logs\/php_log<\/pre>\n<\/li>\n<li class=\"\" data-start=\"4174\" data-end=\"4240\">\n<p class=\"\" data-start=\"4176\" data-end=\"4240\"><strong data-start=\"4176\" data-end=\"4195\">Custom log file<\/strong> \u2013 I can pick a different location if needed.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h2>\u2709\ufe0f PHP Scripts Can Send Email<\/h2>\n<p>This is very important for contact forms or notifications.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>Yes<\/strong> \u2013 Allows PHP to send emails. I enable this for most sites that send out alerts or confirmation emails.<\/li>\n<li><strong>No<\/strong> \u2013 Blocks PHP from sending email. Good for extra security on sites that don\u2019t need email functions. But remember that setting this to &#8220;No&#8221; will also stop your site from notifying you of WordPress functions, like when updates happen and may disable you from recovering after a lost password.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83e\uddee PHP Version<\/h2>\n<p>Different websites need different versions of PHP. In the screenshot, <strong>PHP 7.4.33<\/strong> is selected. That has been a stable version for a very long time. However, today I often recommend <strong>PHP 8.1 or higher<\/strong> for speed and security\u2014if your site supports it. The WordPress core and its theme and every plugin must work under PHP 8.1 or you will have to either roll back to earlier versions or use different themes or plugins.<\/p>\n<hr \/>\n<h2>\u2705 Final Thoughts on Virtualmin PHP Options<\/h2>\n<p>This page might look intimidating at first, but once you understand what each option does, it&#8217;s really quite logical. Virtualmin makes managing all this way easier than editing configuration files by hand.<\/p>\n<p>If you\u2019re just starting out, my advice is:<\/p>\n<ul>\n<li>Use <strong>FPM<\/strong> with <strong>dynamic<\/strong> mode.<\/li>\n<li>Stick with the <strong>default error log<\/strong> and <strong>default sub-process limit<\/strong>.<\/li>\n<li>Set a <strong>reasonable timeout<\/strong> like 30 seconds unless needed.<\/li>\n<li>Let scripts <strong>send email<\/strong> if your site has contact forms.<\/li>\n<li>Use a <strong>current PHP version<\/strong> supported by your website software.<\/li>\n<\/ul>\n<p>Managing websites on your own server teaches you so much\u2014not just about PHP, but how the internet really works under the hood. Hopefully, this walk-through made it a bit clearer.<\/p>\n<hr \/>\n<p>If you want to really get into the PHP weeds, check out the <span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/PHP.net\" target=\"_blank\" rel=\"noopener\">https:\/\/PHP.net<\/a><\/span> website where all things PHP are available.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Look Into PHP Options in Virtualmin \u2013 Made Simple Virtualmin PHP options matter quite a bit! When I work with websites, one of the most important parts that runs behind the scenes is PHP. People sometimes ask me, \u201cWhat does PHP stand for?\u201d Originally, PHP stood for &#8220;Personal Home Page&#8220;, but today it stands [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[32,21,13],"tags":[271,183,84,336],"class_list":["post-60488","post","type-post","status-publish","format-standard","hentry","category-technical-help","category-web-hosting","category-wordpress","tag-content-management","tag-web-development","tag-website","tag-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Virtualmin PHP Options Made Simple - CharlesWorks<\/title>\n<meta name=\"description\" content=\"Sometimes Virtualmin PHP options seem confusing. Check this article out to see how Charles has simplified what they mean and which to use.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Virtualmin PHP Options Made Simple - CharlesWorks\" \/>\n<meta property=\"og:description\" content=\"Sometimes Virtualmin PHP options seem confusing. Check this article out to see how Charles has simplified what they mean and which to use.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/\" \/>\n<meta property=\"og:site_name\" content=\"CharlesWorks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CharlesWorksLLC\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-14T04:00:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1303\" \/>\n\t<meta property=\"og:image:height\" content=\"569\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Charles Oropallo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CharlesWorks\" \/>\n<meta name=\"twitter:site\" content=\"@CharlesWorks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Charles Oropallo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/\"},\"author\":{\"name\":\"Charles Oropallo\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#\\\/schema\\\/person\\\/aae0f57cd44dc3047f478a8ed23baf31\"},\"headline\":\"Virtualmin PHP Options Made Simple\",\"datePublished\":\"2025-04-14T04:00:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/\"},\"wordCount\":962,\"publisher\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/charlesworks.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/virtualmin-php-options-page.webp\",\"keywords\":[\"Content Management\",\"Web Development\",\"Website\",\"WordPress\"],\"articleSection\":[\"Technical Help\",\"Web Hosting\",\"WordPress\"],\"inLanguage\":\"en\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/\",\"url\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/\",\"name\":\"Virtualmin PHP Options Made Simple - CharlesWorks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/charlesworks.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/virtualmin-php-options-page.webp\",\"datePublished\":\"2025-04-14T04:00:14+00:00\",\"description\":\"Sometimes Virtualmin PHP options seem confusing. Check this article out to see how Charles has simplified what they mean and which to use.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/#primaryimage\",\"url\":\"https:\\\/\\\/charlesworks.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/virtualmin-php-options-page.webp\",\"contentUrl\":\"https:\\\/\\\/charlesworks.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/virtualmin-php-options-page.webp\",\"width\":1303,\"height\":569,\"caption\":\"Virtualmin PHP Options Page\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/virtualmin-php-options-made-simple\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/charlesworks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Virtualmin PHP Options Made Simple\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#website\",\"url\":\"https:\\\/\\\/charlesworks.com\\\/\",\"name\":\"CharlesWorks\",\"description\":\"Web Development - Web Services\",\"publisher\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/charlesworks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#organization\",\"name\":\"CharlesWorks\",\"url\":\"https:\\\/\\\/charlesworks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/charlesworks.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/logo-for-localshopper.png\",\"contentUrl\":\"https:\\\/\\\/charlesworks.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/logo-for-localshopper.png\",\"width\":540,\"height\":110,\"caption\":\"CharlesWorks\"},\"image\":{\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/CharlesWorksLLC\",\"https:\\\/\\\/x.com\\\/CharlesWorks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/charlesworks.com\\\/#\\\/schema\\\/person\\\/aae0f57cd44dc3047f478a8ed23baf31\",\"name\":\"Charles Oropallo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/800a86c24a495307d3f04c572ac886f9ff64208cb108afa5bce6080d8c676db8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/800a86c24a495307d3f04c572ac886f9ff64208cb108afa5bce6080d8c676db8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/800a86c24a495307d3f04c572ac886f9ff64208cb108afa5bce6080d8c676db8?s=96&d=mm&r=g\",\"caption\":\"Charles Oropallo\"},\"sameAs\":[\"https:\\\/\\\/charlesworks.com\"],\"url\":\"https:\\\/\\\/charlesworks.com\\\/author\\\/charles\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Virtualmin PHP Options Made Simple - CharlesWorks","description":"Sometimes Virtualmin PHP options seem confusing. Check this article out to see how Charles has simplified what they mean and which to use.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/","og_locale":"en_US","og_type":"article","og_title":"Virtualmin PHP Options Made Simple - CharlesWorks","og_description":"Sometimes Virtualmin PHP options seem confusing. Check this article out to see how Charles has simplified what they mean and which to use.","og_url":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/","og_site_name":"CharlesWorks","article_publisher":"https:\/\/www.facebook.com\/CharlesWorksLLC","article_published_time":"2025-04-14T04:00:14+00:00","og_image":[{"width":1303,"height":569,"url":"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp","type":"image\/webp"}],"author":"Charles Oropallo","twitter_card":"summary_large_image","twitter_creator":"@CharlesWorks","twitter_site":"@CharlesWorks","twitter_misc":{"Written by":"Charles Oropallo","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/#article","isPartOf":{"@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/"},"author":{"name":"Charles Oropallo","@id":"https:\/\/charlesworks.com\/#\/schema\/person\/aae0f57cd44dc3047f478a8ed23baf31"},"headline":"Virtualmin PHP Options Made Simple","datePublished":"2025-04-14T04:00:14+00:00","mainEntityOfPage":{"@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/"},"wordCount":962,"publisher":{"@id":"https:\/\/charlesworks.com\/#organization"},"image":{"@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/#primaryimage"},"thumbnailUrl":"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp","keywords":["Content Management","Web Development","Website","WordPress"],"articleSection":["Technical Help","Web Hosting","WordPress"],"inLanguage":"en"},{"@type":"WebPage","@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/","url":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/","name":"Virtualmin PHP Options Made Simple - CharlesWorks","isPartOf":{"@id":"https:\/\/charlesworks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/#primaryimage"},"image":{"@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/#primaryimage"},"thumbnailUrl":"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp","datePublished":"2025-04-14T04:00:14+00:00","description":"Sometimes Virtualmin PHP options seem confusing. Check this article out to see how Charles has simplified what they mean and which to use.","breadcrumb":{"@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/#primaryimage","url":"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp","contentUrl":"https:\/\/charlesworks.com\/wp-content\/uploads\/2025\/04\/virtualmin-php-options-page.webp","width":1303,"height":569,"caption":"Virtualmin PHP Options Page"},{"@type":"BreadcrumbList","@id":"https:\/\/charlesworks.com\/virtualmin-php-options-made-simple\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/charlesworks.com\/"},{"@type":"ListItem","position":2,"name":"Virtualmin PHP Options Made Simple"}]},{"@type":"WebSite","@id":"https:\/\/charlesworks.com\/#website","url":"https:\/\/charlesworks.com\/","name":"CharlesWorks","description":"Web Development - Web Services","publisher":{"@id":"https:\/\/charlesworks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/charlesworks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/charlesworks.com\/#organization","name":"CharlesWorks","url":"https:\/\/charlesworks.com\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/charlesworks.com\/#\/schema\/logo\/image\/","url":"https:\/\/charlesworks.com\/wp-content\/uploads\/2019\/10\/logo-for-localshopper.png","contentUrl":"https:\/\/charlesworks.com\/wp-content\/uploads\/2019\/10\/logo-for-localshopper.png","width":540,"height":110,"caption":"CharlesWorks"},"image":{"@id":"https:\/\/charlesworks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/CharlesWorksLLC","https:\/\/x.com\/CharlesWorks"]},{"@type":"Person","@id":"https:\/\/charlesworks.com\/#\/schema\/person\/aae0f57cd44dc3047f478a8ed23baf31","name":"Charles Oropallo","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/secure.gravatar.com\/avatar\/800a86c24a495307d3f04c572ac886f9ff64208cb108afa5bce6080d8c676db8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/800a86c24a495307d3f04c572ac886f9ff64208cb108afa5bce6080d8c676db8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/800a86c24a495307d3f04c572ac886f9ff64208cb108afa5bce6080d8c676db8?s=96&d=mm&r=g","caption":"Charles Oropallo"},"sameAs":["https:\/\/charlesworks.com"],"url":"https:\/\/charlesworks.com\/author\/charles\/"}]}},"_links":{"self":[{"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/posts\/60488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/comments?post=60488"}],"version-history":[{"count":0,"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/posts\/60488\/revisions"}],"wp:attachment":[{"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/media?parent=60488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/categories?post=60488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlesworks.com\/wp-json\/wp\/v2\/tags?post=60488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}