Skip to content

Commit

Permalink
upgrade to PHP7.2
Browse files Browse the repository at this point in the history
  • Loading branch information
nachoparker committed Sep 29, 2018
1 parent 66e4d83 commit 4bce1bb
Show file tree
Hide file tree
Showing 11 changed files with 139 additions and 42 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This code also generates the [NextCloudPi docker images](https://hub.docker.com/
* Raspbian 9 stretch
* Nextcloud 14.0.1
* Apache 2.4.25, with HTTP2 enabled
* PHP 7.0 (double the speed of PHP5!)
* PHP 7.2
* MariaDB 10
* Redis memory cache ( NEW 11-12-2017 )
* 4.9 Linux Kernel ( NEW 03-13-2017 )
Expand Down
2 changes: 1 addition & 1 deletion buildlib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ function resize_image()
echo -e "\n\e[1m[ Resize Image ]\e[0m"
fallocate -l$SIZE "$IMG"
parted "$IMG" -- resizepart 2 -1s
DEV="$( losetup -f )"
DEV="$( sudo losetup -f )"
mount_raspbian "$IMG"
sudo resize2fs -f "$DEV"
echo "Image resized"
Expand Down
12 changes: 8 additions & 4 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@

[v0.60.8](https://github.com/nextcloud/nextcloudpi/commit/57999b6) (2018-09-24) ncp-web: put configuration in a separate file from available languages
[v0.62.0](https://github.com/nextcloud/nextcloudpi/commit/aca5004) (2018-09-23) upgrade to NC14

[v0.60.7](https://github.com/nextcloud/nextcloudpi/commit/cdbb750) (2018-09-24) docker: disable auto-upgrade until it is adapted to containers
[v0.61.0, php72](https://github.com/nextcloud/nextcloudpi/commit/20c1e8a) (2018-06-21) upgrade to PHP7.2

[v0.60.8](https://github.com/nextcloud/nextcloudpi/commit/6152e7e) (2018-09-24) ncp-web: put configuration in a separate file from available languages

[v0.60.7 ](https://github.com/nextcloud/nextcloudpi/commit/cdbb750) (2018-09-24) docker: disable auto-upgrade until it is adapted to containers

[v0.60.6 ](https://github.com/nextcloud/nextcloudpi/commit/1150ed8) (2018-09-24) nc-format-USB: fix

[v0.60.5 ](https://github.com/nextcloud/nextcloudpi/commit/3de5fe0) (2018-09-23) armbian: fix locales for ncp-config

[v0.60.4, master](https://github.com/nextcloud/nextcloudpi/commit/a7f0fd2) (2018-09-23) build: use a separate file for NCP database config
[v0.60.4 ](https://github.com/nextcloud/nextcloudpi/commit/a7f0fd2) (2018-09-23) build: use a separate file for NCP database config

[v0.60.3](https://github.com/nextcloud/nextcloudpi/commit/1bfcebc) (2018-09-23) nc-update-nextcloud: workaround news integrity bug
[v0.60.3 ](https://github.com/nextcloud/nextcloudpi/commit/1bfcebc) (2018-09-23) nc-update-nextcloud: workaround news integrity bug

[v0.60.2 ](https://github.com/nextcloud/nextcloudpi/commit/5914624) (2018-09-21) DDNS_spdyn.sh : Send new IP only when changed.

Expand Down
6 changes: 4 additions & 2 deletions docker-common/lamp/010lamp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

PHPVER=7.2

source /usr/local/etc/library.sh

set -e
Expand All @@ -8,7 +10,7 @@ set -e
echo "Stopping apache"
apachectl graceful-stop
echo "Stopping PHP-fpm"
killall php-fpm7.0
killall php-fpm${PHPVER}
echo "Stopping mariaDB"
mysqladmin -u root shutdown
echo "LAMP cleanup complete"
Expand All @@ -19,7 +21,7 @@ set -e
persistent_cfg /etc/apache2

echo "Starting PHP-fpm"
php-fpm7.0 &
php-fpm${PHPVER}

echo "Starting Apache"
/usr/sbin/apache2ctl start
Expand Down
10 changes: 6 additions & 4 deletions etc/ncp-config.d/nc-datadir.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ DESCRIPTION="Change your data dir to a new location, like a USB drive"
INFO="Note that non Unix filesystems such as NTFS are not supported
because they do not provide a compatible user/permissions system"

PHPVER=7.2

is_active()
{
local SRCDIR
Expand Down Expand Up @@ -91,12 +93,12 @@ configure()
# tmp upload dir
mkdir -p "$DATADIR_/tmp"
chown www-data:www-data "$DATADIR_/tmp"
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR_/tmp|" /etc/php/7.0/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR_/tmp|" /etc/php/7.0/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR_/tmp|" /etc/php/7.0/fpm/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR_/tmp|" /etc/php/${PHPVER}/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR_/tmp|" /etc/php/${PHPVER}/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR_/tmp|" /etc/php/${PHPVER}/fpm/php.ini

# opcache dir
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR_/.opcache|" /etc/php/7.0/mods-available/opcache.ini
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR_/.opcache|" /etc/php/${PHPVER}/mods-available/opcache.ini

# update fail2ban logpath
sed -i "s|logpath =.*nextcloud.log|logpath = $DATADIR_/nextcloud.log|" /etc/fail2ban/jail.conf
Expand Down
7 changes: 4 additions & 3 deletions etc/ncp-config.d/nc-limits.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ MAXFILESIZE_=10G
MEMORYLIMIT_=0
PHPTHREADS_=0
REDISMEM_=0
PHPVER=7.2

DESCRIPTION="Configure system limits for NextCloudPi"
INFO="Examples: 200M or 2G. Write 0 for autoconfig"
Expand All @@ -36,7 +37,7 @@ configure()
sed -i "s/memory_limit=.*/memory_limit=$MEMORYLIMIT_/" "$CONF"

# MAX PHP THREADS
local CONF=/etc/php/7.0/fpm/pool.d/www.conf
local CONF=/etc/php/${PHPVER}/fpm/pool.d/www.conf
local CURRENT_THREADS=$( grep "^pm.max_children" "$CONF" | awk '{ print $3 }' )
[[ "$PHPTHREADS_" == "0" ]] && PHPTHREADS_=$( nproc ) && echo "Using $PHPTHREADS_ PHP threads"
sed -i "s|pm.max_children =.*|pm.max_children = $PHPTHREADS_|" "$CONF"
Expand All @@ -48,10 +49,10 @@ configure()
[[ "$MEMORYLIMIT" != "$CURRENT_PHP_MEM" ]] || \
[[ "$MAXFILESIZE_" != "$CURRENT_FILE_SIZE" ]] && {
bash -c " sleep 3
service php7.0-fpm stop
service php${PHPVER}-fpm stop
service mysql stop
sleep 0.5
service php7.0-fpm start
service php${PHPVER}-fpm start
service mysql start
" &>/dev/null &
}
Expand Down
24 changes: 13 additions & 11 deletions etc/ncp-config.d/nc-nextcloud.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ MEMORYLIMIT_=768M
MAXTRANSFERTIME_=3600
DBADMIN=ncadmin
REDIS_MEM=3gb
PHPVER=7.2
DESCRIPTION="Install any NextCloud version"

APTINSTALL="apt-get install -y --no-install-recommends"
Expand All @@ -40,8 +41,9 @@ install()
# Optional packets for Nextcloud and Apps
apt-get update
$APTINSTALL lbzip2 iputils-ping
$APTINSTALL php-smbclient # for external storage
$APTINSTALL php-imagick imagemagick-6-common # for gallery
$APTINSTALL -t buster php-smbclient # for external storage
$APTINSTALL -t buster imagemagick php${PHPVER}-imagick php${PHPVER}-exif # for gallery


# POSTFIX
$APTINSTALL postfix || {
Expand All @@ -54,8 +56,8 @@ install()
mv /newaliases /usr/bin/newaliases
}

# REDIS
$APTINSTALL redis-server php7.0-redis
$APTINSTALL redis-server
$APTINSTALL -t buster php${PHPVER}-redis

local REDIS_CONF=/etc/redis/redis.conf
local REDISPASS="default"
Expand All @@ -74,10 +76,10 @@ install()
systemctl restart redis-server
systemctl enable redis-server

systemctl stop php7.0-fpm
systemctl stop php${PHPVER}-fpm
systemctl stop mysql
sleep 0.5
systemctl start php7.0-fpm
systemctl start php${PHPVER}-fpm
systemctl start mysql
}

Expand Down Expand Up @@ -155,8 +157,8 @@ configure()
fi

# create and configure opcache dir
OPCACHEDIR=/var/www/nextcloud/data/.opcache
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$OPCACHEDIR|" /etc/php/7.0/mods-available/opcache.ini
local OPCACHEDIR=/var/www/nextcloud/data/.opcache
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$OPCACHEDIR|" /etc/php/${PHPVER}/mods-available/opcache.ini
mkdir -p $OPCACHEDIR
chown -R www-data:www-data $OPCACHEDIR

Expand Down Expand Up @@ -242,9 +244,9 @@ EOF
local UPLOADTMPDIR=/var/www/nextcloud/data/tmp
mkdir -p "$UPLOADTMPDIR"
chown www-data:www-data "$UPLOADTMPDIR"
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $UPLOADTMPDIR|" /etc/php/7.0/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $UPLOADTMPDIR|" /etc/php/7.0/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $UPLOADTMPDIR|" /etc/php/7.0/fpm/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $UPLOADTMPDIR|" /etc/php/${PHPVER}/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $UPLOADTMPDIR|" /etc/php/${PHPVER}/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $UPLOADTMPDIR|" /etc/php/${PHPVER}/fpm/php.ini


# slow transfers will be killed after this time
Expand Down
13 changes: 7 additions & 6 deletions etc/ncp-config.d/nc-restore.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ BACKUPFILE="$1"
DBADMIN=ncadmin
DBPASSWD="$( grep password /root/.my.cnf | sed 's|password=||' )"
PHPVER=7.2
DIR="$( cd "$( dirname "$BACKUPFILE" )" &>/dev/null && pwd )" #abspath
Expand Down Expand Up @@ -140,14 +141,14 @@ else
fi
# Just in case we moved the opcache dir
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR/.opcache|" /etc/php/7.0/mods-available/opcache.ini
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR/.opcache|" /etc/php/${PHPVER}/mods-available/opcache.ini
# tmp upload dir
mkdir -p "$DATADIR/tmp"
chown www-data:www-data "$DATADIR/tmp"
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/7.0/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/7.0/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR/tmp|" /etc/php/7.0/fpm/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/fpm/php.ini
# update fail2ban logpath
[[ ! -f /.docker-image ]] && {
Expand All @@ -161,10 +162,10 @@ bash /usr/local/bin/nextcloud-domain.sh
# restart PHP if needed
[[ "$NEED_RESTART" == "1" ]] && \
bash -c " sleep 3
service php7.0-fpm stop
service php${PHPVER}-fpm stop
service mysql stop
sleep 0.5
service php7.0-fpm start
service php${PHPVER}-fpm start
service mysql start
" &>/dev/null &
EOF
Expand Down
2 changes: 1 addition & 1 deletion etc/ncp-config.d/samba.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ This can be done manually or automatically using 'nc-scan' and 'nc-scan-auto'"
install()
{
apt-get update
apt-get install --no-install-recommends -y samba
apt-get install --no-install-recommends -y -t buster samba
update-rc.d smbd disable
update-rc.d nmbd disable

Expand Down
29 changes: 22 additions & 7 deletions lamp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,36 @@
# More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/
#

PHPVER=7.2
APTINSTALL="apt-get install -y --no-install-recommends"
export DEBIAN_FRONTEND=noninteractive

install()
{
apt-get update
# Raspbian still doesn't support Buster -> http://archive.raspberrypi.org/debian/dists/
# Get Debian Buster sources
echo "deb https://deb.debian.org/debian buster main contrib non-free" > /etc/apt/sources.list.d/ncp-buster.list
cat > /etc/apt/preferences.d/10-ncp-buster <<EOF
Package: *
Pin: release n=stretch
Pin-Priority: 600
EOF

# Debian Buster repository keys are not in the Raspbian Stretch keyring. Install the Debian keyring
apt-get --allow-unauthenticated update
$APTINSTALL --allow-unauthenticated debian-archive-keyring

# INSTALL
##########################################

apt-get update
$APTINSTALL apt-utils cron
$APTINSTALL apache2
$APTINSTALL php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache \
php7.0-mbstring php7.0-xml php7.0-zip php7.0-fileinfo php7.0-ldap \
php7.0-intl libmagickcore-6.q16-2-extra php7.0-imagick php-mcrypt

$APTINSTALL -t buster php${PHPVER} php${PHPVER}-curl php${PHPVER}-gd php${PHPVER}-fpm php${PHPVER}-cli php${PHPVER}-opcache \
php${PHPVER}-mbstring php${PHPVER}-xml php${PHPVER}-zip php${PHPVER}-fileinfo php${PHPVER}-ldap \
php${PHPVER}-intl php${PHPVER}-bz2 php${PHPVER}-json

mkdir -p /run/php

# mariaDB password
Expand All @@ -43,7 +58,7 @@ install()

debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password password $DBPASSWD"
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password_again password $DBPASSWD"
$APTINSTALL mariadb-server php7.0-mysql
$APTINSTALL mariadb-server php${PHPVER}-mysql
mkdir -p /run/mysqld
chown mysql /run/mysqld

Expand Down Expand Up @@ -85,7 +100,7 @@ EOF
# CONFIGURE PHP7
##########################################

cat > /etc/php/7.0/mods-available/opcache.ini <<EOF
cat > /etc/php/${PHPVER}/mods-available/opcache.ini <<EOF
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
Expand All @@ -101,7 +116,7 @@ EOF
a2enmod http2
a2enconf http2
a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm
a2enconf php${PHPVER}-fpm
a2enmod rewrite
a2enmod headers
a2enmod dir
Expand Down
74 changes: 72 additions & 2 deletions update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,78 @@ EOF
cd - &>/dev/null
}

# fix locale for Armbian images, for ncp-config
[[ "$LANG" == "" ]] && localectl set-locale LANG=en_US.utf8
# PHP7.2
[[ -e /etc/php/7.2 ]] || {
PHPVER=7.2
APTINSTALL="apt-get install -y --no-install-recommends"
export DEBIAN_FRONTEND=noninteractive

ncc maintenance:mode --on

apt-get update
$APTINSTALL apt-transport-https

echo "deb https://deb.debian.org/debian buster main contrib non-free" > /etc/apt/sources.list.d/ncp-buster.list
cat > /etc/apt/preferences.d/10-ncp-buster <<EOF
Package: *
Pin: release n=stretch
Pin-Priority: 600
EOF

apt-get --allow-unauthenticated update
$APTINSTALL --allow-unauthenticated debian-archive-keyring

apt-get update

apt-get purge -y php7.0-*
apt-get autoremove -y

$APTINSTALL -t buster php${PHPVER} php${PHPVER}-curl php${PHPVER}-gd php${PHPVER}-fpm php${PHPVER}-cli php${PHPVER}-opcache \
php${PHPVER}-mbstring php${PHPVER}-xml php${PHPVER}-zip php${PHPVER}-fileinfo php${PHPVER}-ldap \
php${PHPVER}-intl php${PHPVER}-bz2 php${PHPVER}-json

$APTINSTALL php${PHPVER}-mysql
$APTINSTALL -t buster php${PHPVER}-redis
$APTINSTALL -t buster php-smbclient # for external storage
$APTINSTALL -t buster imagemagick php${PHPVER}-imagick php${PHPVER}-exif # for gallery

cat > /etc/php/${PHPVER}/mods-available/opcache.ini <<EOF
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.fast_shutdown=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
opcache.file_cache=/tmp;
EOF
a2enconf php${PHPVER}-fpm


DATADIR="$( grep datadirectory /var/www/nextcloud/config/config.php | awk '{ print $3 }' | grep -oP "[^']*[^']" | head -1 )"
UPLOADTMPDIR="$DATADIR"/tmp
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $UPLOADTMPDIR|" /etc/php/${PHPVER}/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $UPLOADTMPDIR|" /etc/php/${PHPVER}/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $UPLOADTMPDIR|" /etc/php/${PHPVER}/fpm/php.ini

OPCACHEDIR="$DATADIR"/.opcache
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$OPCACHEDIR|" /etc/php/${PHPVER}/mods-available/opcache.ini

apt-get autoremove -y

ncc maintenance:mode --off

bash -c "sleep 5 && service apache2 restart" &>/dev/null &
bash -c " sleep 3
service php${PHPVER}-fpm stop
service mysql stop
sleep 0.5
service php${PHPVER}-fpm start
service mysql start
" &>/dev/null &
}

} # end - only live updates

Expand Down

0 comments on commit 4bce1bb

Please sign in to comment.