Switch to php56 using FPM+FastCGI

This commit is contained in:
Daniel Berteaud 2017-07-18 22:52:21 +02:00
parent 024bea784e
commit 2b37f09ca2
6 changed files with 116 additions and 18 deletions

View File

@ -31,7 +31,7 @@ foreach my $share ($a->get_all_by_prop(type => 'share')){
unlink </var/cache/pydio/indexes/.ajxp_lock-$name>
if (time() - $mtime > 18000);
}
system('/usr/bin/sudo -u www /usr/bin/php -d max_execution_time=3600 /usr/share/pydio/cmd.php ' .
system('/usr/bin/sudo -u www /usr/bin/php__PHP_VERSION__ -d max_execution_time=3600 /usr/share/pydio/cmd.php ' .
'-u=RDiin175M40T0cYvXLARpAi+1TsSVkbksEDZ4KvwBuY= '.
'-t=e71479ebc4365176d9f09fe957780024 -a=index '.
'-r='.$name.' --secure_token='.$id.' --dir=/ --_method=put >/dev/null 2>&1');

View File

@ -0,0 +1,9 @@
{
if ($fastcgi_mod eq 'mod_fastcgi'){
$OUT .=<<_EOF;
Action phppydio-fastcgi /php-cgi-bin/phppydio-wrapper
Alias /php-cgi-bin/phppydio-wrapper /var/www/php-cgi-bin/phppydio-wrapper
FastCgiExternalServer /var/www/php-cgi-bin/phppydio-wrapper -socket /var/run/php-fpm/php__PHP_VERSION__-pydio.sock -pass-header Authorization -idle-timeout 120
_EOF
}
}

View File

@ -10,10 +10,44 @@ if (($pydio{'status'} || 'disabled') eq 'enabled'){
" AuthBasicProvider external\n" .
" AuthExternal pwauth\n" .
" Require valid-user\n" : '';
my $maxsize = $pydio{'MaxUploadSize'} || '200M';
my $maxsize = $pydio{'MaxUploadSize'} || '2048M';
my $homedir = $pydio{'HomeDir'} || 'none';
$homedir = (($homedir eq 'enabled') || ($homedir eq 'users')) ? ":/home/e-smith/files/users":"";
my $php =<<_EOF;
AddType application/x-httpd-php .php
php_admin_value open_basedir /usr/share/pydio:/var/lib/pydio:/var/log/pydio:/etc/pydio:/var/cache/pydio:/usr/share/pear/:/usr/share/php/:/home/e-smith/files/shares$homedir
php_admin_value memory_limit 100M
php_admin_value upload_max_filesize $maxsize
php_admin_value post_max_size $maxsize
php_admin_value max_execution_time 900
php_admin_value upload_tmp_dir /var/lib/pydio/tmp
php_admin_value session.save_path /var/lib/pydio/tmp
php_admin_flag output_buffering off
_EOF
my $pubphp=<<_EOF;
AddType application/x-httpd-php .php
_EOF
if ($fastcgi_mod eq 'mod_fastcgi'){
$php = "AddHandler phppydio-fastcgi .php\n";
$pubphp = $php;
}
elsif ($fastcgi_mod eq 'mod_proxy_fcgi'){
$php =<<_EOF;
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm/php__PHP_VERSION__-pydio.sock|fcgi://localhost"
</FilesMatch>
_EOF
$pubphp = $php;
}
my $shares = '';
my $public = $pydio{'PublicShares'} || 'enabled';
@ -22,8 +56,7 @@ if (($pydio{'status'} || 'disabled') eq 'enabled'){
Alias /ajxppub /var/lib/pydio/public
<Directory /var/lib/pydio/public>
Options None
AddType application/x-httpd-php .php
php_admin_value open_basedir /usr/share/pydio:/var/lib/pydio:/var/log/pydio:/etc/pydio:/var/cache/pydio:/usr/share/pear/:/usr/share/php/:/home/e-smith/files/shares$homedir
$pubphp
Order deny,allow
Allow from all
<Files ".ajxp_*">
@ -44,16 +77,8 @@ EOF
$alias
<Directory /usr/share/pydio>
AddType application/x-httpd-php .php
php_admin_value open_basedir /usr/share/pydio:/var/lib/pydio:/var/log/pydio:/etc/pydio:/var/cache/pydio:/usr/share/pear/:/usr/share/php/:/home/e-smith/files/shares$homedir
php_admin_value memory_limit 100M
php_admin_value upload_max_filesize $maxsize
php_admin_value post_max_size $maxsize
php_admin_value max_execution_time 900
php_admin_value upload_tmp_dir /var/lib/pydio/tmp
php_admin_value session.save_path /var/lib/pydio/tmp
php_admin_flag output_buffering off
SSLRequireSSL on
$php
Order deny,allow
Deny from all
Allow from $allow

View File

@ -0,0 +1,55 @@
{
if ($PHP_VERSION eq '__PHP_VERSION__'){
if (($dl{'status'} || 'disabled') eq 'enabled'){
my $max_upload_size = $pydio{MaxUploadSize} || '4096';
$max_upload_size .= 'M' unless ($max_upload_size =~ m/[MG]$/);
my $id = 'pydio';
my $homedir = $pydio{'HomeDir'} || 'none';
$homedir = (($homedir eq 'enabled') || ($homedir eq 'users')) ? ':/home/e-smith/files/users':'';
$OUT .=<<_EOF;
[php$PHP_VERSION-$id]
user = www
group = www
listen.owner = root
listen.group = www
listen.mode = 0660
listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock
pm = dynamic
pm.max_children = 15
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 4
pm.max_requests = 1000
php_admin_value[session.save_path] = /var/lib/php/$id/session
php_admin_value[opcache.file_cache] = /var/lib/php/$id/opcache
php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp
php_admin_value[error_log] = /var/log/php/$id/error.log
slowlog = /var/log/php/dl/slow.log
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName }
php_admin_flag[display_errors] = off
php_admin_flag[log_errors] = on
php_admin_value[error_log] = syslog
php_admin_value[memory_limit] = 128M
php_admin_value[max_execution_time] = 0
php_admin_value[post_max_size] = $max_upload_size
php_admin_value[upload_max_filesize] = $max_upload_size
php_admin_value[disable_functions] = system, show_source, symlink, exec, dl, shell_exec, passthru, phpinfo, escapeshellarg, escapeshellcmd
php_admin_value[open_basedir] = /usr/share/pydio:/var/lib/pydio:/var/log/pydio:/etc/pydio:/var/cache/pydio:/usr/share/pear/:/usr/share/php/:/home/e-smith/files/shares$homedir
php_admin_flag[allow_url_fopen] = off
php_admin_flag[file_upload] = on
php_admin_flag[session.cookie_httponly] = on
php_admin_flag[allow_url_include] = off
php_admin_value[session.save_handler] = files
php_admin_value[output_buffering] = off
_EOF
}
else{
$OUT .= '; Pydio is disabled';
}
}
}

View File

@ -16,7 +16,7 @@ $data->{'core.ajaxplorer'}->{'AJXP_TMP_DIR'} ||= '/var/lib/pydio/tmp';
$data->{'core.ajaxplorer'}->{'DEFAULT_LANGUAGE'} ||= $pydio{'DefaultLanguage'} || 'en';
$data->{'core.ajaxplorer'}->{'APPLICATION_TITLE'} ||= $pydio{'Title'} || 'Pydio';
$data->{'core.ajaxplorer'}->{'CMDLINE_ACTIVE'} ||= '__true__';
$data->{'core.ajaxplorer'}->{'CLI_PHP'} ||= '/usr/bin/php';
$data->{'core.ajaxplorer'}->{'CLI_PHP'} ||= '/usr/bin/php__PHP_VERSION__';
if (($pydio{'PublicShares'} || 'enabled') eq 'enabled'){
$data->{'core.ajaxplorer'}->{'PUBLIC_DOWNLOAD_FOLDER'} ||= '/var/lib/pydio/public';
@ -78,4 +78,4 @@ $data = serialize($data);
# manually
$data =~ s/s:8:"__true__";/b:1;/g;
$OUT = $data;
}
}

View File

@ -2,8 +2,9 @@
# Name: Daniel Berteaud
%define name smeserver-pydio
%define version 0.2.11
%define release 1
%define version 0.3.0
%define release 0.beta1
%define phpversion 56
Summary: SME server integration of pydio
Name: %{name}
Version: %{version}
@ -177,6 +178,9 @@ This contrib works with the smeserver-shared-folders addon
%build
perl ./createlinks
find root/ -type f | xargs grep -l __PHP_VERSION__ | xargs sed -i -e "s/__PHP_VERSION__/%{phpversion}/g"
%{__mkdir_p} root/var/log/php/pydio
%{__mkdir_p} root/var/lib/php/pydio/{tmp,opcache,session}
%install
rm -rf $RPM_BUILD_ROOT
@ -186,7 +190,12 @@ rm -f %{name}-%{version}-filelist
--file /etc/cron.daily/pydio-tmpwatch 'attr(0755,root,root)' \
--file /etc/cron.daily/pydio-indexer 'attr(0700,root,root)' \
--file /usr/bin/pydiopdftotext 'attr(0755,root,root)' \
> %{name}-%{version}-filelist
--dir /var/log/php/pydio 'attr(0770,root,www)' \
--dir /var/lib/php/pydio 'attr(0770,root,www)' \
--dir /var/lib/php/pydio/tmp 'attr(0770,root,www)' \
--dir /var/lib/php/pydio/opcache 'attr(0770,root,www)' \
--dir /var/lib/php/pydio/session 'attr(0770,root,www)' \
> %{name}-%{version}-filelist
%files -f %{name}-%{version}-filelist
%defattr(-,root,root)