• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

FasterCGI with HHVM any thoughts anyone?

+1 for HHVM integration.. at present there is a dependency clash between hhvm and plesk.. if this can be cleared up there should be no reason why nginx cant proxy requests through HHVM
 
I had a play with this, unfortunately on C6 the amount of extra packages required are horrendous. The dependency clash actually I think relates to the ropey mirror that was providing hhvm on c6, I got around it but then ran into problems getting hhvm to integrate with Plesk's PHP handler.

If I were better at my job I'd have notes to explain how I got around it, but I assume it was this problem you had : http://nareshv.blogspot.co.uk/2013/12/installing-hhvm-23-on-centos-65.html

I may revisit (didn't occur to me to try connecting it to Nginx) once I've rebuilt the server I polluted with that additional repo!

Paul.
 
I had a play with this, unfortunately on C6 the amount of extra packages required are horrendous. The dependency clash actually I think relates to the ropey mirror that was providing hhvm on c6, I got around it but then ran into problems getting hhvm to integrate with Plesk's PHP handler.

If I were better at my job I'd have notes to explain how I got around it, but I assume it was this problem you had : http://nareshv.blogspot.co.uk/2013/12/installing-hhvm-23-on-centos-65.html

I may revisit (didn't occur to me to try connecting it to Nginx) once I've rebuilt the server I polluted with that additional repo!

Paul.

Yes thats the one...

Error: Package: psa-libxml-proxy-2.7.8-13032215.x86_64 (@PSA_11_5_30-dist)
Requires: libboost_program_options.so.5()(64bit)

Could not get around that and keep plesk in one piece..
 
Hi,

I'm sure it was a lot harder when I was figuring it out!

cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install hhvm

Fails on the dependency error described.

wget http://www.hop5.in/yum/el6/boost-program-options-1.54.0-7.el6.x86_64.rpm
rpm -ivh boost-program-options-1.54.0-7.el6.x86_64.rpm
yum install hhvm

This now fails for me on multilib dependencies

yum remove libstdc++.i686 libgcc.i686
yum install hhvm

This should work.

Let us know how you get on,

Paul.

I've had to build a VPS just to work it through but this butchered state is what my current server has been in since mid-December with no issues yet!
 
Confirmed working in Docker


More info on Docker can be found at:

http://www.docker.io/

and

https://www.docker.io/learn/dockerfile/level1/


This my Dockerfile:


Code:
# Start from the base CentOS 6.4 since CentOS 6.5 is not available yet

FROM centos:6.4


# Update to CentOS 6.5

RUN yum -y update


# Recreate some needed system files for Plesk installation

RUN echo "NETWORKING=yes" > /etc/sysconfig/network
RUN cat /proc/mounts > /etc/mtab


# Install EPEL and RPMForge

RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm


# Install some base dependencies

RUN yum -y install wget rar unrar openssh-server nano screen telnet


Build the prereq image using:


Code:
sudo docker build -t <your-repo>:[your-tag] /path/to/folder/with/Dockerfile

eg:

Code:
sudo docker build -t StéphanS:Plesk-Prereq ~



Now we will install and commit Plesk in privileged mode. (privileged is needed for mknod)
We will also stop all Plesk services after installation in order to avoid '<service> dead but subsys locked' issues.


Code:
sudo docker run -h "plesk.docker.test.yourdomain.com" -privileged=true StéphanS:Plesk-Prereq sh -c 'wget http://autoinstall.plesk.com/plesk-installer -O /root/plesk-installer && chmod u+x $_ && $_ --select-product-id plesk --select-release-latest --branch=release,stable --install-component common --install-component panel && service psa stopall'


We then commit this to a new image:

Code:
sudo docker commit $(sudo docker ps -a -l | awk 'NR==2 {print $1}') StéphanS:Plesk-Base


You now have a clean / fresh installed Plesk image.



From this base we will create a new image with HHVM:

Code:
sudo docker run -h "plesk.docker.test.yourdomain.com" StéphanS:Plesk-Base sh -c 'rpm -ivh http://www.hop5.in/yum/el6/boost-program-options-1.54.0-7.el6.x86_64.rpm; wget http://www.hop5.in/yum/el6/hop5.repo -O /etc/yum.repos.d/hop5.repo; yum -y install hhvm'

Code:
sudo docker commit $(sudo docker ps -a -l | awk 'NR==2 {print $1}') StéphanS:Plesk-HHVM




The entire process takes 15 mins to run.


If all went well, you will not need to rerun anything from the above steps for your container,
you can always start from a fresh Plesk base or a fresh Plesk base with HHVM.
 
Last edited:
Nice!


Will try this once I have completed my tests with Plesk 12 / OpenSUSE 13.1 / systemd
Trying to spawn PHP-FPM on demand with the powers of systemd


Edit: Confirmed installable on CentOS 6.5 x64 / Plesk 12
 
Last edited:
OK the next step is configuring the system to use nginx only (ie take apache out of the equation). This is easy to by installing nginx / php-fpm support and then editing last_nginx.conf and commenting out all port 7081 related info and swapping:


# fastcgi_pass "unix:/var/www/vhosts/system/hhvm.dx3webs.com/php-fpm.sock";

with
fastcgi_pass 127.0.0.1:9000;

so.. how do we automate this or at least manage it nicely. Obviously these get over-written everytime a change is made in plesk
 
That's the easy part ;)

Code:
cp -Ra /usr/local/psa/admin/conf/templates/{default,custom}/


Now edit /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php


More info @ http://download1.parallels.com/Ples...nistration-guide/index.htm?fileName=66758.htm




Plesk gives great flexibility on vhost generation (atleast for Apache, I haven't played with nginx yet).
It's one of the key features for me that allows me to customize everything I need to test and develop new ideas.
 
@StéphanS now that is cool!!

OK got it working a treat.. users can now swap between apache > mod_php / apache > fast cgi and nginx > HHVM

the speed difference is nuts! about 3x faster (40s load with 20 concurrent users pulling random magento pages)
 
I take it this is not for shared hosting?
In other words, you have HHVM pools manually activated?

I'm looking at using systemd and socket activation to dynamically spin up HHVM or PHP-FPM pools.
Too bad CentOS only has systemd starting from CentOS 7.


Right now, testing is being done with Plesk 12 and OpenSUSE 13.1
 
Hi,

@Dx3webs I've gone so far as installing hhvm

Could you please share more about your file /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php ??
What did you put in it?

And what do you mean by editing "last_nginx.conf and commenting out all port 7081"?

Thank you
 
comment out this line(s)

fastcgi_pass "unix:/var/www/vhosts/system/ce1-9.dx3webs.com/php-fpm.sock";

and replace with

fastcgi_pass 127.0.0.1:9001;

and make sure you run hhvm on port 9001 (this will retain compatibility with php-fpm if you use that with other domians)
 
yum install hhvm errors:
Error: Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem. Eg.:

1. You have an upgrade for boost-test which is missing some
dependency that another package requires. Yum is trying to
solve this by installing an older version of boost-test of the
different architecture. If you exclude the bad architecture
yum will tell you what the root cause is (which package
requires what). You can try redoing the upgrade with
--exclude boost-test.otherarch ... this should give you an error
message showing the root cause of the problem.

2. You have multiple architectures of boost-test installed, but
yum can only see an upgrade for one of those arcitectures.
If you don't want/need both architectures anymore then you
can remove the one with the missing update and everything
will work.

3. You have duplicate versions of boost-test installed already.
You can use "yum check" to get yum show these errors.

...you can also use --setopt=protected_multilib=false to remove
this checking, however this is almost never the correct thing to
do as something else is very likely to go wrong (often causing
much more problems).

Protected multilib versions: boost-test-1.41.0-25.el6.centos.i686 != boost-test-1.54.0-9.el6.x86_64
Error: Protected multilib versions: boost-iostreams-1.41.0-25.el6.centos.i686 != boost-iostreams-1.54.0-9.el6.x86_64
Error: Protected multilib versions: boost-python-1.54.0-9.el6.x86_64 != boost-python-1.41.0-25.el6.centos.i686
Error: Protected multilib versions: boost-signals-1.54.0-9.el6.x86_64 != boost-signals-1.41.0-25.el6.centos.i686
Error: Protected multilib versions: boost-serialization-1.41.0-25.el6.centos.i686 != boost-serialization-1.54.0-9.el6.x86_64

** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
boost-program-options-1.54.0-7.el6.x86_64 is a duplicate with boost-program-options-1.41.0-25.el6.centos.x86_64


Can anyone help me?
 
Is it also possible to install it on a Plesk 12.1.8 running on a Ubuntu 14.04 ?
... Or what about Plesk compatybility with CentOS 7? Why everyone still use CentOS 6.5 with Plesk?
 
Back
Top