Browse Source

[php] Ubiquity update to PHP 8.3 (#8600)

* [php] Ubiquity update to PHP 8.3

* Update ngx-php and nginx

* Allow Dynamic Properties in Fortunes model

* Allow Dynamic Properties in CachedWorld model

* Use root namespace

* Add AllowDynamicProperties in World model

* Update ngx-php to php8.3 & ubuntu22.04

* Small change to rerun CI
Joan Miquel 1 year ago
parent
commit
208c9895d0

+ 1 - 0
frameworks/PHP/ubiquity/app/models/CachedWorld.php

@@ -4,6 +4,7 @@ namespace models;
 /**
  * @table("World")
  */
+#[\AllowDynamicProperties]
 class CachedWorld extends World{
 }
 

+ 1 - 0
frameworks/PHP/ubiquity/app/models/Fortune.php

@@ -1,6 +1,7 @@
 <?php
 namespace models;
 
+#[\AllowDynamicProperties]
 class Fortune {
 
 	/**

+ 1 - 0
frameworks/PHP/ubiquity/app/models/World.php

@@ -1,6 +1,7 @@
 <?php
 namespace models;
 
+#[\AllowDynamicProperties]
 class World {
 
 	/**

+ 4 - 4
frameworks/PHP/ubiquity/ubiquity-ngx-micro.dockerfile

@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04 
 
 ARG DEBIAN_FRONTEND=noninteractive
 
@@ -9,15 +9,15 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null
 RUN apt-get update -yqq > /dev/null && \
     apt-get install -yqq wget git unzip libxml2-dev cmake make systemtap-sdt-dev \
                     zlib1g-dev libpcre3-dev libargon2-0-dev libsodium-dev \
-                    php8.0-cli php8.0-dev php8.0-mbstring libphp8.0-embed nginx > /dev/null
+                    php8.3-cli php8.3-dev php8.3-mbstring libphp8.3-embed nginx > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 ADD ./ ./
 
-ENV NGINX_VERSION=1.21.0
+ENV NGINX_VERSION=1.25.3
 
-RUN git clone -b v0.0.25 --single-branch --depth 1 https://github.com/rryqszq4/ngx_php7.git > /dev/null
+RUN git clone -b v0.0.28 --single-branch --depth 1 https://github.com/rryqszq4/ngx_php7.git > /dev/null
 
 RUN wget -q http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
     tar -zxf nginx-${NGINX_VERSION}.tar.gz && \

+ 4 - 4
frameworks/PHP/ubiquity/ubiquity-ngx-raw.dockerfile

@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
 
 ARG DEBIAN_FRONTEND=noninteractive
 
@@ -9,15 +9,15 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null
 RUN apt-get update -yqq > /dev/null && \
     apt-get install -yqq wget git unzip libxml2-dev cmake make systemtap-sdt-dev \
                     zlib1g-dev libpcre3-dev libargon2-0-dev libsodium-dev \
-                    php8.0-cli php8.0-dev libphp8.0-embed php8.0-pgsql nginx > /dev/null
+                    php8.3-cli php8.3-dev libphp8.3-embed php8.3-pgsql nginx > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 ADD ./ ./
 
-ENV NGINX_VERSION=1.21.0
+ENV NGINX_VERSION=1.25.3
 
-RUN git clone -b v0.0.25 --single-branch --depth 1 https://github.com/rryqszq4/ngx_php7.git > /dev/null
+RUN git clone -b v0.0.28 --single-branch --depth 1 https://github.com/rryqszq4/ngx_php7.git > /dev/null
 
 RUN wget -q http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
     tar -zxf nginx-${NGINX_VERSION}.tar.gz && \

+ 4 - 4
frameworks/PHP/ubiquity/ubiquity-ngx.dockerfile

@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
 
 ARG DEBIAN_FRONTEND=noninteractive
 
@@ -9,15 +9,15 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null
 RUN apt-get update -yqq > /dev/null && \
     apt-get install -yqq wget git unzip libxml2-dev cmake make systemtap-sdt-dev \
                     zlib1g-dev libpcre3-dev libargon2-0-dev libsodium-dev \
-                    php8.0-cli php8.0-dev libphp8.0-embed php8.0-pgsql nginx > /dev/null
+                    php8.3-cli php8.3-dev libphp8.3-embed php8.3-pgsql nginx > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 ADD ./ ./
 
-ENV NGINX_VERSION=1.21.0
+ENV NGINX_VERSION=1.25.3
 
-RUN git clone -b v0.0.25 --single-branch --depth 1 https://github.com/rryqszq4/ngx_php7.git > /dev/null
+RUN git clone -b v0.0.28 --single-branch --depth 1 https://github.com/rryqszq4/ngx_php7.git > /dev/null
 
 RUN wget -q http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
     tar -zxf nginx-${NGINX_VERSION}.tar.gz && \

+ 4 - 4
frameworks/PHP/ubiquity/ubiquity-roadrunner-mysql.dockerfile

@@ -5,13 +5,13 @@ ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq php8.0 php8.0-common php8.0-cgi php-curl php8.0-mysql > /dev/null
+    apt-get install -yqq php8.3 php8.3-common php8.3-cgi php-curl php8.3-mysql > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 RUN apt-get install -y php-pear php-dev > /dev/null
 
-COPY deploy/conf/php-async.ini /etc/php/8.0/cgi/php.ini
+COPY deploy/conf/php-async.ini /etc/php/8.3/cgi/php.ini
 
 ADD ./ /ubiquity
 WORKDIR /ubiquity
@@ -33,8 +33,8 @@ RUN chmod 755 /bin/envwrapper.sh
 
 RUN chmod 777 -R /ubiquity/.ubiquity/*
 
-#RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.0/cgi/php.ini
-RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.0/cgi/php.ini
+#RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.3/cgi/php.ini
+RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.3/cgi/php.ini
 
 COPY deploy/conf/roadrunner/mysql/rrServices.php app/config/rrServices.php
 

+ 4 - 4
frameworks/PHP/ubiquity/ubiquity-roadrunner.dockerfile

@@ -5,14 +5,14 @@ ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq php8.0 php8.0-common php8.0-cgi php8.0-pgsql php-curl > /dev/null
+    apt-get install -yqq php8.3 php8.3-common php8.3-cgi php8.3-pgsql php-curl > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 RUN apt-get install -y php-pear php-dev > /dev/null
 
 
-COPY deploy/conf/php-async.ini /etc/php/8.0/cgi/php.ini
+COPY deploy/conf/php-async.ini /etc/php/8.3/cgi/php.ini
 
 ADD ./ /ubiquity
 WORKDIR /ubiquity
@@ -34,8 +34,8 @@ RUN chmod 755 /bin/envwrapper.sh
 
 RUN chmod 777 -R /ubiquity/.ubiquity/*
 
-#RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.0/cgi/php.ini
-RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=function\n" >> /etc/php/8.0/cgi/php.ini
+#RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.3/cgi/php.ini
+RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=function\n" >> /etc/php/8.3/cgi/php.ini
 
 COPY deploy/conf/roadrunner/pgsql/rrServices.php app/config/rrServices.php
 

+ 1 - 1
frameworks/PHP/ubiquity/ubiquity-swoole-mysql.dockerfile

@@ -1,4 +1,4 @@
-FROM php:8.0
+FROM php:8.3-cli
 
 RUN apt-get update > /dev/null
 

+ 1 - 1
frameworks/PHP/ubiquity/ubiquity-swoole.dockerfile

@@ -1,4 +1,4 @@
-FROM php:8.0
+FROM php:8.3-cli
 
 RUN apt-get update > /dev/null
 

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

@@ -5,14 +5,14 @@ ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq git php8.1-cli php8.1-mongodb php8.1-xml php8.1-mbstring > /dev/null
+    apt-get install -yqq git php8.3-cli php8.3-mongodb php8.3-xml php8.3-mbstring > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
-RUN apt-get install -y php-pear php8.1-dev libevent-dev > /dev/null
-RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.1/cli/conf.d/event.ini
+RUN apt-get install -y php-pear php8.3-dev libevent-dev > /dev/null
+RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.3/cli/conf.d/event.ini
 
-COPY deploy/conf/php-async.ini /etc/php/8.1/cli/php.ini
+COPY deploy/conf/php-async.ini /etc/php/8.3/cli/php.ini
 
 ADD ./ /ubiquity
 
@@ -31,8 +31,8 @@ RUN chmod 777 -R /ubiquity/.ubiquity/*
 
 COPY deploy/conf/workerman/mongo/workerServices.php app/config/workerServices.php
 
-RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.1/cli/php.ini
-RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.1/cli/php.ini
+RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.3/cli/php.ini
+RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.3/cli/php.ini
 
 EXPOSE 8080
 

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

@@ -5,14 +5,14 @@ ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq git php8.1-cli php8.1-mysql php8.1-xml php8.1-mbstring > /dev/null
+    apt-get install -yqq git php8.3-cli php8.3-mysql php8.3-xml php8.3-mbstring > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
-RUN apt-get install -y php-pear php8.1-dev libevent-dev > /dev/null
-RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.1/cli/conf.d/event.ini
+RUN apt-get install -y php-pear php8.3-dev libevent-dev > /dev/null
+RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.3/cli/conf.d/event.ini
 
-COPY deploy/conf/php-async.ini /etc/php/8.1/cli/php.ini
+COPY deploy/conf/php-async.ini /etc/php/8.3/cli/php.ini
 
 ADD ./ /ubiquity
 WORKDIR /ubiquity
@@ -30,8 +30,8 @@ RUN chmod 777 -R /ubiquity/.ubiquity/*
 
 COPY deploy/conf/workerman/mysql/workerServices.php app/config/workerServices.php
 
-RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.1/cli/php.ini
-RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.1/cli/php.ini
+RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.3/cli/php.ini
+RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.3/cli/php.ini
 
 EXPOSE 8080
 

+ 6 - 6
frameworks/PHP/ubiquity/ubiquity-workerman-raw.dockerfile

@@ -5,14 +5,14 @@ ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq git php8.1-cli php8.1-pgsql php8.1-xml php8.1-mbstring > /dev/null
+    apt-get install -yqq git php8.3-cli php8.3-pgsql php8.3-xml php8.3-mbstring > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
-RUN apt-get install -y php-pear php8.1-dev libevent-dev > /dev/null
-RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.1/cli/conf.d/event.ini
+RUN apt-get install -y php-pear php8.3-dev libevent-dev > /dev/null
+RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.3/cli/conf.d/event.ini
 
-COPY deploy/conf/php-async.ini /etc/php/8.1/cli/php.ini
+COPY deploy/conf/php-async.ini /etc/php/8.3/cli/php.ini
 
 ADD ./ /ubiquity
 WORKDIR /ubiquity
@@ -30,8 +30,8 @@ RUN chmod 777 -R /ubiquity/.ubiquity/*
 
 COPY deploy/conf/workerman/pgsql/raw/workerServices.php app/config/workerServices.php
 
-RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php\n" >> /etc/php/8.1/cli/php.ini
-RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.1/cli/php.ini
+RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php\n" >> /etc/php/8.3/cli/php.ini
+RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=tracing\n" >> /etc/php/8.3/cli/php.ini
 
 EXPOSE 8080
 

+ 6 - 6
frameworks/PHP/ubiquity/ubiquity-workerman.dockerfile

@@ -5,14 +5,14 @@ ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq git php8.1-cli php8.1-pgsql php8.1-xml php8.1-mbstring > /dev/null
+    apt-get install -yqq git php8.3-cli php8.3-pgsql php8.3-xml php8.3-mbstring > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
-RUN apt-get install -y php-pear php8.1-dev libevent-dev > /dev/null
-RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.1/cli/conf.d/event.ini
+RUN apt-get install -y php-pear php8.3-dev libevent-dev > /dev/null
+RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.3/cli/conf.d/event.ini
 
-COPY deploy/conf/php-async.ini /etc/php/8.1/cli/php.ini
+COPY deploy/conf/php-async.ini /etc/php/8.3/cli/php.ini
 
 ADD ./ /ubiquity
 WORKDIR /ubiquity
@@ -30,8 +30,8 @@ RUN chmod 777 -R /ubiquity/.ubiquity/*
 
 COPY deploy/conf/workerman/pgsql/workerServices.php app/config/workerServices.php
 
-RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php\n" >> /etc/php/8.1/cli/php.ini
-RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=function\n" >> /etc/php/8.1/cli/php.ini
+RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php\n" >> /etc/php/8.3/cli/php.ini
+RUN echo "opcache.jit_buffer_size=128M\nopcache.jit=function\n" >> /etc/php/8.3/cli/php.ini
 
 EXPOSE 8080
 

+ 5 - 5
frameworks/PHP/ubiquity/ubiquity.dockerfile

@@ -5,16 +5,16 @@ ARG DEBIAN_FRONTEND=noninteractive
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq nginx git unzip php8.1 php8.1-common php8.1-cli php8.1-fpm php8.1-mysql php8.1-dev > /dev/null
+    apt-get install -yqq nginx git unzip php8.3 php8.3-common php8.3-cli php8.3-fpm php8.3-mysql php8.3-dev > /dev/null
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
-COPY deploy/conf/* /etc/php/8.1/fpm/
+COPY deploy/conf/* /etc/php/8.3/fpm/
 
 ADD ./ /ubiquity
 WORKDIR /ubiquity
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.1/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.3/fpm/php-fpm.conf ; fi;
 
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
 
@@ -22,9 +22,9 @@ RUN chmod 777 -R /ubiquity/app/cache/*
 
 COPY deploy/conf/ubiquity-config.php app/config/config.php
 
-RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.1/fpm/php.ini
+RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.3/fpm/php.ini
 
 EXPOSE 8080
 
-CMD service php8.1-fpm start && \
+CMD service php8.3-fpm start && \
     nginx -c /ubiquity/deploy/nginx.conf -g "daemon off;"