Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9956521

Browse files
committed
Merge branch 'master' of github.com:DataDog/dd-trace-php into labbati/5.4-prepare-for-zend
2 parents 81f59b6 + c4f9180 commit 9956521

8 files changed

Lines changed: 127 additions & 26 deletions

File tree

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ jobs:
459459
- setup_remote_docker
460460
- run:
461461
name: Test installing packages on target systems
462-
command: make -f dockerfiles/verify_packages/Makefile
462+
command: make -j 2 -f dockerfiles/verify_packages/Makefile
463463

464464
workflows:
465465
version: 2

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ All notable changes to this project will be documented in this file - [docs/chan
33

44
## [Unreleased]
55

6+
## [0.8.1]
7+
### Fixed
8+
- Update Symfony 3 and 4 docs #184
9+
- Package installation on custom PHP setups lacking conf.d support #188
10+
611
## [0.8.0] - 2018-12-11
712
### Added
813
- Support for Lumen via the Laravel service provider #180
@@ -162,7 +167,8 @@ All notable changes to this project will be documented in this file - [docs/chan
162167
### Added
163168
- OpenTracing compliance tha can be used for manual instrumentation
164169

165-
[Unreleased]: https://github.com/DataDog/dd-trace-php/compare/0.8.0...HEAD
170+
[Unreleased]: https://github.com/DataDog/dd-trace-php/compare/0.8.1...HEAD
171+
[0.8.1]: https://github.com/DataDog/dd-trace-php/compare/0.8.0...0.8.1
166172
[0.8.0]: https://github.com/DataDog/dd-trace-php/compare/0.7.1...0.8.0
167173
[0.7.1]: https://github.com/DataDog/dd-trace-php/compare/0.7.0...0.7.1
168174
[0.7.0]: https://github.com/DataDog/dd-trace-php/compare/0.6.0...0.7.0

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ services:
3737
'ubuntu-18.04-7.2': { <<: *base_php_service, build: 'dockerfiles/ubuntu-18.04-php-7.2' }
3838
'7.2': { <<: *base_php_service, image: 'datadog/docker-library:ddtrace_php_7_2' }
3939
'7.2-debug': { <<: *base_php_service, build: 'dockerfiles/debug_php-7.2' }
40+
'7.1-centos-compiled': { <<: *base_php_service, build: 'dockerfiles/verify_packages/centos7-compiled' }
4041

4142
'fpm': { <<: *base_php_service, image: 'circleci/ruby:2.5', depends_on: [] }
4243

dockerfiles/verify_packages/Makefile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ JESSIE_PHP_VERSIONS:=5.6.jessie 7.0.jessie 7.1.jessie 7.2.jessie
22
STRETCH_PHP_VERSIONS:=5.6.stretch 7.0.stretch 7.1.stretch 7.2.stretch
33
CENTOS6_PHP_VERSIONS=56.centos6 70.centos6 71.centos6
44
CENTOS7_PHP_VERSIONS=56.centos7 70.centos7 71.centos7 72.centos7
5+
CENTOS7_MANUAL_PHP_VERSIONS=71.centos7-compiled
56
ALPINE_PHP_VERSIONS=5.6.alpine 7.0.alpine 7.1.alpine 7.2.alpine 5.6-zts.alpine 7.0-zts.alpine 7.1-zts.alpine 7.2-zts.alpine
67

7-
.PHONY: $(JESSIE_PHP_VERSIONS) $(STRETCH_PHP_VERSIONS) $(CENTOS7_PHP_VERSIONS) $(ALPINE_PHP_VERSIONS) all
8+
.PHONY: $(JESSIE_PHP_VERSIONS) $(STRETCH_PHP_VERSIONS) $(CENTOS7_PHP_VERSIONS) $(ALPINE_PHP_VERSIONS) $(CENTOS7_MANUAL_PHP_VERSIONS) all
89

910
all: $(JESSIE_PHP_VERSIONS) $(CENTOS6_PHP_VERSIONS) $(CENTOS7_PHP_VERSIONS) $(ALPINE_PHP_VERSIONS)
1011

@@ -22,6 +23,10 @@ $(CENTOS7_PHP_VERSIONS): %.centos7:
2223
@echo Building Centos 7 - PHP $*
2324
@docker build -t centos_7:$* --build-arg php_version=$* -f dockerfiles/verify_packages/centos7/Dockerfile .
2425

26+
$(CENTOS7_MANUAL_PHP_VERSIONS): %.centos7-compiled:
27+
@echo Building Centos 7 - PHP $*
28+
@docker build -t centos_7_compiled:$* -f dockerfiles/verify_packages/centos7-compiled/Dockerfile .
29+
2530
$(CENTOS6_PHP_VERSIONS): %.centos6:
2631
@echo Building Centos 6 - PHP $*
2732
@docker build -t centos_6:$* --build-arg php_version=$* -f dockerfiles/verify_packages/centos6/Dockerfile .
@@ -31,5 +36,4 @@ $(ALPINE_PHP_VERSIONS): %.alpine:
3136
@test -f dockerfiles/verify_packages/alpine/Dockerfile && rm dockerfiles/verify_packages/alpine/Dockerfile || true
3237
@sed -e "s/%%php_version%%/$*-alpine/g" dockerfiles/verify_packages/alpine/Dockerfile.template > dockerfiles/verify_packages/alpine/Dockerfile
3338
@docker build -t alpine_php:$* -f dockerfiles/verify_packages/alpine/Dockerfile .
34-
@test -f dockerfiles/verify_packages/alpine/Dockerfile && rm dockerfiles/verify_packages/alpine/Dockerfile
35-
39+
@test -f dockerfiles/verify_packages/alpine/Dockerfile && rm dockerfiles/verify_packages/alpine/Dockerfile || true
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM centos:7
2+
3+
RUN yum update -y
4+
5+
RUN yum install autoconf libtool re2c bison libxml2-devel bzip2-devel libcurl-devel libpng-devel libicu-devel gcc-c++ libmcrypt-devel libwebp-devel libjpeg-devel openssl-devel -y
6+
RUN mkdir -p /src/php; (cd /src/php; curl -L https://github.com/php/php-src/archive/php-7.1.9.tar.gz | tar --strip-component=1 -zx )
7+
WORKDIR /src/php
8+
RUN yum -y install make gcc
9+
10+
RUN ./buildconf --force && ./configure --with-curl --with-openssl
11+
RUN make && make install
12+
13+
RUN php --ini
14+
RUN yum install -y vim valgrind
15+
16+
17+
ADD build/packages /packages
18+
RUN rpm -ivh /packages/*.rpm
19+
20+
RUN php -m | grep ddtrace
21+
22+
CMD ["bash"]
23+
24+
ENTRYPOINT ["/bin/bash", "-c"]

package/post-install.sh

Lines changed: 85 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,81 @@ INI_FILE_NAME='99-ddtrace.ini'
88

99
PATH="${PATH}:/usr/local/bin"
1010

11+
function println(){
12+
echo -e '###' "$@"
13+
}
14+
15+
function append_configuration_to_file() {
16+
tee -a "$@" <<EOF
17+
; Autogenerated by the DataDog post-install.sh script
18+
19+
[datadog]
20+
extension=${EXTENSION_FILE_PATH}
21+
22+
; end of autogenerated part
23+
EOF
24+
}
25+
26+
function install_conf_d_file() {
27+
INI_FILE_PATH="${EXTENSION_CFG_DIR}/$INI_FILE_NAME"
28+
29+
println "Creating ddtrace.ini"
30+
println "\n"
31+
32+
append_configuration_to_file "${INI_FILE_PATH}"
33+
34+
println "ddtrace.ini created"
35+
println
36+
37+
PHP_DDTRACE_INI="$PHP_CFG_DIR/$INI_FILE_NAME"
38+
39+
println "Linking ddtrace.ini to ${PHP_DDTRACE_INI}"
40+
test -f "${PHP_DDTRACE_INI}" && rm "${PHP_DDTRACE_INI}"
41+
ln -s "$INI_FILE_PATH" "${PHP_DDTRACE_INI}"
42+
}
43+
44+
function fail_print_and_exit() {
45+
println 'Failed enabling ddtrace extension'
46+
println
47+
println "The extension has been installed and couldn't be enabled"
48+
println "Try adding the extension manually to your PHP - php.ini - configuration file"
49+
println "e.g. by adding following line: "
50+
println
51+
println " extension=${EXTENSION_FILE_PATH}"
52+
println
53+
println "Note that your PHP API version must match the extension's API version"
54+
println "PHP API version can be found using following command"
55+
println
56+
println " php -i | grep 'PHP API'"
57+
println
58+
59+
exit 0 # exit - but do not fail the installtion
60+
}
61+
62+
function verify_installation() {
63+
ENABLED_VERSION="$(php -r "echo phpversion('ddtrace');")"
64+
65+
if [[ -n ${ENABLED_VERSION} ]]; then
66+
println "Extension ${ENABLED_VERSION} enabled successfully"
67+
else
68+
fail_print_and_exit
69+
fi
70+
}
71+
1172
mkdir -p $EXTENSION_DIR
1273
mkdir -p $EXTENSION_CFG_DIR
1374
mkdir -p $EXTENSION_LOGS_DIR
1475

15-
echo -e '\nLogging php -i to a file\n'
76+
println 'Installing DataDog PHP tracing extension (ddtrace)'
77+
println
78+
println 'Logging php -i to a file'
79+
println
80+
1681
php -i > "$EXTENSION_LOGS_DIR/php-info.log"
1782

1883
PHP_VERSION=$(php -i | grep 'PHP API' | awk '{print $NF}')
1984
PHP_CFG_DIR=$(php --ini | grep 'Scan for additional .ini files in:' | sed -e 's/Scan for additional .ini files in://g' | head -n 1 | awk '{print $1}')
85+
2086
PHP_THREAD_SAFETY=$(php -i | grep 'Thread Safety' | awk '{print $NF}' | grep -i enabled)
2187

2288
VERSION_SUFFIX=""
@@ -25,25 +91,25 @@ if [[ -n $PHP_THREAD_SAFETY ]]; then
2591
fi
2692

2793
EXTENSION_NAME="ddtrace-${PHP_VERSION}${VERSION_SUFFIX}.so"
28-
INI_FILE_PATH="${EXTENSION_CFG_DIR}/$INI_FILE_NAME"
94+
EXTENSION_FILE_PATH="${EXTENSION_DIR}/${EXTENSION_NAME}"
2995

30-
echo -e "Creating ddtrace.ini\n###"
31-
tee $INI_FILE_PATH <<EOF
32-
[datadog]
33-
extension=${EXTENSION_DIR}/${EXTENSION_NAME}
34-
EOF
35-
36-
PHP_DDTRACE_INI="$PHP_CFG_DIR/$INI_FILE_NAME"
96+
if [[ ! -e $PHP_CFG_DIR ]]; then
97+
println
98+
println 'conf.d folder not found falling back to appending extension config to main "php.ini"'
99+
PHP_CFG_FILE_PATH=$(php --ini | grep 'Configuration File (php.ini) Path:' | sed -e 's/Configuration File (php.ini) Path://g' | head -n 1 | awk '{print $1}')
100+
PHP_CFG_FILE="${PHP_CFG_FILE_PATH}/php.ini"
101+
if [[ ! -e $PHP_CFG_FILE_PATH ]]; then
102+
fail_print_and_exit
103+
fi
37104

38-
echo -e "###\nLinking ddtrace.ini to ${PHP_DDTRACE_INI}\n"
39-
test -f "${PHP_DDTRACE_INI}" && rm "${PHP_DDTRACE_INI}"
40-
ln -s "$INI_FILE_PATH" "${PHP_DDTRACE_INI}"
41-
42-
ENABLED_VERSION="$(php -r "echo phpversion('ddtrace');")"
43-
44-
if [[ -n ${ENABLED_VERSION} ]]; then
45-
echo -e "Extension ${ENABLED_VERSION} enabled successfully\n"
105+
if grep -q "${EXTENSION_FILE_PATH}" "${PHP_CFG_FILE}"; then
106+
println
107+
println ' extension configuration already exists skipping'
108+
else
109+
append_configuration_to_file "${PHP_CFG_FILE}"
110+
fi
46111
else
47-
echo -e "Failed enabling ddtrace extension\n"
48-
exit 1
112+
install_conf_d_file
49113
fi
114+
115+
verify_installation

src/DDTrace/Version.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
namespace DDTrace\Version;
44

5-
const VERSION = '0.8.0-beta';
5+
const VERSION = '0.8.1-beta';

src/ext/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#ifndef PHP_DDTRACE_VERSION
2-
#define PHP_DDTRACE_VERSION "0.8.0-beta"
2+
#define PHP_DDTRACE_VERSION "0.8.1-beta"
33
#endif

0 commit comments

Comments
 (0)