Browse Source

PHP with h2o server (#4240)

* PHP with h2o server

* Force not install mruby

* More max-connection in h2o.conf
Joan Miquel 6 years ago
parent
commit
2f18fda2aa

+ 23 - 0
frameworks/PHP/php/benchmark_config.json

@@ -85,6 +85,29 @@
       "notes": "",
       "notes": "",
       "versus": "php"
       "versus": "php"
     },
     },
+    "h2o": {
+      "json_url": "/json.php",
+      "plaintext_url": "/plaintext.php",
+      "db_url": "/dbraw.php",
+      "query_url": "/dbraw.php?queries=",
+      "fortune_url": "/fortune.php",
+      "update_url": "/updateraw.php?queries=",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Platform",
+      "database": "MySQL",
+      "framework": "None",
+      "language": "PHP",
+      "flavor": "PHP7",
+      "orm": "Raw",
+      "platform": "None",
+      "webserver": "h2o",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "PHP-raw-h2o",
+      "notes": "",
+      "versus": "php"
+    },
     "php5": {
     "php5": {
       "json_url": "/json.php",
       "json_url": "/json.php",
       "plaintext_url": "/plaintext.php",
       "plaintext_url": "/plaintext.php",

+ 18 - 0
frameworks/PHP/php/deploy/h2o.conf

@@ -0,0 +1,18 @@
+server-name: "h2o"
+user: www-data
+max-connections: 32768
+
+listen:
+  port: 8080
+
+hosts:
+  default:
+    paths:
+      /:
+        file.dir: /
+
+file.custom-handler:                  # handle PHP scripts
+  extension: .php
+  fastcgi.connect:
+    port: /var/run/php/php7.2-fpm.sock
+    type: unix

+ 33 - 0
frameworks/PHP/php/php-h2o.dockerfile

@@ -0,0 +1,33 @@
+FROM ubuntu:16.04
+
+COPY ./ ./
+
+RUN apt-get update && \
+    apt-get install -yqq autoconf bison cmake curl file flex g++ git libnuma-dev libpq-dev libssl-dev \
+                     libtool libyajl-dev make wget software-properties-common > /dev/null
+
+### Install php
+
+RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null
+RUN apt-get update -yqq  > /dev/null
+RUN apt-get install -yqq php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2-mysql  > /dev/null
+
+COPY deploy/conf/* /etc/php/7.2/fpm/
+
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 2048|pm.max_children = 512|g" /etc/php/7.2/fpm/php-fpm.conf ; fi;
+
+### Install h2o
+
+ENV H2O_VERSION=2.2.5
+ENV H2O_ARCHIVE="v${H2O_VERSION}.tar.gz"
+ENV H2O_HOME=/h2o
+
+RUN wget -qO "$H2O_ARCHIVE" "https://github.com/h2o/h2o/archive/$H2O_ARCHIVE" && \
+    tar xf "$H2O_ARCHIVE" && \
+    cd "h2o-$H2O_VERSION" && \
+    cmake -DCMAKE_INSTALL_PREFIX="$H2O_HOME" -DCMAKE_C_FLAGS="-flto -march=native" \
+          -DCMAKE_AR=/usr/bin/gcc-ar -DCMAKE_RANLIB=/usr/bin/gcc-ranlib -DWITH_MRUBY=off && \
+    make -j "$(nproc)" install  > /dev/null
+
+CMD service php7.2-fpm start && \
+    /h2o/bin/h2o -c /deploy/h2o.conf