Skip to content

Commit bed4165

Browse files
PHP 7.1.33
1 parent 0869f63 commit bed4165

File tree

10 files changed

+2576
-553
lines changed

10 files changed

+2576
-553
lines changed

.github/workflows/docker-image.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
name: Docker php 5.4.45
1+
name: Docker php 7.1.33
22
on:
33
push:
44
branches:
55
-
6-
"5.4.45"
6+
"7.1.33"
77

88
env:
99
REGISTRY: ghcr.io

Dockerfile

+175-123
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,127 @@
1-
FROM debian:11.6-slim as build
1+
# >>> Stage I
2+
FROM debian:12.6-slim AS build
23

3-
ENV OPENSSL=1.0.2u
4-
ENV PHP=5.4.45
5-
ENV FREETYPE=2.6.5
6-
ENV CURL=7.82.0
7-
ENV ICONV=1.15
8-
#ENV ICU=55.1
4+
ENV OPENSSL=1.1.1u CURL=7.74.0 FREETYPE=2.6.5 ICONV=1.15 PHP=7.1.33
5+
# export OPENSSL=1.1.1u CURL=7.74.0 FREETYPE=2.6.5 ICONV=1.15 PHP=7.1.33
96

10-
RUN apt-get update && apt-get install -y \
11-
wget apt-utils build-essential autoconf automake \
12-
zlib1g-dev libbz2-dev libmcrypt-dev libpq-dev default-libmysqld-dev \
13-
libxslt-dev libjpeg62-turbo-dev libpng-dev apache2-dev apache2 \
14-
libtool libxml2 libxml2-dev libbz2-1.0 libbz2-dev libjpeg-dev libmcrypt4 \
15-
libxslt1.1 libxslt1-dev libxt-dev libxpm-dev libgmp-dev libreadline-dev \
16-
libpcre3 libpcre3-dev libssl-dev \
17-
&& apt-get clean && apt-get autoclean \
18-
&& rm -rf /var/lib/apt/lists /tmp/*
7+
RUN set -eux; \
8+
apt-get update; \
9+
apt-get install -y \
10+
wget \
11+
vim \
12+
apt-utils \
13+
build-essential \
14+
autoconf \
15+
automake \
16+
zlib1g-dev \
17+
libbz2-dev \
18+
libmcrypt-dev \
19+
libpq-dev \
20+
default-libmysqld-dev \
21+
libxslt-dev \
22+
libjpeg62-turbo-dev \
23+
libpng-dev \
24+
apache2-dev \
25+
apache2 \
26+
libtool \
27+
libxml2 \
28+
libxml2-dev \
29+
libbz2-1.0 \
30+
libbz2-dev \
31+
libjpeg-dev \
32+
libmcrypt4 \
33+
libxslt1.1 \
34+
libxslt1-dev \
35+
libxt-dev \
36+
libxpm-dev \
37+
libgmp-dev \
38+
libreadline-dev \
39+
libpcre3 \
40+
libpcre3-dev \
41+
libssl-dev; \
42+
apt-get clean && apt-get autoclean; \
43+
rm -rf /var/lib/apt/lists /tmp/*;
1944

20-
#openssl
21-
RUN mkdir -p /usr/local/openssl-${OPENSSL} \
22-
&& wget -O /usr/local/src/openssl-${OPENSSL}.tar.gz https://www.openssl.org/source/openssl-${OPENSSL}.tar.gz \
23-
&& cd /usr/local/src \
24-
&& tar -xf openssl-${OPENSSL}.tar.gz \
25-
&& rm -f openssl-${OPENSSL}.tar.gz \
26-
&& cd openssl-${OPENSSL} \
27-
&& make clean \
28-
&& ./config shared --prefix=/usr/local/openssl-${OPENSSL} \
29-
&& make -j $(nproc) \
30-
# && make test \
31-
&& make install \
32-
&& ls -la /usr/local/openssl-${OPENSSL}/lib \
33-
&& wget -O /usr/local/openssl-${OPENSSL}/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem" \
34-
&& ln -s /usr/local/openssl-${OPENSSL}/lib /usr/local/openssl-${OPENSSL}/lib/x86_64-linux-gnu \
35-
&& ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu \
36-
&& ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu
45+
# openssl
46+
RUN set -eux; \
47+
mkdir -p /usr/local/openssl-${OPENSSL}; \
48+
wget -O /usr/local/src/openssl-${OPENSSL}.tar.gz https://www.openssl.org/source/openssl-${OPENSSL}.tar.gz; \
49+
cd /usr/local/src; \
50+
tar -xf openssl-${OPENSSL}.tar.gz; \
51+
rm -f openssl-${OPENSSL}.tar.gz; \
52+
cd openssl-${OPENSSL}; \
53+
# make clean; \
54+
./config shared --prefix=/usr/local/openssl-${OPENSSL}; \
55+
make -j $(nproc); \
56+
make test; \
57+
make install; \
58+
ls -la /usr/local/openssl-${OPENSSL}/lib; \
59+
wget -O /usr/local/openssl-${OPENSSL}/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem"; \
60+
ln -s /usr/local/openssl-${OPENSSL}/lib /usr/local/openssl-${OPENSSL}/lib/x86_64-linux-gnu; \
61+
ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu; \
62+
ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu;
3763

38-
#curl
39-
RUN mkdir -p /usr/local/curl-${CURL} \
40-
&& wget -O /usr/local/src/curl-${CURL}.tar.gz https://curl.se/download/curl-${CURL}.tar.gz \
41-
&& cd /usr/local/src \
42-
&& tar -xf curl-${CURL}.tar.gz \
43-
&& rm -f curl-${CURL}.tar.gz \
44-
&& cd curl-${CURL} \
45-
&& ./configure --with-openssl=/usr/local/openssl-${OPENSSL} --prefix=/usr/local/curl-${CURL} \
46-
&& make -j $(nproc) \
47-
&& make install
64+
# curl
65+
RUN set -eux; \
66+
mkdir -p /usr/local/curl-${CURL}; \
67+
wget -O /usr/local/src/curl-${CURL}.tar.gz https://curl.se/download/curl-${CURL}.tar.gz; \
68+
cd /usr/local/src; \
69+
tar -xf curl-${CURL}.tar.gz; \
70+
rm -f curl-${CURL}.tar.gz; \
71+
cd curl-${CURL}; \
72+
./configure \
73+
--with-openssl=/usr/local/openssl-${OPENSSL} \
74+
--prefix=/usr/local/curl-${CURL} \
75+
--without-libidn2 \
76+
--disable-ldap; \
77+
make -j $(nproc); \
78+
make install; \
79+
ln -s /usr/local/curl-${CURL}/bin/curl /usr/local/bin/;
4880

49-
#freetype
50-
RUN mkdir -p /usr/local/freetype-${FREETYPE} \
51-
&& wget -O /usr/local/src/freetype-${FREETYPE}.tar.gz https://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-${FREETYPE}.tar.gz \
52-
&& cd /usr/local/src \
53-
&& tar -xf freetype-${FREETYPE}.tar.gz \
54-
&& rm -f freetype-${FREETYPE}.tar.gz \
55-
&& cd freetype-${FREETYPE} \
56-
&& ./configure --prefix=/usr/local/freetype-${FREETYPE} \
57-
&& make -j $(nproc) \
58-
&& make install
81+
# freetype2
82+
RUN set -eux; \
83+
mkdir -p /usr/local/freetype-${FREETYPE}; \
84+
wget -O /usr/local/src/freetype-${FREETYPE}.tar.gz https://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-${FREETYPE}.tar.gz; \
85+
cd /usr/local/src; \
86+
tar -xf freetype-${FREETYPE}.tar.gz; \
87+
rm -f freetype-${FREETYPE}.tar.gz; \
88+
cd freetype-${FREETYPE}; \
89+
./configure --prefix=/usr/local/freetype-${FREETYPE}; \
90+
make -j $(nproc); \
91+
make install;
5992

60-
#iconv
61-
RUN mkdir -p /usr/local/libiconv-${ICONV} \
62-
&& wget -O /usr/local/src/libiconv-${ICONV}.tar.gz https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV}.tar.gz \
63-
&& cd /usr/local/src \
64-
&& tar -xf libiconv-${ICONV}.tar.gz \
65-
&& rm -f libiconv-${ICONV}.tar.gz \
66-
&& cd libiconv-${ICONV} \
67-
&& ./configure --prefix=/usr/local/libiconv-${ICONV} \
68-
&& make -j $(nproc) \
69-
&& make install
93+
# iconv
94+
RUN set -eux; \
95+
mkdir -p /usr/local/libiconv-${ICONV}; \
96+
wget -O /usr/local/src/libiconv-${ICONV}.tar.gz https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV}.tar.gz; \
97+
cd /usr/local/src; \
98+
tar -xf libiconv-${ICONV}.tar.gz; \
99+
rm -f libiconv-${ICONV}.tar.gz; \
100+
cd libiconv-${ICONV}; \
101+
./configure --prefix=/usr/local/libiconv-${ICONV}; \
102+
make -j $(nproc); \
103+
make install;
70104

71-
#php-fpm
72-
RUN mkdir -p /usr/local/src/php-${PHP} \
73-
&& wget -O /usr/local/src/php-${PHP}.tar.gz https://www.php.net/distributions/php-${PHP}.tar.gz \
74-
&& cd /usr/local/src \
75-
&& tar -xf php-${PHP}.tar.gz \
76-
&& rm -f php-${PHP}.tar.gz \
77-
&& cd php-${PHP} \
78-
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/ \
79-
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/ \
80-
&& export APACHE_RUN_DIR=/var/run/apache2 \
81-
&& ./configure \
105+
# php-fpm
106+
RUN set -eux; \
107+
mkdir -p /usr/local/src/php-${PHP}; \
108+
wget -O /usr/local/src/php-${PHP}.tar.gz https://www.php.net/distributions/php-${PHP}.tar.gz; \
109+
cd /usr/local/src; \
110+
tar -xf php-${PHP}.tar.gz; \
111+
rm -f php-${PHP}.tar.gz; \
112+
cd php-${PHP}; \
113+
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/; \
114+
ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/; \
115+
export APACHE_RUN_DIR=/var/run/apache2; \
116+
./configure \
82117
--prefix=/usr/local/php-${PHP}/ \
83-
--exec-prefix=/usr/local/php-${PHP}/ \
118+
--exec-prefix=/usr/local/php-${PHP}/ \
84119
--with-config-file-path=/usr/local/php-${PHP}/etc/ \
85120
--with-config-file-scan-dir=/usr/local/php-${PHP}/etc/local/ \
86121
--localstatedir=/usr/local/php-${PHP}/var/ \
87-
\
88122
--disable-all \
89123
--disable-cgi \
90124
--disable-debug \
91-
\
92125
--enable-cli \
93126
--enable-fpm \
94127
--enable-mbstring \
@@ -106,7 +139,6 @@ RUN mkdir -p /usr/local/src/php-${PHP} \
106139
--enable-ftp \
107140
--enable-inline-optimization \
108141
--enable-soap \
109-
#--enable-intl #need build ICU ~ 55.1
110142
--enable-sockets \
111143
--enable-sysvmsg \
112144
--enable-sysvsem \
@@ -128,7 +160,6 @@ RUN mkdir -p /usr/local/src/php-${PHP} \
128160
--with-curl=/usr/local/curl-${CURL} \
129161
--with-mcrypt \
130162
--with-bz2 \
131-
\
132163
--with-gd \
133164
--with-freetype-dir=/usr/local/freetype-${FREETYPE} \
134165
--with-jpeg-dir=/usr \
@@ -147,79 +178,100 @@ RUN mkdir -p /usr/local/src/php-${PHP} \
147178
--with-openssl=/usr/local/openssl-${OPENSSL} \
148179
--with-gettext=/usr \
149180
--with-mhash \
150-
--with-mysql \
151181
--with-mysqli \
152182
--with-pdo-mysql \
153183
--with-sqlite3 \
154184
--with-pdo-sqlite \
155185
--with-pcre-regex \
156-
--with-regex=php \
157186
--with-pear \
158187
--with-xsl \
159188
--with-libxml-dir=/usr \
160-
--with-zlib \
161-
&& make -j $(nproc) \
162-
&& make test \
163-
&& make install \
164-
&& cp /usr/local/src/php-${PHP}/php.ini-production /usr/local/php-${PHP}/etc/php.ini \
165-
&& ls -la /usr/local
189+
--with-zlib; \
190+
make -j $(nproc); \
191+
make install; \
192+
cp /usr/local/src/php-${PHP}/php.ini-production /usr/local/php-${PHP}/etc/php.ini; \
193+
ls -la /usr/local;
166194

195+
# Install Ioncube
196+
RUN set -eux; \
197+
curl -o /tmp/ioncube-loader.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz; \
198+
cd /usr/local; \
199+
tar zxvf /tmp/ioncube-loader.tar.gz; \
200+
rm /tmp/ioncube-loader.tar.gz;
167201

168-
FROM debian:11.6-slim
202+
# >>> Stage II
169203

204+
FROM debian:12.6-slim
170205
LABEL maintainer="Root Shell <[email protected]>"
171206

172-
ENV DEBIAN_FRONTEND noninteractive
173-
ENV LANG='ru_RU.UTF-8' LANGUAGE='ru_RU:ru' LC_ALL='ru_RU.UTF-8'
174-
ENV OPENSSL=1.0.2u
175-
ENV PHP=5.4.45
176-
ENV FREETYPE=2.6.5
177-
ENV CURL=7.82.0
178-
ENV ICONV=1.15
207+
ENV DEBIAN_FRONTEND=noninteractive
208+
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:ru' LC_ALL='en_US.UTF-8'
209+
ENV OPENSSL=1.1.1u CURL=7.74.0 FREETYPE=2.6.5 ICONV=1.15 PHP=7.1.33
179210

180-
RUN apt-get update -y && apt-get install -y apache2 apache2-utils libapache2-mod-fcgid \
181-
libtool libxml2 libbz2-1.0 libmcrypt4 libxslt1.1 xsltproc default-mysql-client \
182-
mcrypt libpcre3 exim4 locales locales-all tzdata supervisor \
183-
&& apt-get clean && apt-get autoclean \
184-
&& rm -rf /var/lib/apt/lists /tmp/*
211+
RUN set -eux; \
212+
apt-get update; \
213+
apt-get install -y \
214+
apache2 \
215+
apache2-utils \
216+
libapache2-mod-fcgid \
217+
libtool \
218+
libxml2 \
219+
libbz2-1.0 \
220+
libmcrypt4 \
221+
libxslt1.1 \
222+
xsltproc \
223+
default-mysql-client \
224+
mcrypt \
225+
libpcre3 \
226+
exim4 \
227+
locales \
228+
locales-all \
229+
tzdata \
230+
supervisor; \
231+
apt-get clean && apt-get autoclean; \
232+
rm -rf /var/lib/apt/lists /tmp/*;
185233

186234
COPY --from=build /usr/local/openssl-${OPENSSL} /usr/local/openssl-${OPENSSL}
187235
COPY --from=build /usr/local/curl-${CURL} /usr/local/curl-${CURL}
188236
COPY --from=build /usr/local/freetype-${FREETYPE} /usr/local/freetype-${FREETYPE}
189237
COPY --from=build /usr/local/libiconv-${ICONV} /usr/local/libiconv-${ICONV}
190238
COPY --from=build /usr/local/php-${PHP}/ /usr/local/php-${PHP}/
239+
COPY --from=build /usr/local/ioncube/ioncube_loader_lin_7.1.so /usr/local/ioncube/ioncube_loader_lin_7.1.so
191240
COPY --from=build /usr/lib/apache2/modules/ /usr/lib/apache2/modules/
192241
COPY --from=build /etc/apache2/mods-available /etc/apache2/mods-available
193242
COPY apache2/apache2.conf /etc/apache2/
194243
COPY apache2/default.conf /etc/apache2/sites-available/000-default.conf
195-
COPY php-fpm /usr/local/php-5.4.45/etc
244+
COPY php-fpm/php-fpm.d /usr/local/php-${PHP}/etc/php-fpm.d
245+
COPY php-fpm/php-fpm.conf /usr/local/php-${PHP}/etc
246+
COPY php-fpm/php.ini /usr/local/php-${PHP}/etc
196247
COPY entrypoint.sh /usr/bin/entrypoint.sh
197248
COPY supervisor /etc/supervisor
198249
COPY dkim /usr/local/dkim
199250
COPY exim4 /etc/exim4
200251

201-
RUN ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu \
202-
&& ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu \
203-
&& ln -s /usr/local/curl-${CURL}/bin/curl /usr/bin/curl \
204-
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/ \
205-
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/ \
206-
&& export APACHE_RUN_DIR=/var/run/apache2 \
207-
&& echo "<?php\nerror_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);\necho \$undef;\nphpinfo();\n" > /var/www/html/nfo.php \
208-
&& echo "RemoteIPHeader X-Forwarded-For\nRemoteIPTrustedProxy 127.0.0.1" > /etc/apache2/conf-available/remoteip.conf \
209-
&& ln -sf /dev/stdout /var/log/apache2/access.log \
210-
&& ln -sf /dev/stderr /var/log/apache2/error.log \
211-
&& ln -sf /usr/local/php-${PHP}/var/log /var/log/php \
212-
&& ln -sf /usr/local/php-${PHP}/var/run/ /var/run/php \
213-
&& mkdir /usr/local/php-${PHP}/tmp \
214-
&& chown -R 33:33 /var/www/html/* \
215-
&& chown -R 33:33 /usr/local/php-${PHP}/tmp \
216-
&& chmod +x /usr/local/dkim/gen_dkim.sh \
217-
&& chmod +x /usr/bin/entrypoint.sh \
218-
&& a2enmod remoteip rewrite proxy proxy_fcgi \
219-
&& a2enconf remoteip \
220-
&& locale-gen ru_RU.UTF-8 \
221-
&& PATH=$PATH:/usr/local/php-${PHP}/bin \
222-
&& export PATH
252+
RUN set -eux; \
253+
ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu; \
254+
ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu; \
255+
ln -s /usr/local/curl-${CURL}/bin/curl /usr/local/bin/; \
256+
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/; \
257+
ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/; \
258+
export APACHE_RUN_DIR=/var/run/apache2; \
259+
echo "<?php\nerror_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);\necho \$undef;\nphpinfo();\n" > /var/www/html/nfo.php; \
260+
echo "RemoteIPHeader X-Forwarded-For\nRemoteIPTrustedProxy 127.0.0.1" > /etc/apache2/conf-available/remoteip.conf; \
261+
ln -sf /dev/stdout /var/log/apache2/access.log; \
262+
ln -sf /dev/stderr /var/log/apache2/error.log; \
263+
ln -sf /usr/local/php-${PHP}/var/log /var/log/php; \
264+
ln -sf /usr/local/php-${PHP}/var/run/ /var/run/php; \
265+
mkdir /usr/local/php-${PHP}/tmp; \
266+
chown -R 33:33 /var/www/html/*; \
267+
chown -R 33:33 /usr/local/php-${PHP}/tmp; \
268+
chmod +x /usr/local/dkim/gen_dkim.sh; \
269+
chmod +x /usr/bin/entrypoint.sh; \
270+
a2enmod remoteip rewrite proxy proxy_fcgi; \
271+
a2enconf remoteip; \
272+
locale-gen en_US.UTF-8; \
273+
PATH=$PATH:/usr/local/php-${PHP}/bin; \
274+
export PATH;
223275

224276
WORKDIR /var/www/html
225277
VOLUME /var/www/html

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# PHP 5.4.45 FPM (2014), Apache/2.4.54, Exim 4.94.2, debian11.6 (bullseye)
1+
# PHP 7.1.33 FPM (2014), Apache/2.4.54, Exim 4.94.2, debian12.6 (bookworm)
22

3-
[![Docker php 5.4.45](https://github.com/RootShell-coder/php/actions/workflows/docker-image.yml/badge.svg)](https://github.com/RootShell-coder/php/actions/workflows/docker-image.yml)
3+
[![Docker php 7.1.33](https://github.com/RootShell-coder/php/actions/workflows/docker-image.yml/badge.svg)](https://github.com/RootShell-coder/php/actions/workflows/docker-image.yml)
44

55
```diff
6-
- Note: _that php 5.4.45 has reached end of life and is not being security supported further. Because unpatched systems are easy to compromise and compromised systems are often used to attack other systems, you should consider upgrading promptly to a supported version so as not to be a hazard to the Internet._
6+
- Note: _that php 7.1.33 has reached end of life and is not being security supported further. Because unpatched systems are easy to compromise and compromised systems are often used to attack other systems, you should consider upgrading promptly to a supported version so as not to be a hazard to the Internet._
77
```
88

99
_dkim_
1010

11-
`docker exec -ti $(docker ps | grep "rootshell-coder/php:5.4.45" | awk {'print $1'}) /usr/local/dkim/gen_dkim.sh`
11+
`docker exec -ti $(docker ps | grep "rootshell-coder/php:7.1.33" | awk {'print $1'}) /usr/local/dkim/gen_dkim.sh`
1212

1313
```bash
1414
Publish your public key to your DNS record as a text (TXT) record.

0 commit comments

Comments
 (0)