In short: on a fresh Debian 10
fails the first time on compiling imagick for PHP 8, but runs fine when executed the second time.
Steps to reproduce the problem
1.
2.
3.
4.
5.
6.
Now run:
7. The error
8. Now run
again.
9. The result
Two different setup.sh files?
After the previous steps I have redownloaded setup.sh to another location
and compared with the one residing in /usr/local/directadmin/scripts/setup.sh. Please note, previously in step 2 I was downloading setup.sh into `/usr/local/directadmin/scripts/setup.sh` (wget -O /usr/local/directadmin/scripts/setup.sh...).
Code:
setup.sh auto
Steps to reproduce the problem
1.
Code:
mkdir -p /usr/local/directadmin/{custombuild,scripts}
2.
Code:
wget -O /usr/local/directadmin/scripts/setup.sh http://www.directadmin.com/setup.sh
chmod +x /usr/local/directadmin/scripts/setup.sh
3.
Code:
echo 1 > /root/.preinstall
4.
Code:
cat <<EOF > /usr/local/directadmin/custombuild/options.conf
#PHP Settings
php1_release=8.0
php1_mode=mod_php
php2_release=7.4
php2_mode=php-fpm
php3_release=7.3
php3_mode=php-fpm
php4_release=7.2
php4_mode=php-fpm
secure_php=yes
php_ini=no
php_timezone=Europe/Warsaw
php_ini_type=production
x_mail_header=yes
#MySQL Settings
mysql=5.7
mariadb=10.4
mysql_inst=mysql
mysql_backup=yes
mysql_backup_gzip=no
mysql_backup_dir=/usr/local/directadmin/custombuild/mysql_backups
mysql_force_compile=no
#WEB Server Settings
unit=no
webserver=apache
http_methods=ALL
litespeed_serialno=trial
modsecurity=yes
modsecurity_ruleset=owasp
apache_ver=2.4
apache_mpm=auto
mod_ruid2=no
userdir_access=no
harden_symlinks_patch=yes
use_hostname_for_alias=no
redirect_host=da.contoso.com
redirect_host_https=no
#WEB Applications Settings
phpmyadmin=yes
phpmyadmin_public=yes
phpmyadmin_ver=5
squirrelmail=no
roundcube=yes
webapps_inbox_prefix=no
#ClamAV-related Settings
clamav=yes
clamav_exim=yes
modsecurity_uploadscan=no
proftpd_uploadscan=no
pureftpd_uploadscan=no
suhosin_php_uploadscan=no
#Mail Settings
exim=yes
eximconf=yes
eximconf_release=4.5
blockcracking=no
easy_spam_fighter=no
spamd=spamassassin
sa_update=daily
dovecot=yes
dovecot_conf=yes
mail_compress=no
pigeonhole=yes
#FTP Settings
ftpd=pureftpd
#Statistics Settings
awstats=no
webalizer=yes
#PHP Extension Settings
#CustomBuild Settings
custombuild=2.0
custombuild_plugin=yes
autover=no
bold=yes
clean=yes
cleanapache=yes
clean_old_tarballs=yes
clean_old_webapps=yes
downloadserver=files-de.directadmin.com
unofficial_mirrors=no
#Cronjob Settings
cron=yes
cron_frequency=daily
[email protected]
notifications=yes
da_autoupdate=no
updates=no
webapps_updates=no
#CloudLinux Settings
cloudlinux=no
cloudlinux_beta=no
cagefs=no
#Advanced Settings
curl=no
ssl_configuration=intermediate
#PHP extensions can be found in php_extensions.conf
cat: cat: No such file or directory
#PHP Settings
php1_release=8.0
php1_mode=mod_php
php2_release=7.4
php2_mode=php-fpm
php3_release=7.3
php3_mode=php-fpm
php4_release=7.2
php4_mode=php-fpm
secure_php=yes
php_ini=no
php_timezone=Europe/Warsaw
php_ini_type=production
x_mail_header=yes
#MySQL Settings
mysql=5.7
mariadb=10.4
mysql_inst=mysql
mysql_backup=yes
mysql_backup_gzip=no
mysql_backup_dir=/usr/local/directadmin/custombuild/mysql_backups
mysql_force_compile=no
#WEB Server Settings
unit=no
webserver=apache
http_methods=ALL
litespeed_serialno=trial
modsecurity=yes
modsecurity_ruleset=owasp
apache_ver=2.4
apache_mpm=auto
mod_ruid2=no
userdir_access=no
harden_symlinks_patch=yes
use_hostname_for_alias=no
redirect_host=da.contoso.com
redirect_host_https=no
#WEB Applications Settings
phpmyadmin=yes
phpmyadmin_public=yes
phpmyadmin_ver=5
squirrelmail=no
roundcube=yes
webapps_inbox_prefix=no
#ClamAV-related Settings
clamav=yes
clamav_exim=yes
modsecurity_uploadscan=no
proftpd_uploadscan=no
pureftpd_uploadscan=no
suhosin_php_uploadscan=no
#Mail Settings
exim=yes
eximconf=yes
eximconf_release=4.5
blockcracking=no
easy_spam_fighter=no
spamd=spamassassin
sa_update=daily
dovecot=yes
dovecot_conf=yes
mail_compress=no
pigeonhole=yes
#FTP Settings
ftpd=pureftpd
#Statistics Settings
awstats=no
webalizer=yes
#PHP Extension Settings
#CustomBuild Settings
custombuild=2.0
custombuild_plugin=yes
autover=no
bold=yes
clean=yes
cleanapache=yes
clean_old_tarballs=yes
clean_old_webapps=yes
downloadserver=files-de.directadmin.com
unofficial_mirrors=no
#Cronjob Settings
cron=yes
cron_frequency=daily
[email protected]
notifications=yes
da_autoupdate=no
updates=no
webapps_updates=no
#CloudLinux Settings
cloudlinux=no
cloudlinux_beta=no
cagefs=no
#Advanced Settings
curl=no
ssl_configuration=intermediate
#PHP extensions can be found in php_extensions.conf
EOF
5.
Code:
cat <<EOF > /usr/local/directadmin/custombuild/php_extensions.conf
#PHP Extension Settings
gmp=yes
htscanner=yes
imagick=yes
imap=yes
ioncube=yes
ldap=yes
opcache=yes
phalcon=yes
suhosin=yes
snuffleupagus=yes
xmlrpc=yes
zend=yes
EOF
6.
Now run:
Code:
/usr/local/directadmin/scripts/setup.sh auto
7. The error
Code:
imagick 3.4.4-patched-php8 PHP extension has been installed successfully.
Downloading imagick-3.4.4.tgz...
--2021-02-04 07:13:43-- https://files-de.directadmin.com/services/custombuild/imagick/imagick-3.4.4.tgz
Resolving files-de.directadmin.com (files-de.directadmin.com)... 46.4.143.169, 2a01:4f8:10a:6db::4
Connecting to files-de.directadmin.com (files-de.directadmin.com)|46.4.143.169|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 253434 (247K) [application/octet-stream]
Saving to: '/usr/local/directadmin/custombuild/imagick-3.4.4.tgz'
/usr/local/directadmin/custombuild/imagick-3.4.4.tgz 100%[========================================================================================================================================>] 247.49K --.-KB/s in 0.02s
2021-02-04 07:13:43 (11.8 MB/s) - '/usr/local/directadmin/custombuild/imagick-3.4.4.tgz' saved [253434/253434]
Installing imagick-3.4.4 PHP extension for PHP 80...
Found /usr/local/directadmin/custombuild/imagick-3.4.4.tgz
Extracting /usr/local/directadmin/custombuild/imagick-3.4.4.tgz...
Configuring for:
PHP Api Version: 20200930
Zend Module Api No: 20200930
Zend Extension Api No: 420200930
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for PHP prefix... /usr/local/php80
checking for PHP includes... -I/usr/local/php80/include/php -I/usr/local/php80/include/php/main -I/usr/local/php80/include/php/TSRM -I/usr/local/php80/include/php/Zend -I/usr/local/php80/include/php/ext -I/usr/local/php80/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/php80/lib/php/extensions/no-debug-non-zts-20200930
checking for PHP installed headers prefix... /usr/local/php80/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for gawk... no
checking for nawk... nawk
checking if nawk is broken... no
checking whether to enable the imagick extension... yes, shared
checking for pkg-config... /usr/bin/pkg-config
checking ImageMagick MagickWand API configuration program... checking Testing /usr/local/bin/MagickWand-config... It exists
found in /usr/local/bin/MagickWand-config
checking if ImageMagick version is at least 6.2.4... found version 7.0.10 Q16 HDRI
checking for MagickWand.h or magick-wand.h header... /usr/local/include/ImageMagick-7/MagickWand/MagickWand.h
checking PHP version is at least 5.3.2... yes. found 8.0.1
libs
-L/usr/local/lib -lMagickWand-7.Q16HDRI -lMagickCore-7.Q16HDRI
checking for MagickGetVersion... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognize dependent libraries... pass_all
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 1572864
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if cc supports -fno-rtti -fno-exceptions... no
checking for cc option to produce PIC... -fPIC
checking if cc PIC flag -fPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
creating libtool
appending configuration tag "CXX" to libtool
configure: patching config.h.in
configure: creating ./config.status
config.status: creating config.h
Trying to make imagick-3.4.4 PHP extension...
/bin/sh /usr/local/directadmin/custombuild/imagick-3.4.4/libtool --mode=compile cc -I. -I/usr/local/directadmin/custombuild/imagick-3.4.4 -I/usr/local/directadmin/custombuild/imagick-3.4.4/include -I/usr/local/directadmin/custombuild/imagick-3.4.4/main -I/usr/local/directadmin/custombuild/imagick-3.4.4 -I/usr/local/php80/include/php -I/usr/local/php80/include/php/main -I/usr/local/php80/include/php/TSRM -I/usr/local/php80/include/php/Zend -I/usr/local/php80/include/php/ext -I/usr/local/php80/include/php/ext/date/lib -I/usr/local/include/ImageMagick-7 -DHAVE_CONFIG_H -g -O2 -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/include/ImageMagick-7 -c /usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c -o imagick_file.lo
mkdir .libs
cc -I. -I/usr/local/directadmin/custombuild/imagick-3.4.4 -I/usr/local/directadmin/custombuild/imagick-3.4.4/include -I/usr/local/directadmin/custombuild/imagick-3.4.4/main -I/usr/local/directadmin/custombuild/imagick-3.4.4 -I/usr/local/php80/include/php -I/usr/local/php80/include/php/main -I/usr/local/php80/include/php/TSRM -I/usr/local/php80/include/php/Zend -I/usr/local/php80/include/php/ext -I/usr/local/php80/include/php/ext/date/lib -I/usr/local/include/ImageMagick-7 -DHAVE_CONFIG_H -g -O2 -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/include/ImageMagick-7 -c /usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c -fPIC -DPIC -o .libs/imagick_file.o
In file included from /usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:22:
/usr/local/directadmin/custombuild/imagick-3.4.4/php_imagick_file.h:61:108: error: expected ';', ',' or ')' before 'TSRMLS_DC'
zend_bool php_imagick_file_init(struct php_imagick_file_t *file, const char *filename, size_t filename_len TSRMLS_DC);
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/php_imagick_file.h:65:54: error: expected ';', ',' or ')' before 'TSRMLS_DC'
int php_imagick_safe_mode_check(const char *filename TSRMLS_DC);
^~~~~~~~~
In file included from /usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:22:
/usr/local/directadmin/custombuild/imagick-3.4.4/php_imagick_file.h:68:134: error: expected ';', ',' or ')' before 'TSRMLS_DC'
php_imagick_rw_result_t php_imagick_read_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC);
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/php_imagick_file.h:71:153: error: expected ';', ',' or ')' before 'TSRMLS_DC'
php_imagick_rw_result_t php_imagick_write_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type, zend_bool adjoin TSRMLS_DC);
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/php_imagick_file.h:74:112: error: expected ';', ',' or ')' before 'TSRMLS_DC'
zend_bool php_imagick_stream_handler(php_imagick_object *intern, php_stream *stream, ImagickOperationType type TSRMLS_DC);
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:81:51: error: expected ';', ',' or ')' before 'TSRMLS_DC'
zend_bool php_imagick_is_url(const char *filename TSRMLS_DC)
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:91:108: error: expected ';', ',' or ')' before 'TSRMLS_DC'
zend_bool php_imagick_file_init(struct php_imagick_file_t *file, const char *filename, size_t filename_len TSRMLS_DC)
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:160:133: error: expected ';', ',' or ')' before 'TSRMLS_DC'
int php_imagick_read_image_using_imagemagick(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC)
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:201:133: error: expected ';', ',' or ')' before 'TSRMLS_DC'
int php_imagick_read_image_using_php_streams(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC)
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:255:54: error: expected ';', ',' or ')' before 'TSRMLS_DC'
int php_imagick_safe_mode_check(const char *filename TSRMLS_DC)
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:269:134: error: expected ';', ',' or ')' before 'TSRMLS_DC'
php_imagick_rw_result_t php_imagick_read_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC)
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:288:153: error: expected ';', ',' or ')' before 'TSRMLS_DC'
php_imagick_rw_result_t php_imagick_write_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type, zend_bool adjoin TSRMLS_DC)
^~~~~~~~~
/usr/local/directadmin/custombuild/imagick-3.4.4/imagick_file.c:313:112: error: expected ';', ',' or ')' before 'TSRMLS_DC'
zend_bool php_imagick_stream_handler(php_imagick_object *intern, php_stream *stream, ImagickOperationType type TSRMLS_DC)
^~~~~~~~~
make: *** [Makefile:209: imagick_file.lo] Error 1
8. Now run
Code:
chmod +x /usr/local/directadmin/scripts/setup.sh
/usr/local/directadmin/scripts/setup.sh auto
9. The result
Code:
## INSTALL_COMPLETE
## ACCOUNT_INFO
The following information has been set:
Admin username: admin
Admin password: ******************
Admin email: [email protected]
Server IP: 1.2.3.4
Server Hostname: da.contoso.com
To login now, follow this link:
http://1.2.3.4:2222
and enter your Admin username and password when prompted.
You should now visit https://www.directadmin.com/newinstall.php to learn how to get started.
Thank you for using DirectAdmin. Should you have any questions, don't hesitate to contact us at [email protected]
## REPORT_END
System Security Tips:
http://help.directadmin.com/item.php?id=247
PHP has been secured.
Restarting php-fpm74.
Restarting php-fpm73.
Restarting php-fpm72.
Install Complete!
If you cannot connect to the login URL, then it is likely that a firewall is blocking port 2222. Please see:
https://help.directadmin.com/item.php?id=75
Code:
# php -v
PHP 8.0.1 (cli) (built: Feb 4 2021 07:36:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.1, Copyright (c) Zend Technologies
with Zend OPcache v8.0.1, Copyright (c), by Zend Technologies
Code:
# php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imagick
imap
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
snuffleupagus
soap
sockets
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
Two different setup.sh files?
After the previous steps I have redownloaded setup.sh to another location
Code:
wget -O /tmp/setup.sh http://www.directadmin.com/setup.sh
and compared with the one residing in /usr/local/directadmin/scripts/setup.sh. Please note, previously in step 2 I was downloading setup.sh into `/usr/local/directadmin/scripts/setup.sh` (wget -O /usr/local/directadmin/scripts/setup.sh...).
Diff:
# diff -u /tmp/setup.sh /usr/local/directadmin/scripts/setup.sh
--- /tmp/setup.sh 2021-01-26 20:31:16.000000000 +0000
+++ /usr/local/directadmin/scripts/setup.sh 2020-09-29 21:06:47.000000000 +0000
@@ -412,9 +412,6 @@
elif [ "`cat /etc/redhat-release 2>/dev/null| cut -d\ -f1,2`" = "CloudLinux release" ]; then
OS=Enterprise
OS_VER=`cat /etc/redhat-release 2>/dev/null| cut -d\ -f3`
-elif [ "`cat /etc/redhat-release 2>/dev/null| cut -d\ -f1,2`" = "AlmaLinux release" ]; then
- OS=Enterprise
- OS_VER=`cat /etc/redhat-release 2>/dev/null| cut -d\ -f3`
elif [ "`cat /etc/redhat-release 2>/dev/null| cut -d\ -f1,2`" = "Scientific Linux" ]; then
OS=Enterprise
OS_VER=`cat /etc/redhat-release 2>/dev/null| cut -d\ -f4`
@@ -612,9 +609,9 @@
echo "* Installing pre-install packages ....";
if [ "$OS" = "FreeBSD" ]; then
if [ "${OS_MAJ_VER}" -ge 12 ]; then
- pkg install -y gcc gmake perl5 wget bison flex cyrus-sasl cmake python autoconf libtool libarchive iconv bind911 mailx webalizer gettext-runtime udns sudo psmisc openssl krb5 pkgconf
+ pkg install -y gcc gmake perl5 wget bison flex cyrus-sasl cmake python autoconf libtool libarchive iconv bind911 mailx webalizer gettext-runtime udns sudo psmisc tar openssl krb5
elif [ "${OS_MAJ_VER}" -ge 11 ]; then
- pkg install -y gcc gmake perl5 wget bison flex cyrus-sasl cmake python autoconf libtool libarchive iconv bind911 mailx webalizer gettext-runtime psmisc pkgconf
+ pkg install -y gcc gmake perl5 wget bison flex cyrus-sasl cmake python autoconf libtool libarchive iconv bind911 mailx webalizer gettext-runtime psmisc tar
elif [ "${OS_MAJ_VER}" -ge 10 ]; then
pkg install -y gcc gmake perl5 wget bison flex cyrus-sasl cmake python autoconf libtool libarchive iconv bind99 mailx psmisc
else
@@ -626,18 +623,18 @@
apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libperl4-corelibs-perl libwww-perl libaio1 libaio-dev \
zlib1g zlib1g-dev libcap-dev cron bzip2 zip automake autoconf libtool cmake pkg-config python libdb-dev libsasl2-dev \
libncurses5 libncurses5-dev libsystemd-dev bind9 dnsutils quota patch logrotate rsyslog libc6-dev libexpat1-dev \
- libcrypt-openssl-rsa-perl libnuma-dev libnuma1 ipset libcurl4-openssl-dev
+ libcrypt-openssl-rsa-perl libnuma-dev libnuma1
elif [ "${OS_MAJ_VER}" -ge 9 ]; then
apt-get -y update
- apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libperl4-corelibs-perl libaio1 libaio-dev zlib1g zlib1g-dev libcap-dev cron bzip2 zip automake autoconf libtool cmake pkg-config python libdb-dev libsasl2-dev libncurses5-dev libsystemd-dev bind9 dnsutils quota patch libjemalloc-dev logrotate rsyslog libc6-dev libexpat1-dev libcrypt-openssl-rsa-perl libnuma-dev libnuma1 ipset libcurl4-openssl-dev
+ apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libperl4-corelibs-perl libaio1 libaio-dev zlib1g zlib1g-dev libcap-dev cron bzip2 zip automake autoconf libtool cmake pkg-config python libdb-dev libsasl2-dev libncurses5-dev libsystemd-dev bind9 dnsutils quota patch libjemalloc-dev logrotate rsyslog libc6-dev libexpat1-dev libcrypt-openssl-rsa-perl libnuma-dev libnuma1
elif [ "${OS_MAJ_VER}" -ge 8 ]; then
apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libaio1 libaio-dev \
zlib1g zlib1g-dev libcap-dev cron bzip2 automake autoconf libtool cmake pkg-config python libdb-dev libsasl2-dev \
- libncurses5-dev libsystemd-dev bind9 dnsutils quota libsystemd-daemon0 patch libjemalloc-dev logrotate rsyslog libc6-dev systemd systemd-sysv ipset libcurl4-openssl-dev
+ libncurses5-dev libsystemd-dev bind9 dnsutils quota libsystemd-daemon0 patch libjemalloc-dev logrotate rsyslog libc6-dev systemd systemd-sysv
elif [ "${OS_MAJ_VER}" -eq 7 ]; then
- apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libaio1 libaio-dev zlib1g zlib1g-dev libcap-dev cron bzip2 automake autoconf libtool cmake pkg-config python libdb-dev libsasl2-dev libncurses5-dev patch libjemalloc-dev ipset
+ apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libaio1 libaio-dev zlib1g zlib1g-dev libcap-dev cron bzip2 automake autoconf libtool cmake pkg-config python libdb-dev libsasl2-dev libncurses5-dev patch libjemalloc-dev
else
- apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libaio1 libaio-dev zlib1g zlib1g-dev libcap-dev cron bzip2 automake autoconf libtool cmake pkg-config python libreadline-dev libdb4.8-dev libsasl2-dev patch ipset libcurl4-openssl-dev
+ apt-get -y install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev libaio1 libaio-dev zlib1g zlib1g-dev libcap-dev cron bzip2 automake autoconf libtool cmake pkg-config python libreadline-dev libdb4.8-dev libsasl2-dev patch
fi
else
if [ "${OS_MAJ_VER}" -ge 8 ]; then
@@ -645,16 +642,16 @@
libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed \
autoconf automake libtool which patch mailx bzip2-devel lsof glibc-headers kernel-devel expat-devel \
psmisc net-tools systemd-devel libdb-devel perl-DBI perl-libwww-perl xfsprogs rsyslog logrotate crontabs file \
- kernel-headers hostname ipset
+ kernel-headers hostname
elif [ "${OS_MAJ_VER}" -ge 7 ]; then
yum -y install iptables wget tar gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio \
libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed \
autoconf automake libtool which patch mailx bzip2-devel lsof glibc-headers kernel-devel expat-devel \
- psmisc net-tools systemd-devel libdb-devel perl-DBI perl-Perl4-CoreLibs perl-libwww-perl xfsprogs rsyslog logrotate crontabs file kernel-headers ipset
+ psmisc net-tools systemd-devel libdb-devel perl-DBI perl-Perl4-CoreLibs perl-libwww-perl xfsprogs rsyslog logrotate crontabs file kernel-headers
else
yum -y install wget tar gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio \
libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed \
- autoconf automake libtool which patch mailx bzip2-devel lsof glibc-headers kernel-devel expat-devel db4-devel ipset
+ autoconf automake libtool which patch mailx bzip2-devel lsof glibc-headers kernel-devel expat-devel db4-devel
fi
fi
else
@@ -959,35 +956,121 @@
fi
if [ $CMD_LINE -eq 0 ]; then
- #grab the build file.
- mkdir -p $CBPATH
- BFILE=$SERVER/custombuild/${CB_VER}/custombuild/build
- if [ $OS = "FreeBSD" ]; then
- fetch -o $BUILD $BFILE
+ PHP_V_DEF=7.2
+ PHP_M_DEF=mod_php
+ PHP_RUID_DEF=yes
+
+ if [ "${SERVICES}" = "services_es70_64.tar.gz" ] || [ "${OS}" = "FreeBSD" ]; then
+ onetwo=1
+ elif [ "${SERVICES}" = "services_debian90_64.tar.gz" ] || [ "${SERVICES}" = "services_debian100_64.tar.gz" ] || [ "${SERVICES}" = "services_debian110_64.tar.gz" ]; then
+ onetwo=1
+ PHP_V_DEF=7.3
+ PHP_M_DEF=php-fpm
+ PHP_RUID_DEF=no
else
- $WGET_PATH ${WGET_OPTION} -O $BUILD $BFILE
- fi
- chmod 755 $BUILD
+ echo "";
+ echo "Select your desired apache/php setup. Option 1 is recommended.";
+ echo "You can make changes from the default settings in the next step.";
+ echo "";
+ echo "1: Apache 2.4, mod_ruid2, php ${PHP_V_DEF}. Can be set to use mod_php, php-FPM or fastcgi.";
+ echo "2: Apache 2.4, mod_ruid2, php 5.6 (php 5.6 is end-of-life)";
+ echo "3: Apache 2.4, mod_ruid2, php 5.6 (php 5.6 is end-of-life), MariaDB 5.5";
+ echo "4: Apache 2.4, php-fpm, php ${PHP_V_DEF}.";
+ echo "";
+ echo " Post any issues with custombuild to the forum: http://forum.directadmin.com/forumdisplay.php?f=61";
+ echo "";
+
+ echo -n "Enter your choice (1, 2, 3 or 4): ";
+
+ read onetwo;
+ until [ "$onetwo" = "1" ] || [ "$onetwo" = "2" ] || [ "$onetwo" = "3" ] || [ "$onetwo" = "4" ]; do
+ echo -n "Please enter 1, 2, 3 or 4: "
+ read onetwo
+ done
- if [ -e $BUILD ]; then
- $BUILD create_options
- else
- echo "unable to download the build file. Using defaults instead.";
fi
- echo "";
- echo -n "Would you like the default settings of apache 2.4 and php `grep -m1 ^php1_release= ${CB_OPTIONS} | cut -d= -f2` `grep -m1 ^php1_mode= ${CB_OPTIONS} | cut -d= -f2`? (y/n): ";
- read yesno;
- if [ "$yesno" = "n" ]; then
- echo "You have chosen to customize the custombuild options. Please wait while options configurator is downloaded... ";
- echo "";
- else
- echo "Using the default settings for custombuild.";
- echo -n "Would you like to search for the fastest download mirror? (y/n): ";
- read yesno;
- if [ "$yesno" = "y" ]; then
- ${BUILD} set_fastest;
+ if [ "$onetwo" = "1" ] || [ "$onetwo" = "2" ] || [ "$onetwo" = "3" ] || [ "$onetwo" = "4" ]; then
+ CB_VER=2.0
+ PHP_V=${PHP_V_DEF}
+ PHP_T=cli
+ AP_VER=2.4
+ RUID="";
+ MOD_RUID2=${PHP_RUID_DEF}
+ MYSQL_INST=no
+ MARIADB_V=10.4
+ PHP1_MODE=${PHP_M_DEF}
+ CB_VER=2.0
+ AP_VER=2.4
+ RUID=" with mod_ruid2";
+ if [ "$onetwo" = "4" ]; then
+ PHP_V=${PHP_V_DEF}
+ MOD_RUID2=no
+ RUID=""
+ PHP1_MODE=php-fpm
+ else
+ if [ "$onetwo" = "1" ]; then
+ PHP_V=${PHP_V_DEF}
+ fi
+ if [ "$onetwo" = "2" ] || [ "$onetwo" = "3" ]; then
+ PHP_V=5.6
+ if [ "$onetwo" = "3" ]; then
+ MARIADB_V=5.5
+ MYSQL_INST=mariadb
+ fi
+ fi
+ fi
+
+ if [ "${OS}" = "FreeBSD" ]; then
+ RUID="";
+ PHP_T=php-fpm
+ MOD_RUID2=no
+ PHP1_MODE=php-fpm
+ fi
+
+
+ #grab the build file.
+
+ mkdir -p $CBPATH
+
+ BFILE=$SERVER/custombuild/${CB_VER}/custombuild/build
+ if [ $OS = "FreeBSD" ]; then
+ fetch -o $BUILD $BFILE
+ else
+ $WGET_PATH ${WGET_OPTION} -O $BUILD $BFILE
+ fi
+ chmod 755 $BUILD
+
+ echo "";
+ echo -n "Would you like the default settings of apache ${AP_VER}${RUID} and php ${PHP_V} ${PHP_T}? (y/n): ";
+ read yesno;
+ if [ "$yesno" = "n" ]; then
+ echo "You have chosen to customize the custombuild options. Please wait while options configurator is downloaded... ";
+ echo "";
+
+ if [ -e $BUILD ]; then
+ $BUILD create_options
+ else
+ echo "unable to download the build file. Using defaults instead.";
+ fi
+ else
+ echo "Using the default settings for custombuild.";
+ if [ "$onetwo" != "3" ]; then
+ $BUILD set php1_release ${PHP_V}
+ $BUILD set php1_mode ${PHP1_MODE}
+ $BUILD set mod_ruid2 ${MOD_RUID2}
+ if [ "$onetwo" = "3" ]; then
+ $BUILD set mysql_inst ${MYSQL_INST}
+ $BUILD set mariadb ${MARIADB_V}
+ fi
+ fi
+ fi
+
+ echo -n "Would you like to search for the fastest download mirror? (y/n): ";
+ read yesno;
+ if [ "$yesno" = "y" ]; then
+ ${BUILD} set_fastest;
fi
if [ -s "${CB_OPTIONS}" ]; then
DL=`grep -m1 ^downloadserver= ${CB_OPTIONS} | cut -d= -f2`
@@ -996,9 +1079,13 @@
FTP_HOST=${DL}
fi
fi
- fi
+ else
+ echo "invalid number entered: '$onetwo'";
+ sleep 5;
+ exit 1;
+ fi
- sleep 2
+ sleep 2
fi
if [ "${AUTO}" = "1" ]; then
@@ -1008,11 +1095,7 @@
chmod 755 $BUILD
fi
- if [ -e /root/.using_fastest ]; then
- echo "/root/.using_fastest is present. Not calling './build set_fastest'"
- else
- ${BUILD} set_fastest
- fi
+ ${BUILD} set_fastest
if [ -s "${CB_OPTIONS}" ]; then
DL=`grep -m1 ^downloadserver= ${CB_OPTIONS} | cut -d= -f2`
@@ -1068,7 +1151,7 @@
}
if [ $OS = "FreeBSD" ]; then
- PERL=`pkg info | grep -ce '^perl'`;
+ PERL=`pkg_info | grep -ce '^perl'`;
else
PERL=`checkFile /usr/bin/perl`;
fi
@@ -1129,94 +1212,96 @@
# Download the file that has the paths to all the relevant files.
FILES=$SCRIPTS_PATH/files.sh
-FILES_PATH=$OS_VER
-if [ "$OS" = "FreeBSD" ]; then
- case "${OS_MAJ_VER}" in
- 8) OS_VER=8.0
- ;;
- 9) OS_VER=9.0
- ;;
- 10) OS_VER=10.0
- ;;
- 11) OS_VER=11.0
- ;;
- 12) OS_VER=12.0
- ;;
- esac
+#if [ "$OS" != "FreeBSD" ]; then
+ FILES_PATH=$OS_VER
+ if [ "$OS" = "FreeBSD" ]; then
+ case "${OS_MAJ_VER}" in
+ 8) OS_VER=8.0
+ ;;
+ 9) OS_VER=9.0
+ ;;
+ 10) OS_VER=10.0
+ ;;
+ 11) OS_VER=11.0
+ ;;
+ 12) OS_VER=12.0
+ ;;
+ esac
- if [ $B64 -eq 1 ]; then
- FILES_PATH=freebsd${OS_VER}-64bit
- else
- FILES_PATH=freebsd${OS_VER}
- fi
-elif [ "$OS" = "debian" ]; then
+ if [ $B64 -eq 1 ]; then
+ FILES_PATH=freebsd${OS_VER}-64bit
+ else
+ FILES_PATH=freebsd${OS_VER}
+ fi
+ elif [ "$OS" = "debian" ]; then
- OS_VER=`echo $OS_VER | cut -d. -f1,2`
+ OS_VER=`echo $OS_VER | cut -d. -f1,2`
- case "${OS_MAJ_VER}" in
- 5) OS_VER=5.0
- ;;
- 6) OS_VER=6.0
- ;;
- 7) OS_VER=7.0
- ;;
- 8) OS_VER=8.0
- ;;
- 9) OS_VER=9.0
- ;;
- 10) OS_VER=10.0
- ;;
- 11) OS_VER=11.0
- ;;
- esac
+ case "${OS_MAJ_VER}" in
+ 5) OS_VER=5.0
+ ;;
+ 6) OS_VER=6.0
+ ;;
+ 7) OS_VER=7.0
+ ;;
+ 8) OS_VER=8.0
+ ;;
+ 9) OS_VER=9.0
+ ;;
+ 10) OS_VER=10.0
+ ;;
+ 11) OS_VER=11.0
+ ;;
+ esac
- if [ $B64 -eq 1 ]; then
- FILES_PATH=debian_${OS_VER}_64
+ if [ $B64 -eq 1 ]; then
+ FILES_PATH=debian_${OS_VER}_64
+ else
+ FILES_PATH=debian_${OS_VER}
+ fi
+ elif [ $B64 -eq 1 ]; then
+ case "$OS_MAJ_VER" in
+ 5) FILES_PATH=es_5.3_64
+ ;;
+ 6) FILES_PATH=es_6.0_64
+ ;;
+ 7) FILES_PATH=es_7.0_64
+ ;;
+ 8) FILES_PATH=es_8.0_64
+ ;;
+ esac
+ elif [ "$OS" = "Enterprise" ]; then
+ case "$OS_MAJ_VER" in
+ 5) FILES_PATH=es_5.3
+ ;;
+ 6) FILES_PATH=es_6.0
+ ;;
+ 7) FILES_PATH=es_7.0
+ ;;
+ esac
else
- FILES_PATH=debian_${OS_VER}
- fi
-elif [ $B64 -eq 1 ]; then
- case "$OS_MAJ_VER" in
- 5) FILES_PATH=es_5.3_64
- ;;
- 6) FILES_PATH=es_6.0_64
- ;;
- 7) FILES_PATH=es_7.0_64
- ;;
- 8) FILES_PATH=es_8.0_64
- ;;
- esac
-elif [ "$OS" = "Enterprise" ]; then
- case "$OS_MAJ_VER" in
- 5) FILES_PATH=es_5.3
- ;;
- 6) FILES_PATH=es_6.0
- ;;
- 7) FILES_PATH=es_7.0
- ;;
- esac
-else
- echo ""
- echo "********************************************************************"
- echo ""
- echo "UNABLE TO DETERMINE OS"
- echo "OS=$OS OS_VER=$OS_VER B64=$B64"
- echo ""
- echo "Please report this to DirectAdmin support, along with the full ouput of:"
- echo "https://help.directadmin.com/item.php?id=318"
- echo ""
- echo "********************************************************************"
- echo ""
-fi
-
-wget -O $FILES $SERVER/$FILES_PATH/files.sh
-if [ ! -s $FILES ]; then
- echo "*** Unable to download files.sh";
- echo "tried: $SERVER/$FILES_PATH/files.sh";
- exit 3;
-fi
-chmod 755 $FILES;
-. $FILES
+ echo ""
+ echo "********************************************************************"
+ echo ""
+ echo "UNABLE TO DETERMINE OS"
+ echo "OS=$OS OS_VER=$OS_VER B64=$B64"
+ echo ""
+ echo "Please report this to DirectAdmin support, along with the full ouput of:"
+ echo "https://help.directadmin.com/item.php?id=318"
+ echo ""
+ echo "********************************************************************"
+ echo ""
+ fi
+
+ wget -O $FILES $SERVER/$FILES_PATH/files.sh
+ if [ ! -s $FILES ]; then
+ echo "*** Unable to download files.sh";
+ echo "tried: $SERVER/$FILES_PATH/files.sh";
+ exit 3;
+ fi
+ chmod 755 $FILES;
+ . $FILES
+#fi
@@ -1800,7 +1885,7 @@
fi
if [ "$LAN_AUTO" = "1" ] && [ -x /usr/local/directadmin/scripts/addip ]; then
- /usr/local/directadmin/scripts/addip ${IP} 255.255.255.0 ${ETH_DEV}
+ /usr/local/directadmin/scripts/addip ${IP} 255.255.255.255 ${ETH_DEV}
fi
###############################################################################
@@ -1879,16 +1964,6 @@
#run it
chmod 755 ${CSF_SH}
${CSF_SH} auto >> ${CSF_LOG} 2>&1
- USE_IPSET=true
- if [ -x /usr/bin/systemd-detect-virt ]; then
- if systemd-detect-virt | grep -m1 -q -E 'lxc|openvz'; then
- USE_IPSET=false
- fi
- fi
- if ${USE_IPSET} && grep -m1 -q '^LF_IPSET = "0"' /etc/csf/csf.conf; then
- perl -pi -e 's|^LF_IPSET = "0"|LF_IPSET = "1"|g' /etc/csf/csf.conf
- csf -r >> /dev/null 2>&1
- fi
fi
${BUILD} secure_php