Cloudlinux 7.1 и селектор PHP
Форум
  1. Forums
  2. General
  3. General Discussion
  1. Simon
  2. Friday, 23 October 2015
  3.  Subscribe via email
Info
Rate this post:
  1. 23.10.2015 04:10:19
  2. # 1
Simon Accepted Answer
Posts: 4
Joined: 23.10.2015
0
Votes
Undo
Hello,

I've installed a fresh Cloudlinux 7.1, registered and installed CageFS, LVM and PHP Selector. My goal is to run this server globally with a version of PHP 5.3. CentOS 7.1 comes with PHP 5.4 so this is the way I've used to temporary downgrade the version and in the future handle the upgrades.
From the yum output, all seems correctly installed. I've performed following commands:



yum install cagefs
/usr/sbin/cagefsctl --init
yum install lvemanager
yum groupinstall alt-php
yum upd ate cagefs lvemanager
selectorctl --list
selectorctl --current
selectorctl --set-current=5.3
cagefsctl --enable-all

I'm NOT using any WEB gui to manage sites like Plesk or whatever. I've a single virtual host. BTW, even if I've se t-up the default PHP 5.3 it continues to use the native PHP 5.4.

selectorctl  --current --show-native-version
5.3     5.3.29  /opt/alt/php53/usr/bin/php-cgi

If I open the browser pointing it to a test paghe with:

I got always the PHP 5.4.
I'm missing the part on how manually switch the PHP version for apache.

Any help?

Thanks a lot!
  1. 23.10.2015 05:10:51
  2. # 2
kernow Accepted Answer
Posts: 72
Joined: 06.08.2010
0
Votes
Undo
Did you restart Apache after making the changes?
  1. 23.10.2015 05:10:29
  2. # 3
Simon Accepted Answer
Posts: 4
Joined: 23.10.2015
0
Votes
Undo
Yes, I\'ve restarted it (apache 2.4).
Nothing changed. Is there a way to check-debug it? Maybe I\'m missing some steps :(
  1. 23.10.2015 05:10:24
  2. # 4
kernow Accepted Answer
Posts: 72
Joined: 06.08.2010
0
Votes
Undo
After you ran $ /usr/sbin/cagefsctl --init
Did you create the skeleton directory?
$ mkdir /home/cagefs-skeleton
$ ln -s /home/cagefs-skeleton /usr/share/cagefs-skeleton
http://docs.cloudlinux.com/index.html
  1. 23.10.2015 08:10:42
  2. # 5
Simon Accepted Answer
Posts: 4
Joined: 23.10.2015
0
Votes
Undo
As written in the DOC the init does the job. I need the steps you mentioned only if I have not enough space. Look:

# ls -al /usr/share/cagefs-skeleton/
total 76
drwxr-xr-x   13 root root   141 Oct 22 16:57 .
drwxr-xr-x. 122 root root  4096 Oct 22 16:57 ..
lrwxrwxrwx    1 root root     7 Oct 22 16:57 bin -> usr/bin
drwxr-xr-x    4 root root  8192 Oct 22 16:58 dev
drwxr-xr-x    2 root root     6 Oct 22 16:57 etc
dr-xr-xr-x.  28 root root  4096 Oct 22 16:55 lib
dr-xr-xr-x.  55 root root 36864 Oct 22 16:56 lib64
drwxr-xr-x.   6 root root    46 Oct 22 16:55 opt
dr-xr-xr-x  496 root root     0 Oct 22 16:50 proc
drwxr-xr-x    2 root root     6 Oct 22 16:57 root
drwxr-xr-x    3 root root    22 Oct 22 16:57 run
lrwxrwxrwx    1 root root     8 Oct 22 16:57 sbin -> usr/sbin
drwxr-xr-x    2 root root     6 Oct 22 16:57 tmp
drwxr-xr-x   12 root root   135 Jun 24 17:52 usr
drwxr-xr-x    9 root root    94 Oct 22 16:57 var

Also the dirs are ok, so I think.
I missing how apache knows to use the alternate version of PHP.
Looking on the loaded files:

# lsof | grep php
(...)
httpd     40048        apache  mem       REG              253,0    256560  405692052 /usr/lib64/php/modules/pdo.so
(...)

Nothing points me that the alternate version is in use, that should be in a different path, in example, for pdo, not in usr/lib but in opt:

# locate pdo.so
/opt/alt/php51/usr/lib64/php/modules/pdo.so
/opt/alt/php52/usr/lib64/php/modules/pdo.so
/opt/alt/php53/usr/lib64/php/modules/pdo.so
/opt/alt/php54/usr/lib64/php/modules/pdo.so
/opt/alt/php55/usr/lib64/php/modules/pdo.so
/opt/alt/php56/usr/lib64/php/modules/pdo.so
/opt/alt/php70/usr/lib64/php/modules/pdo.so
/usr/lib64/php/modules/pdo.so



What I'm missing...?

ADD
I think not having any control panel, I need to setup the apache config files to point to the new php manually per virtualhost. So I need help on that (I think)
  1. 23.10.2015 14:10:29
  2. # 6
Bogdan Accepted Answer
Posts: 709
Joined: 26.06.2013
0
Votes
Undo
Hi,

Well, it\'s hard to decide what is wrong there, but for proper php-selector work you need active system user with enabled cagefs, as all php-switches are done with prelinking inside cagefs. I suggest you using the following KB article as base for your setup: http://kb.cloudlinux.com/2015/09/configuring-cloudlinux-software-and-php-handlers-on-a-server-without-control-panel/
  1. 26.10.2015 04:10:56
  2. # 7
Simon Accepted Answer
Posts: 4
Joined: 23.10.2015
0
Votes
Undo
Hello!

Thanks a lot for the link. I've made some steps forward, but I'm getting some errors. I've corrected the setup to match the CentOS 7.1 version.
So, switching to the user I can see the right php version:

ROOT:
# php -v
PHP Warning:  PHP Startup: No such handler: gdbm in Unknown on line 0
PHP 5.4.16 (cli) (built: Jun 23 2015 21:17:27) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies



USER:
# su - my_user
Last login: Mon Oct 26 09:02:52 CET 2015 on pts/2
-bash-4.2$ php -v
PHP 5.3.29 (cli) (built: Aug 19 2015 10:05:30) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies


The document root of the site is located here:
DocumentRoot /home/my_user/jail/ramdisk/my_site/



I've recompiled suexec as well and it matches now:

# suexec -V
 -D AP_DOC_ROOT="/home"
 -D AP_GID_MIN=500
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"


BTW a phpinfo shows me always the default php.
Does the "AP_USERDIR_SUFFIX" have something to do not matching the default users DocumentRoot?

Here my httpd conf:




        ServerName www.my_site
        ServerAlias new.my_site
        DocumentRoot /home/my_user/jail/ramdisk/my_site/

        ErrorLog /home/my_user/jail/logs/my_site_error_log
        CustomLog /home/my_user/jail/logs/my_site_access_log combined

        ScriptAlias /cgi-bin/ /home/my_user/jail/ramdisk/my_site/cgi-bin/
        SuexecUserGroup my_user my_user

       

                AllowOverride FileInfo AuthConfig Indexes Limit Options=Indexes,FollowSymLinks

                Options +MultiViews +Indexes +SymLinksIfOwnerMatch +IncludesNoExec +FollowSymLinks +ExecCGI

                Require all granted

                AddHandler php5-fastcgi .php
                Action php5-fastcgi /cgi-bin/php.fcgi

       


       
                AllowOverride None
                Options +FollowSymLinks
                Require all granted
       




I've tried the suPHP version as well, but cannot find the package in the Cloudlinux repo:

# yum install mod_suphp
Loaded plugins: dellsysid, fastestmirror, rhnplugin
This system is receiving updates from CLN.
Loading mirror speeds from cached hostfile
 * cloudlinux-x86_64-server-7: cl-mirror.cloud.dk
 * epel: mirror.de.leaseweb.net
No package mod_suphp available.
Error: Nothing to do


Suggestions?

Thanks!

Simon
  1. 29.10.2015 05:10:42
  2. # 8
Bogdan Accepted Answer
Posts: 709
Joined: 26.06.2013
0
Votes
Undo
As far as I see you have configured php to use fastcgi, if so mod_suphp is not needed.

Anyway, next step is to check if your user has been properly identified when opening from web, please create a simple php script to display whoami:

<?php echo exec(\"whoami\") ; ?> 


I see you defined SuexecUserGroup in virtualhost, but if this test page will say root/nobody it means something not Ok with suexec, or it was not loaded.

If you see username then check if suexec is really patched, you should see some LVE functions in binary, like:

$ strings /usr/local/apache/bin/suexec | grep -i lve
liblve.so.0
lve_jail_uid
failed to init LVE library %s
  • Page :
  • 1


There are no replies made for this post yet.
Be one of the first to reply to this post!
гость
Submit Your Response
Upload files or images for this discussion by clicking on the upload button below. Supports gif,jpg,png,zip,rar,pdf
• Insert • Remove Upload Files (Maximum File Size: 2 MB)
Captcha
To protect the site from bots and unauthorized scripts, we require that you enter the captcha codes below before posting your question.