PHP 7.0.0 finally Released
-
So I normally update fog with this command:
dnf update -y;svn up;./installfog.sh -y
How do I know that PHP 7 was installed? I didn’t see anything different done.
-
Fedora 23 (maybe 22 but may need to change RPM to install)
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-23.rpm dnf config-manager --set-enabled remi-php70 dnf -y update
Fedora 22 Would most likely be:
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-22.rpm dnf config-manager --set-enabled remi-php70 dnf -y update
Install fog like you normally would.
Ubuntu 15.10 (and Others I suppose) (as long as you’re running trunk)
sudo sed -e 's/php5-.*[[:space:]]/php7\.0-\*/g' -e 's/php5/php7\.0/g' -i /opt/fog/.fogsettings sudo rm -rf /etc/apache2/mods-enabled/php5.load sudo apt-get -f purge libapache2-mod-php5 php5-fpm* php5* sudo add-apt-repository -y ppa:ondrej/php-7.0 sudo apt-get update
The fog installer for Ubuntu (possibly debian?) will not work either. All thanks to their excessive use of using the version as the enabling/disabling items.
-
Just wanted to mention that the code listed here for Ubuntu removes all packages from .fogsettings except apache and php7.0, it also incorrectly adds php7.0-*libapache2-mod-php7.0 (when it should be libapache2-mod-php7.0)
-
I just saw this post and decided “I Want!”
Hopefully I don’t break anything…
I have centos7 and I was about to follow these guides
https://webtatic.com/packages/php70/
http://tecadmin.net/install-php-7-on-centos/#But first I’m trying the centos version of @Tom-Elliott’s fedora instructions
beingrpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-config-manager --enable remi-php70 yum -y update
Will report back
-
@Arrowhead-IT I ran
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-config-manager --enable remi-php70 yum -y update
Then updated to the latest trunk
I didn’t see it do anything different with php packages in the FOG install, certainly did in yum -y update though.
Not sure how to tell which version of php that fog is using. I’m sure there’s a way but I don’t know it off the top of my head.
I know that php 7 is indeed installed thoughphp -v PHP 7.0.3 (cli) (built: Feb 3 2016 11:30:45) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
The dashboard certainly did load noticeably faster too.
So I think that the above method did the trick.
You may not even need to add the rpm, just enable remi-php70 with yum config mngr. It told me I already had the repo when I added it.Hope this helps someone else update too.
-
@Arrowhead-IT said:
The dashboard certainly did load noticeably faster too.
There are large improvements in efficiency, I understand. It’s one of the best reasons to move to 7. Of course there are likely security and functionality improvements as well.
-
On ubuntu (after manually setting up the packages for php7.0 in .fogsettings) the install script fails at backing up database.
Also, there is no php7.0-mysqlnd yet as far as I know, so using version 5 for now.
-
@Quazz This is really why I say to play with Ubuntu.
I’ve added code to the installer to help with ubuntu when I can figure out what’s going on and needed for PHP 7 to work. One of the dependencies I’ve noticed is not used as a service, which is php-fpm.
I can install php7.0-fpm, but there is not a service file associated with it.
This is why the instructions I gave in this posting: https://forums.fogproject.org/topic/6285/php-7-0-0-finally-released/2# was not really saying you SHOULD use php 7.0 on debian/ubuntu as I don’t know what info to call out and what not to call out.
I have tried installing php 7.0 on Ubuntu 15.10 and Debian 8 but I have not had any luck on getting it to work.
-
-
I’m running pure PHP 7.0 on four different Ubuntu Server 15.10 servers…let me know how I can help!
-
@d4rk3 Are you running FOG on them?
-
@MRCUR No…just hopes and dreams.
Of course I’m running FOG on them lol…two normal servers and two storage nodes.
-
@d4rk3 Could you go through the steps on how to make it work?
-
Update (don’t install yet) to the latest trunk via Git or SVN, then…
Edit /opt/fog/.fogsettings (or just comment out this line):
packages=''
Purge everything php5:
sudo service apache2 stop sudo apt-get purge -y php5 php5-common php5-json php5-gd php5-cli php5-curl php5-mysqlnd php5-fpm php5-mcrypt php5-readline libapache2-mod-php5 sudo rm -rf /etc/apt/sources.list.d/ondrej-ubuntu-php5-5_6-wily.list sudo rm -rf /etc/apache2/mods-enabled/php5.conf sudo rm -rf /etc/apache2/mods-enabled/php5.load
Install php7.0:
sudo add-apt-repository -y ppa:ondrej/php-7.0 sudo apt-get update sudo apt-get install -y libapache2-mod-php7.0 php7.0 php7.0-phpdbg php7.0-readline php7.0-cgi libphp7.0-embed php7.0-cli php7.0-common php7.0-curl php7.0-fpm php7.0-json php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-gd php php-cli php-common php-curl php-gd php-mcrypt php-mysql php-readline
Edit /lib/ubuntu/config.sh (lines 19-23, 81, delete line 82):
php_ver=7.0 php_verAdds="-7.0" repo="php${php_verAdds}" [[ $php_ver != 7.0 ]] && phpcmd="php" || phpcmd="php" [[ $php_ver != 7.0 ]] && phpfpm="php-fpm${php_ver}" || phpfpm="php7.0-fpm" [[ $php_ver != 7.0 ]] && phpini="/etc/$phpcmd/$php_ver/apache2/php.ini" || phpini="/etc/$phpcmd/$php_ver/apache2/php.ini"
That’s it then install the current trunk that you already updated to and the install should finish without errors.
If I had to guess I’d imagine that my work on config.sh could be simplified or improved but this always works and I don’t ever have to worry about php5 trying to re-install via .fogsettings.
Please feel free to use any/all of these steps as any of you please. I’m no expert on php but I can’t see any reason why the latest FOG shouldn’t be pure php7.0.
Feedback is always welcome
-
I’ve modified the installer a bit to allow for this.
If you want to give this a shot, yes you will have to first remove all of the existing php5 stuff.
I do it simpler with:
apt-get purge -y php* lib*php
However you do it is up to you.
I’ve made it so you can actually just add the info to your /opt/fog/.fogsettings (of course remove the packages as described as well.
Instead of modifying the core installer information add these lines to your .fogsettings file – before the packages line:
php_ver="7.0" php_verAdds="-7.0" repo="php-${php_ver}"
-
This post is deleted! -
@Tom-Elliott This works, except it looks for php.ini in /etc/php/apache2/php.ini rather than /etc/php/apache2/7.0/php.ini (which causes the install to fail)
Have to admit I’m not a fan of how they decided to change basic structures like that.
-
@Quazz that doesn’t make any sense.
The path found should be
/etc/php/7.0/apache2/php.ini
or/etc/php5/apache2/php.ini
I don’t quite understand why yours is backwards.
The line that handles this in lib/ubuntu/config.php is 81.
Here’s what I have it set as:
[[ $php_ver != 5 ]] && phpini="/etc/$phpcmd/$php_ver/apache2/php.ini" || phpini="/etc/$phpcmd/apache2/php.ini"
-
@Tom-Elliott Thanks for the help, looks like the updating to the newest version didn’t properly merge the config file so it still had php_ver set to 7.0 which would produce the results I experienced.
I can confirm that it works now.
-
Awesome! I’m glad this is helping people update to php7.0…the performance increase is very worth it!