{"id":790,"date":"2021-11-01T13:25:20","date_gmt":"2021-11-01T13:25:20","guid":{"rendered":"https:\/\/mklasen.com\/?p=790"},"modified":"2021-11-01T13:25:21","modified_gmt":"2021-11-01T13:25:21","slug":"setting-php-versions-in-deployer-deployments","status":"publish","type":"post","link":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/","title":{"rendered":"Setting PHP versions in Deployer deployments"},"content":{"rendered":"\n

Sometimes your terminal environment (where you SSH into) uses a different PHP version then that you need. Most hosting companies do have several PHP versions available. But how do you use them, and more importantly, how do you set the right one when deploying new versions with Deployer?<\/p>\n\n\n\n

The errors you can run into<\/h2>\n\n\n\n

In this case, composer required a higher PHP version for some packages. You’re presented with errors like:<\/p>\n\n\n\n

Loading composer repositories with package information\nInstalling dependencies (including require-dev) from lock file\nYour requirements could not be resolved to an installable set of packages.\n    Problem 1\n      - Installation request for ramsey\/collection 1.2.2 -> satisfiable by ramsey\/collection[1.2.2].\n      - ramsey\/collection 1.2.2 requires php ^7.3 || ^8 -> your PHP version (7.2.33) does not satisfy that requirement.\n    Problem 2\n      - ramsey\/collection 1.2.2 requires php ^7.3 || ^8 -> your PHP version (7.2.33) does not satisfy that requirement.\n      - ramsey\/uuid 4.2.3 requires ramsey\/collection ^1.0 -> satisfiable by ramsey\/collection[1.2.2].\n      - Installation request for ramsey\/uuid 4.2.3 -> satisfiable by ramsey\/uuid[4.2.3].<\/code><\/pre>\n\n\n\n

Which version do you currently run?<\/h2>\n\n\n\n

Use php -v <\/code>to get the current version.<\/p>\n\n\n\n

Where’s your current version located? <\/h2>\n\n\n\n

Use which php<\/code> to retrieve the path<\/p>\n\n\n\n

Where’s composer located?<\/h2>\n\n\n\n

Use which composer<\/code> to retrieve the path.<\/p>\n\n\n\n

What other versions do you have installed?<\/h2>\n\n\n\n

ls -la \/usr\/bin\/<\/code> might give you some more information.<\/p>\n\n\n\n

You can also search for files with php<\/code> in them using:
find \/ -type f -name \"php\"<\/code><\/p>\n\n\n\n

You will probably see a whole lot of permision denied notices, hide them using:<\/p>\n\n\n\n

find \/ -type f -name \"php\"   2>&1 | grep -v \"Permission denied\"<\/code><\/pre>\n\n\n\n

For me, this results in a nice list of PHP versions:<\/p>\n\n\n\n

\/opt\/remi\/php56\/root\/usr\/bin\/php\n\/opt\/remi\/php70\/root\/usr\/bin\/php\n\/opt\/remi\/php72\/root\/usr\/bin\/php\n\/opt\/remi\/php74\/root\/usr\/bin\/php\n\/opt\/remi\/php80\/root\/usr\/bin\/php\n\/opt\/remi\/php71\/root\/usr\/bin\/php\n\/opt\/remi\/php73\/root\/usr\/bin\/php<\/code><\/pre>\n\n\n\n

I can use any of this paths, to confirm it works we can run:<\/p>\n\n\n\n

\/opt\/remi\/php73\/root\/usr\/bin\/php -v<\/code><\/pre>\n\n\n\n

So, how do I make deployer use this?<\/h2>\n\n\n\n

In my case, I want to set the PHP version composer uses. We can set this by setting the bin\/composer<\/code> parameter in Deployer. Globally, by adding:<\/p>\n\n\n\n

set('bin\/composer',\n\tfunction () {\n\t\treturn '\/opt\/remi\/php73\/root\/usr\/bin\/php \/usr\/bin\/composer';\n\t}\n);<\/code><\/pre>\n\n\n\n

Or, per host, by adding:<\/p>\n\n\n\n

host( 'prod' )\n\t->set(\n\t\t'bin\/composer',\n\t\tfunction () {\n\t\t\treturn '\/opt\/remi\/php73\/root\/usr\/bin\/php \/usr\/bin\/composer';\n\t\t}\n\t);<\/code><\/pre>\n\n\n\n

That’s it! Happy deploying!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"

Sometimes your terminal environment (where you SSH into) uses a different PHP version then that you need. Most hosting companies do have several PHP versions available. But how do you use them, and more importantly, how do you set the right one when deploying new versions with Deployer? The errors you can run into In […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[1],"tags":[],"acf":[],"yoast_head":"\nSetting PHP versions in Deployer deployments - Marinus Klasen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting PHP versions in Deployer deployments - Marinus Klasen\" \/>\n<meta property=\"og:description\" content=\"Sometimes your terminal environment (where you SSH into) uses a different PHP version then that you need. Most hosting companies do have several PHP versions available. But how do you use them, and more importantly, how do you set the right one when deploying new versions with Deployer? The errors you can run into In […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/\" \/>\n<meta property=\"og:site_name\" content=\"Marinus Klasen\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/marinus.klasen\" \/>\n<meta property=\"article:author\" content=\"http:\/\/facebook.com\/marinus.klasen\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-01T13:25:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-01T13:25:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mklasen.com\/content\/uploads\/2020\/03\/cropped-cropped-mklasen-logo-margin-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marinus Klasen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@http:\/\/twitter.com\/marinusklasen\" \/>\n<meta name=\"twitter:site\" content=\"@marinusklasen\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marinus Klasen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/\"},\"author\":{\"name\":\"Marinus Klasen\",\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\"},\"headline\":\"Setting PHP versions in Deployer deployments\",\"datePublished\":\"2021-11-01T13:25:20+00:00\",\"dateModified\":\"2021-11-01T13:25:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/\"},\"wordCount\":215,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\"},\"articleSection\":[\"General\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/\",\"url\":\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/\",\"name\":\"Setting PHP versions in Deployer deployments - Marinus Klasen\",\"isPartOf\":{\"@id\":\"https:\/\/mklasen.com\/#website\"},\"datePublished\":\"2021-11-01T13:25:20+00:00\",\"dateModified\":\"2021-11-01T13:25:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mklasen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"General\",\"item\":\"https:\/\/mklasen.com\/general\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Setting PHP versions in Deployer deployments\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mklasen.com\/#website\",\"url\":\"https:\/\/mklasen.com\/\",\"name\":\"Marinus Klasen\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mklasen.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"nl-NL\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\",\"name\":\"Marinus Klasen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg\",\"contentUrl\":\"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg\",\"width\":1500,\"height\":1000,\"caption\":\"Marinus Klasen\"},\"logo\":{\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/image\/\"},\"description\":\"Marinus has been working in software\/web development for more than a decade. Since 2020 his attention shifted on sharing knowledge and developing products and tools for sharing knowledge. Marinus Klasen on Twitter\",\"sameAs\":[\"http:\/\/facebook.com\/marinus.klasen\",\"https:\/\/nl.linkedin.com\/in\/marinusklasen\",\"https:\/\/twitter.com\/http:\/\/twitter.com\/marinusklasen\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Setting PHP versions in Deployer deployments - Marinus Klasen","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:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/","og_locale":"nl_NL","og_type":"article","og_title":"Setting PHP versions in Deployer deployments - Marinus Klasen","og_description":"Sometimes your terminal environment (where you SSH into) uses a different PHP version then that you need. Most hosting companies do have several PHP versions available. But how do you use them, and more importantly, how do you set the right one when deploying new versions with Deployer? The errors you can run into In […]","og_url":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/","og_site_name":"Marinus Klasen","article_publisher":"http:\/\/facebook.com\/marinus.klasen","article_author":"http:\/\/facebook.com\/marinus.klasen","article_published_time":"2021-11-01T13:25:20+00:00","article_modified_time":"2021-11-01T13:25:21+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/mklasen.com\/content\/uploads\/2020\/03\/cropped-cropped-mklasen-logo-margin-1.png","type":"image\/png"}],"author":"Marinus Klasen","twitter_card":"summary_large_image","twitter_creator":"@http:\/\/twitter.com\/marinusklasen","twitter_site":"@marinusklasen","twitter_misc":{"Written by":"Marinus Klasen","Est. reading time":"2 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#article","isPartOf":{"@id":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/"},"author":{"name":"Marinus Klasen","@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29"},"headline":"Setting PHP versions in Deployer deployments","datePublished":"2021-11-01T13:25:20+00:00","dateModified":"2021-11-01T13:25:21+00:00","mainEntityOfPage":{"@id":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/"},"wordCount":215,"commentCount":0,"publisher":{"@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29"},"articleSection":["General"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/","url":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/","name":"Setting PHP versions in Deployer deployments - Marinus Klasen","isPartOf":{"@id":"https:\/\/mklasen.com\/#website"},"datePublished":"2021-11-01T13:25:20+00:00","dateModified":"2021-11-01T13:25:21+00:00","breadcrumb":{"@id":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mklasen.com\/setting-php-versions-in-deployer-deployments\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mklasen.com\/"},{"@type":"ListItem","position":2,"name":"General","item":"https:\/\/mklasen.com\/general\/"},{"@type":"ListItem","position":3,"name":"Setting PHP versions in Deployer deployments"}]},{"@type":"WebSite","@id":"https:\/\/mklasen.com\/#website","url":"https:\/\/mklasen.com\/","name":"Marinus Klasen","description":"","publisher":{"@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mklasen.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"nl-NL"},{"@type":["Person","Organization"],"@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29","name":"Marinus Klasen","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/mklasen.com\/#\/schema\/person\/image\/","url":"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg","contentUrl":"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg","width":1500,"height":1000,"caption":"Marinus Klasen"},"logo":{"@id":"https:\/\/mklasen.com\/#\/schema\/person\/image\/"},"description":"Marinus has been working in software\/web development for more than a decade. Since 2020 his attention shifted on sharing knowledge and developing products and tools for sharing knowledge. Marinus Klasen on Twitter","sameAs":["http:\/\/facebook.com\/marinus.klasen","https:\/\/nl.linkedin.com\/in\/marinusklasen","https:\/\/twitter.com\/http:\/\/twitter.com\/marinusklasen"]}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"Marinus Klasen","author_link":"https:\/\/mklasen.com\/author\/mklasen\/"},"_links":{"self":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts\/790"}],"collection":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/comments?post=790"}],"version-history":[{"count":1,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts\/790\/revisions"}],"predecessor-version":[{"id":791,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts\/790\/revisions\/791"}],"wp:attachment":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/media?parent=790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/categories?post=790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/tags?post=790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}