Difference between revisions of "Software Collections:PHP"

From SME Server
Jump to navigationJump to search
(Created page with "{{WIP box}} Placeholder. ==Other articles in this category== {{#ask: Category:Software Collections}} Category:Software Collections Category:Howto")
 
Line 1: Line 1:
 
{{WIP box}}
 
{{WIP box}}
  
Placeholder.  
+
===== run php54 on a hosted website (virtual host) =====
 +
Install php54 from scl repo
 +
yum --enablerepo=scl-php54 install php54-php.x86_64 
 +
 
 +
Verify the installation,
 +
  scl enable php54 'php -v'
 +
It should return this version (or higher)
 +
PHP 5.4.16 (cli) (built: Jul 10 2014 10:06:38)
 +
 
 +
Create a template fragment that will enable apache to invoke php54 for a virtual domain
 +
nano /etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/70php54
 +
 
 +
paste this code fragment (including the last empty line):
 +
<nowiki>{
 +
  use esmith::DomainsDB;
 +
  my $domains = esmith::DomainsDB->open_ro;
 +
if (($domains->get_prop($virtualHost, 'php54') || 'disabled')
 +
        eq 'enabled')
 +
{
 +
$OUT = "    #Enable php54 through Cgi-Bin wrapper. Needs a wrapper script in /cgi-bin/php54-wrapper\n";
 +
$OUT .= "    AddHandler php-cgi .php\n";
 +
$OUT .= "    Action php-cgi /cgi-bin/php54-wrapper\n";
 +
$OUT .= "    <Location />\n";
 +
$OUT .= "      Options +ExecCGI\n";
 +
$OUT .= "    </Location>\n";
 +
}
 +
}
 +
</nowiki>
 +
and Save with <CTRL>-X - yes.
 +
 
 +
Create the cgi-wrapper script:
 +
nano ~<Ibayname of MyVirtualDomain>/../cgi-bin/php54-wrapper
 +
 
 +
Insert this code fragment:
 +
#!/bin/bash
 +
source /opt/rh/php54/enable
 +
exec php-cgi
 +
and Save with <CTRL>-X - yes.
 +
 
 +
Then execute these commands:
 +
cd ~<Ibayname of MyVirtualDomain>/../cgi-bin/
 +
restorecon -RF php54-wrapper
 +
chown www:www php54-wrapper
 +
chmod ugo-rwx php54-wrapper
 +
chmod ug+rx php54-wrapper
 +
 
 +
The template fragment for httpd.conf needs a database setting to be enabled for the (virtual) domain.
 +
 
 +
Check with
 +
db domains show <myVirtualDomain.com>
 +
Edit with
 +
db domains setprop <myVirtualDomain.com> php54 enabled
 +
 
 +
To enable this run:
 +
expand-template /etc/httpd/conf/httpd.conf
 +
/etc/init.d/httpd-e-smith restart
 +
 
 +
Notes:
 +
*This version of php uses the /opt/rh/php54/root/etc/php.ini file which uses default settings as configured by RedHat, use at your own risk. Adjust the settings according to your (security) needs.
 +
*Using Cgi-Bin wrapper scripts makes your system vulnerable to [https://www.digitalocean.com/community/tutorials/how-to-protect-your-server-against-the-shellshock-bash-vulnerability Shellshock server bash vulnerability], make sure your server runs the latest version of bash.
 +
*This example and code still have to be tested (I will soon).
 +
*Source: [http://www.ilsistemista.net/index.php/linux-a-unix/45-joomla-3-3-centos-6-and-php-version-putting-all-together.html?start=1 This] HowTo for CENTOS6
 +
 
  
 
==Other articles in this category==
 
==Other articles in this category==

Revision as of 17:51, 6 January 2015

Warning.png Work in Progress:
This page is a Work in Progress. The contents off this page may be in flux, please have a look at this page history the to see list of changes.


run php54 on a hosted website (virtual host)

Install php54 from scl repo

yum --enablerepo=scl-php54 install php54-php.x86_64  

Verify the installation,

 scl enable php54 'php -v' 

It should return this version (or higher)

PHP 5.4.16 (cli) (built: Jul 10 2014 10:06:38)

Create a template fragment that will enable apache to invoke php54 for a virtual domain

nano /etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/70php54

paste this code fragment (including the last empty line):

{ 
  use esmith::DomainsDB;
  my $domains = esmith::DomainsDB->open_ro;
	if (($domains->get_prop($virtualHost, 'php54') || 'disabled')
         eq 'enabled')
		{
				$OUT = "    #Enable php54 through Cgi-Bin wrapper. Needs a wrapper script in /cgi-bin/php54-wrapper\n";
				$OUT .= "    AddHandler php-cgi .php\n";
				$OUT .= "    Action php-cgi /cgi-bin/php54-wrapper\n";
				$OUT .= "    <Location />\n";
				$OUT .= "       Options +ExecCGI\n";
				$OUT .= "    </Location>\n";
		}
 }

and Save with <CTRL>-X - yes.

Create the cgi-wrapper script:

nano ~<Ibayname of MyVirtualDomain>/../cgi-bin/php54-wrapper

Insert this code fragment:

#!/bin/bash
source /opt/rh/php54/enable
exec php-cgi

and Save with <CTRL>-X - yes.

Then execute these commands:

cd ~<Ibayname of MyVirtualDomain>/../cgi-bin/
restorecon -RF php54-wrapper
chown www:www php54-wrapper
chmod ugo-rwx php54-wrapper
chmod ug+rx php54-wrapper

The template fragment for httpd.conf needs a database setting to be enabled for the (virtual) domain.

Check with

db domains show <myVirtualDomain.com>

Edit with

db domains setprop <myVirtualDomain.com> php54 enabled

To enable this run:

expand-template /etc/httpd/conf/httpd.conf
/etc/init.d/httpd-e-smith restart

Notes:

  • This version of php uses the /opt/rh/php54/root/etc/php.ini file which uses default settings as configured by RedHat, use at your own risk. Adjust the settings according to your (security) needs.
  • Using Cgi-Bin wrapper scripts makes your system vulnerable to Shellshock server bash vulnerability, make sure your server runs the latest version of bash.
  • This example and code still have to be tested (I will soon).
  • Source: This HowTo for CENTOS6


Other articles in this category

Mysql57, PHP Software Collections, Software Collections, Software Collections Repositories, Software Collections:MariaDB, Software Collections:MongoDB, Software Collections:MySQL, Software Collections:MySQL55, Software Collections:Nodejs, Software Collections:PHP, Software Collections:PostgreSQL, Software Collections:Python, Software Collections:Ruby on Rails