17
17
export EXTENSIONS=" ,${PHP_EXTENSIONS} ,"
18
18
19
19
20
+ #
21
+ # Check if current php version is greater than or equal to
22
+ # specific version.
23
+ #
24
+ # For example, to check if current php is greater than or
25
+ # equal to PHP 7.0:
26
+ #
27
+ # isPhpVersionGreaterOrEqual 7 0
28
+ #
29
+ # Param 1: Specific PHP Major version
30
+ # Param 2: Specific PHP Minor version
31
+ # Return : 1 if greater than or equal to, 0 if less than
32
+ #
20
33
isPhpVersionGreaterOrEqual ()
21
34
{
22
35
local PHP_MAJOR_VERSION=$( php -r " echo PHP_MAJOR_VERSION;" )
@@ -30,6 +43,28 @@ isPhpVersionGreaterOrEqual()
30
43
}
31
44
32
45
46
+ #
47
+ # Install extension from package file(.tgz),
48
+ # For example:
49
+ #
50
+ # installExtensionFromTgz redis-4.1.1
51
+ #
52
+ # Param 1: Package name with version
53
+ # Param 2: enable options
54
+ #
55
+ installExtensionFromTgz ()
56
+ {
57
+ tgzName=$1
58
+ extensionName=" ${tgzName%% -* } "
59
+
60
+ mkdir ${extensionName}
61
+ tar -xf ${tgzName} .tgz -C ${extensionName} --strip-components=1
62
+ ( cd ${extensionName} && phpize && ./configure && make ${MC} && make install )
63
+
64
+ docker-php-ext-enable ${extensionName} $2
65
+ }
66
+
67
+
33
68
if [[ -z " ${EXTENSIONS##* ,pdo_mysql,* } " ]]; then
34
69
echo " ---------- Install pdo_mysql ----------"
35
70
docker-php-ext-install ${MC} pdo_mysql
178
213
179
214
if [[ -z " ${EXTENSIONS##* ,soap,* } " ]]; then
180
215
echo " ---------- Install soap ----------"
216
+ apk add --no-cache libxml2-dev
181
217
docker-php-ext-install ${MC} soap
182
218
fi
183
219
184
220
if [[ -z " ${EXTENSIONS##* ,xsl,* } " ]]; then
185
221
echo " ---------- Install xsl ----------"
186
- apk add --no-cache libxslt-dev
222
+ apk add --no-cache libxml2-dev libxslt-dev
187
223
docker-php-ext-install ${MC} xsl
188
224
fi
189
225
190
226
if [[ -z " ${EXTENSIONS##* ,xmlrpc,* } " ]]; then
191
227
echo " ---------- Install xmlrpc ----------"
192
- apk add --no-cache libxslt-dev
228
+ apk add --no-cache libxml2-dev libxslt-dev
193
229
docker-php-ext-install ${MC} xmlrpc
194
230
fi
195
231
196
232
if [[ -z " ${EXTENSIONS##* ,wddx,* } " ]]; then
197
233
echo " ---------- Install wddx ----------"
198
- apk add --no-cache libxslt-dev
234
+ apk add --no-cache libxml2-dev libxslt-dev
199
235
docker-php-ext-install ${MC} wddx
200
236
fi
201
237
@@ -356,9 +392,7 @@ if [[ -z "${EXTENSIONS##*,mysql,*}" ]]; then
356
392
isPhpVersionGreaterOrEqual 7 0
357
393
358
394
if [[ " $? " = " 1" ]]; then
359
- echo
360
395
echo " ---------- mysql was REMOVED from PHP 7.0.0 ----------"
361
- echo
362
396
else
363
397
echo " ---------- Install mysql ----------"
364
398
docker-php-ext-install ${MC} mysql
381
415
if [[ -z " ${EXTENSIONS##* ,amqp,* } " ]]; then
382
416
echo " ---------- Install amqp ----------"
383
417
apk add --no-cache rabbitmq-c-dev
384
- printf " \n" | pecl install amqp-1.9.4.tgz
385
- docker-php-ext-enable amqp
418
+ installExtensionFromTgz amqp-1.9.4
386
419
fi
387
420
388
421
if [[ -z " ${EXTENSIONS##* ,redis,* } " ]]; then
389
422
echo " ---------- Install redis ----------"
390
- printf " \n" | pecl install redis-4.1.1.tgz
391
- docker-php-ext-enable redis
423
+ installExtensionFromTgz redis-4.1.1
392
424
fi
393
425
394
426
if [[ -z " ${EXTENSIONS##* ,memcached,* } " ]]; then
@@ -410,16 +442,15 @@ if [[ -z "${EXTENSIONS##*,xdebug,*}" ]]; then
410
442
isPhpVersionGreaterOrEqual 7 0
411
443
412
444
if [[ " $? " = " 1" ]]; then
413
- printf " \n " | pecl install xdebug-2.6.1.tgz
445
+ installExtensionFromTgz xdebug-2.6.1
414
446
else
415
- printf " \n " | pecl install xdebug-2.5.5.tgz
447
+ installExtensionFromTgz xdebug-2.5.5
416
448
fi
417
-
418
- docker-php-ext-enable xdebug
419
449
fi
420
450
421
451
if [[ -z " ${EXTENSIONS##* ,event,* } " ]]; then
422
452
echo " ---------- Install event ----------"
453
+ apk add --no-cache libevent-dev
423
454
export is_sockets_installed=$( php -r " echo extension_loaded('sockets');" )
424
455
425
456
if [[ " ${is_sockets_installed} " = " " ]]; then
@@ -428,14 +459,12 @@ if [[ -z "${EXTENSIONS##*,event,*}" ]]; then
428
459
fi
429
460
430
461
echo " ---------- Install event again ----------"
431
- printf " \n" | pecl install event-2.5.3.tgz
432
- docker-php-ext-enable --ini-name event.ini event
462
+ installExtensionFromTgz event-2.5.3 " --ini-name event.ini"
433
463
fi
434
464
435
465
if [[ -z " ${EXTENSIONS##* ,mongodb,* } " ]]; then
436
466
echo " ---------- Install mongodb ----------"
437
- printf " \n" | pecl install mongodb-1.5.5.tgz
438
- docker-php-ext-enable mongodb
467
+ installExtensionFromTgz mongodb-1.5.5
439
468
fi
440
469
441
470
if [[ -z " ${EXTENSIONS##* ,yaf,* } " ]]; then
@@ -444,28 +473,22 @@ if [[ -z "${EXTENSIONS##*,yaf,*}" ]]; then
444
473
445
474
if [[ " $? " = " 1" ]]; then
446
475
printf " \n" | pecl install yaf
476
+ docker-php-ext-enable yaf
447
477
else
448
- # install by pecl may cause error:
449
- # can't create directory 'configs/.libs': No such file or directory
450
- mkdir yaf
451
- tar -xf yaf-2.3.5.tgz -C yaf --strip-components=1
452
- ( cd yaf && phpize && ./configure && make ${MC} && make install )
478
+ installExtensionFromTgz yaf-2.3.5
453
479
fi
454
-
455
- docker-php-ext-enable yaf
456
480
fi
457
481
482
+
458
483
if [[ -z " ${EXTENSIONS##* ,swoole,* } " ]]; then
459
484
echo " ---------- Install swoole ----------"
460
485
isPhpVersionGreaterOrEqual 7 0
461
486
462
487
if [[ " $? " = " 1" ]]; then
463
- printf " \n " | pecl install swoole-4.4.2.tgz
488
+ installExtensionFromTgz swoole-4.4.2
464
489
else
465
- printf " \n " | pecl install swoole-2.0.11.tgz
490
+ installExtensionFromTgz swoole-2.0.11
466
491
fi
467
-
468
- docker-php-ext-enable swoole
469
492
fi
470
493
471
494
if [[ -z " ${EXTENSIONS##* ,zip,* } " ]]; then
0 commit comments