Skip to content

Commit 0f93e20

Browse files
authored
[Ubiquity] update workerman to PHP8 (#6312)
* fix workerman-pgsql * add jit * add jit in php.ini * fix 7.4 omitted * fix workerman-mysql * fix workerman-mongodb * force update * Update ubiquity-workerman-mongo.dockerfile * add workerman-raw * tag roadrunner as broken
1 parent 64e02b4 commit 0f93e20

9 files changed

+128
-34
lines changed

frameworks/PHP/ubiquity/benchmark_config.json

+31-8
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"database": "MySQL",
1616
"framework": "ubiquity",
1717
"language": "PHP",
18-
"flavor": "PHP7",
18+
"flavor": "PHP8",
1919
"orm": "Full",
2020
"platform": "FPM/FastCGI",
2121
"webserver": "nginx",
@@ -26,8 +26,6 @@
2626
"versus": "php"
2727
},
2828
"workerman": {
29-
"json_url": "/Json_",
30-
"plaintext_url": "/Plaintext_",
3129
"db_url": "/Db_",
3230
"query_url": "/Db_/query/",
3331
"fortune_url": "/Fortunes_",
@@ -39,7 +37,7 @@
3937
"database": "Postgres",
4038
"framework": "Ubiquity",
4139
"language": "PHP",
42-
"flavor": "PHP7",
40+
"flavor": "PHP8",
4341
"orm": "Full",
4442
"platform": "workerman",
4543
"webserver": "none",
@@ -114,7 +112,8 @@
114112
"database_os": "Linux",
115113
"display_name": "ubiquity-roadrunner",
116114
"notes": "",
117-
"versus": "php"
115+
"versus": "php",
116+
"tags": ["broken"]
118117
},
119118
"roadrunner-mysql": {
120119
"db_url": "/DbMy",
@@ -135,7 +134,8 @@
135134
"database_os": "Linux",
136135
"display_name": "ubiquity-roadrunner-mysql",
137136
"notes": "",
138-
"versus": "php"
137+
"versus": "php",
138+
"tags": ["broken"]
139139
},
140140
"workerman-mysql": {
141141
"db_url": "/DbMy",
@@ -148,7 +148,7 @@
148148
"database": "Mysql",
149149
"framework": "Ubiquity",
150150
"language": "PHP",
151-
"flavor": "PHP7",
151+
"flavor": "PHP8",
152152
"orm": "Full",
153153
"platform": "workerman",
154154
"webserver": "none",
@@ -169,7 +169,7 @@
169169
"database": "MongoDB",
170170
"framework": "Ubiquity",
171171
"language": "PHP",
172-
"flavor": "PHP7",
172+
"flavor": "PHP8",
173173
"orm": "Full",
174174
"platform": "workerman",
175175
"webserver": "none",
@@ -179,6 +179,29 @@
179179
"notes": "",
180180
"versus": "php"
181181
},
182+
"workerman-raw": {
183+
"json_url": "/Json_",
184+
"plaintext_url": "/Plaintext_",
185+
"db_url": "/DbRaw",
186+
"query_url": "/DbRaw/query/",
187+
"fortune_url": "/FortunesRaw",
188+
"update_url": "/DbRaw/update/",
189+
"port": 8080,
190+
"approach": "Realistic",
191+
"classification": "Fullstack",
192+
"database": "Postgres",
193+
"framework": "Ubiquity",
194+
"language": "PHP",
195+
"flavor": "PHP8",
196+
"orm": "raw",
197+
"platform": "workerman",
198+
"webserver": "none",
199+
"os": "Linux",
200+
"database_os": "Linux",
201+
"display_name": "ubiquity-workerman-raw",
202+
"notes": "",
203+
"versus": "workerman"
204+
},
182205
"ngx": {
183206
"json_url": "/Json_",
184207
"plaintext_url": "/Plaintext_",

frameworks/PHP/ubiquity/composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
},
66
"require-dev" : {
77
"monolog/monolog" : "^1.24",
8-
"mindplay/annotations" : "^1.3"
8+
"phpmv/ubiquity-annotations" : "^0.0"
99
},
1010
"autoload" : {
1111
"psr-4" : {

frameworks/PHP/ubiquity/config.toml

+17-2
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,6 @@ webserver = "nginx"
8585
versus = "ngx_php"
8686

8787
[workerman]
88-
urls.plaintext = "/Plaintext_"
89-
urls.json = "/Json_"
9088
urls.db = "/Db_"
9189
urls.query = "/Db_/query/"
9290
urls.update = "/Db_/update/"
@@ -132,6 +130,23 @@ platform = "workerman"
132130
webserver = "none"
133131
versus = "php"
134132

133+
[workerman-raw]
134+
urls.plaintext = "/Plaintext_"
135+
urls.json = "/Json_"
136+
urls.db = "/DbRaw"
137+
urls.query = "/DbRaw/query/"
138+
urls.update = "/DbRaw/update/"
139+
urls.fortune = "/FortunesRaw"
140+
approach = "Realistic"
141+
classification = "Fullstack"
142+
database = "Postgres"
143+
database_os = "Linux"
144+
os = "Linux"
145+
orm = "raw"
146+
platform = "workerman"
147+
webserver = "none"
148+
versus = "php"
149+
135150
[swoole-mysql]
136151
urls.db = "/DbMy"
137152
urls.query = "/DbMy/query/"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
\Ubiquity\cache\CacheManager::startProd($config);
3+
4+
\Ubiquity\cache\CacheManager::warmUpControllers([
5+
\controllers\Plaintext_::class,
6+
\controllers\Json_::class,
7+
\controllers\DbRaw::class,
8+
\controllers\FortunesRaw::class
9+
]);
10+
11+
$workerServer->onWorkerStart = function () use ($config) {
12+
$db = \Ubiquity\db\Database::start('pgsql', $config);
13+
\controllers\DbRaw::warmup($db);
14+
\controllers\FortunesRaw::warmup($db);
15+
};

frameworks/PHP/ubiquity/deploy/conf/workerman/pgsql/workerServices.php

-3
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
echo "End Loading\n";
1414

1515
\Ubiquity\cache\CacheManager::warmUpControllers([
16-
\controllers\Plaintext_::class,
17-
\controllers\Json_::class,
1816
\controllers\Db_::class,
1917
\controllers\Fortunes_::class,
2018
\controllers\Cache::class
@@ -25,4 +23,3 @@
2523
\controllers\Db_::warmup();
2624
\controllers\Fortunes_::warmup();
2725
};
28-

frameworks/PHP/ubiquity/ubiquity-workerman-mongo.dockerfile

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11

2-
FROM ubuntu:20.04
2+
FROM ubuntu:20.10
33

44
ARG DEBIAN_FRONTEND=noninteractive
55

66
RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
77
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
88
RUN apt-get update -yqq > /dev/null && \
9-
apt-get install -yqq php7.4 php7.4-common php7.4-cli php7.4-mongodb > /dev/null
9+
apt-get install -yqq git php8.0-cli php8.0-mongodb php8.0-xml > /dev/null
1010

1111
RUN apt-get install -yqq composer > /dev/null
1212

13-
RUN apt-get install -y php-pear php-dev libevent-dev > /dev/null
13+
RUN apt-get install -y php-pear php8.0-dev libevent-dev > /dev/null
14+
RUN pecl install event-3.0.2 > /dev/null && echo "extension=event.so" > /etc/php/8.0/cli/conf.d/event.ini
1415

15-
RUN printf "\n\n /usr/lib/x86_64-linux-gnu/\n\n\nno\n\n\n" | pecl install event > /dev/null && echo "extension=event.so" > /etc/php/7.4/cli/conf.d/event.ini
16-
17-
COPY deploy/conf/php-async.ini /etc/php/7.4/cli/php.ini
16+
COPY deploy/conf/php-async.ini /etc/php/8.0/cli/php.ini
1817

1918
ADD ./ /ubiquity
2019

@@ -37,7 +36,8 @@ RUN chmod 777 -R /ubiquity/.ubiquity/*
3736

3837
COPY deploy/conf/workerman/mongo/workerServices.php app/config/workerServices.php
3938

40-
RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/7.4/cli/php.ini
39+
RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.0/cli/php.ini
40+
RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.0/cli/php.ini
4141

4242
EXPOSE 8080
4343

frameworks/PHP/ubiquity/ubiquity-workerman-mysql.dockerfile

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
2-
FROM ubuntu:20.04
1+
FROM ubuntu:20.10
32

43
ARG DEBIAN_FRONTEND=noninteractive
54

65
RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
76
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
87
RUN apt-get update -yqq > /dev/null && \
9-
apt-get install -yqq php7.4 php7.4-common php7.4-cli php7.4-mysql > /dev/null
8+
apt-get install -yqq git php8.0-cli php8.0-mysql php8.0-xml > /dev/null
109

1110
RUN apt-get install -yqq composer > /dev/null
1211

13-
RUN apt-get install -y php-pear php-dev libevent-dev > /dev/null
14-
RUN printf "\n\n /usr/lib/x86_64-linux-gnu/\n\n\nno\n\n\n" | pecl install event > /dev/null && echo "extension=event.so" > /etc/php/7.4/cli/conf.d/event.ini
12+
RUN apt-get install -y php-pear php8.0-dev libevent-dev > /dev/null
13+
RUN pecl install event-3.0.2 > /dev/null && echo "extension=event.so" > /etc/php/8.0/cli/conf.d/event.ini
1514

16-
COPY deploy/conf/php-async.ini /etc/php/7.4/cli/php.ini
15+
COPY deploy/conf/php-async.ini /etc/php/8.0/cli/php.ini
1716

1817
ADD ./ /ubiquity
1918
WORKDIR /ubiquity
@@ -35,7 +34,8 @@ RUN chmod 777 -R /ubiquity/.ubiquity/*
3534

3635
COPY deploy/conf/workerman/mysql/workerServices.php app/config/workerServices.php
3736

38-
RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/7.4/cli/php.ini
37+
RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.0/cli/php.ini
38+
RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.0/cli/php.ini
3939

4040
EXPOSE 8080
4141

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
FROM ubuntu:20.10
3+
4+
ARG DEBIAN_FRONTEND=noninteractive
5+
6+
RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
7+
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
8+
RUN apt-get update -yqq > /dev/null && \
9+
apt-get install -yqq git php8.0-cli php8.0-pgsql php8.0-xml > /dev/null
10+
11+
RUN apt-get install -yqq composer > /dev/null
12+
13+
RUN apt-get install -y php-pear php8.0-dev libevent-dev > /dev/null
14+
RUN pecl install event-3.0.2 > /dev/null && echo "extension=event.so" > /etc/php/8.0/cli/conf.d/event.ini
15+
16+
COPY deploy/conf/php-async.ini /etc/php/8.0/cli/php.ini
17+
18+
ADD ./ /ubiquity
19+
WORKDIR /ubiquity
20+
21+
RUN chmod -R 777 /ubiquity
22+
23+
RUN ["chmod", "+x", "deploy/run/install-composer.sh"]
24+
25+
RUN deploy/run/install-composer.sh
26+
27+
RUN apt-get update -yqq > /dev/null && \
28+
apt-get install -yqq git unzip > /dev/null
29+
30+
RUN php composer.phar require phpmv/ubiquity-devtools:dev-master phpmv/ubiquity-workerman:dev-master --quiet
31+
32+
RUN php composer.phar install --optimize-autoloader --classmap-authoritative --no-dev --quiet
33+
34+
RUN chmod 777 -R /ubiquity/.ubiquity/*
35+
36+
COPY deploy/conf/workerman/pgsql/raw/workerServices.php app/config/workerServices.php
37+
38+
RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php\n" >> /etc/php/8.0/cli/php.ini
39+
RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.0/cli/php.ini
40+
41+
EXPOSE 8080
42+
43+
CMD /ubiquity/vendor/bin/Ubiquity serve -t=workerman -p=8080 -h=0.0.0.0

frameworks/PHP/ubiquity/ubiquity-workerman.dockerfile

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11

2-
FROM ubuntu:20.04
2+
FROM ubuntu:20.10
33

44
ARG DEBIAN_FRONTEND=noninteractive
55

66
RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
77
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
88
RUN apt-get update -yqq > /dev/null && \
9-
apt-get install -yqq php7.4 php7.4-common php7.4-cli php7.4-pgsql > /dev/null
9+
apt-get install -yqq git php8.0-cli php8.0-pgsql php8.0-xml > /dev/null
1010

1111
RUN apt-get install -yqq composer > /dev/null
1212

13-
RUN apt-get install -y php-pear php-dev libevent-dev > /dev/null
14-
RUN printf "\n\n /usr/lib/x86_64-linux-gnu/\n\n\nno\n\n\n" | pecl install event > /dev/null && echo "extension=event.so" > /etc/php/7.4/cli/conf.d/event.ini
13+
RUN apt-get install -y php-pear php8.0-dev libevent-dev > /dev/null
14+
RUN pecl install event-3.0.2 > /dev/null && echo "extension=event.so" > /etc/php/8.0/cli/conf.d/event.ini
1515

16-
COPY deploy/conf/php-async.ini /etc/php/7.4/cli/php.ini
16+
COPY deploy/conf/php-async.ini /etc/php/8.0/cli/php.ini
1717

1818
ADD ./ /ubiquity
1919
WORKDIR /ubiquity
@@ -35,7 +35,8 @@ RUN chmod 777 -R /ubiquity/.ubiquity/*
3535

3636
COPY deploy/conf/workerman/pgsql/workerServices.php app/config/workerServices.php
3737

38-
RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/7.4/cli/php.ini
38+
RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php\n" >> /etc/php/8.0/cli/php.ini
39+
RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=function\n" >> /etc/php/8.0/cli/php.ini
3940

4041
EXPOSE 8080
4142

0 commit comments

Comments
 (0)