From f5e1a0d9dd8e4410dce754a45669760838c4c3c2 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 22:20:58 +0200 Subject: [PATCH 01/24] Add GH action to test the frameworks --- .github/workflows/test.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..7860e00 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,31 @@ +name: Test PHP benchmark +on: [ push, pull_request ] + +jobs: + setup: + runs-on: ubuntu-22.04 + + steps: + + - uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.2 + extensions: dom, curl, libxml, mbstring, zip, pcntl + coverage: none + + - name: Setup frameworks + run: bash setup.sh + + - name: Copy files to web root + run: | + cp -R ./* /var/www/html/PHP-Frameworks-Bench/ + + - name: Restart apache server + run: service apache2 restart + + - name: Check frameworks + run: bash check.sh + \ No newline at end of file From 6b867aabaa251d8e627bdc58b03ba41a9f8da55b Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 22:27:16 +0200 Subject: [PATCH 02/24] Install WRK --- .github/workflows/test.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7860e00..c24fee5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,10 @@ jobs: steps: - uses: actions/checkout@v3 - + + - name: Install WRK + run: apt-get install wrk + - name: Setup PHP uses: shivammathur/setup-php@v2 with: From c60c4486cb92ec67c29bc305822f7bfe8945f8d9 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 22:29:13 +0200 Subject: [PATCH 03/24] Add sudo --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c24fee5..bc78e06 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,8 +10,8 @@ jobs: - uses: actions/checkout@v3 - name: Install WRK - run: apt-get install wrk - + run: sudo apt-get install wrk + - name: Setup PHP uses: shivammathur/setup-php@v2 with: From 5213e80e42baab9e9b25824069b5e4d2677b7f00 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 22:34:39 +0200 Subject: [PATCH 04/24] Create dir in www --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bc78e06..0366dc7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,6 +24,7 @@ jobs: - name: Copy files to web root run: | + mkdir /var/www/html/PHP-Frameworks-Bench cp -R ./* /var/www/html/PHP-Frameworks-Bench/ - name: Restart apache server From 874bbd20725c24493e6f5a80adda72b98fc39440 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 22:38:01 +0200 Subject: [PATCH 05/24] Add sudo --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0366dc7..af92d98 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: - name: Copy files to web root run: | - mkdir /var/www/html/PHP-Frameworks-Bench + sudo mkdir /var/www/html/PHP-Frameworks-Bench cp -R ./* /var/www/html/PHP-Frameworks-Bench/ - name: Restart apache server From 3eee0885ad453bc77f0c17c4b0df19961414c917 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 22:41:59 +0200 Subject: [PATCH 06/24] Add more sudo --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index af92d98..855cb10 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,10 +25,10 @@ jobs: - name: Copy files to web root run: | sudo mkdir /var/www/html/PHP-Frameworks-Bench - cp -R ./* /var/www/html/PHP-Frameworks-Bench/ + sudo cp -R ./* /var/www/html/PHP-Frameworks-Bench/ - name: Restart apache server - run: service apache2 restart + run: sudo service apache2 restart - name: Check frameworks run: bash check.sh From b11d1c5afca6e61ceadfbb6392e3e0fc986fa205 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 22:52:46 +0200 Subject: [PATCH 07/24] Install mod_php --- .github/workflows/test.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 855cb10..26dc742 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,6 +19,13 @@ jobs: extensions: dom, curl, libxml, mbstring, zip, pcntl coverage: none + - name: Install Apache mod_php + run: | + LC_ALL=C.UTF-8 sudo apt-add-repository http://ppa.launchpad.net/ondrej/php/ubuntu + sudo apt install libapache2-mod-php8.2 + sudo a2enmod php8.2 rewrite + shell: bash + - name: Setup frameworks run: bash setup.sh From 24f21be86c7d12564077eea2dc73618da01f86d3 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 23:13:53 +0200 Subject: [PATCH 08/24] Add dir logs to fuelphp --- fuelphp-1.9/_benchmark/fuel/fuel/app/logs/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 fuelphp-1.9/_benchmark/fuel/fuel/app/logs/.gitkeep diff --git a/fuelphp-1.9/_benchmark/fuel/fuel/app/logs/.gitkeep b/fuelphp-1.9/_benchmark/fuel/fuel/app/logs/.gitkeep new file mode 100644 index 0000000..e69de29 From 17817129b1453b0bc08817df1ae5eb3ef37294b4 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 23:25:50 +0200 Subject: [PATCH 09/24] Add color to check.sh --- check.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/check.sh b/check.sh index 720e855..0ce3b09 100755 --- a/check.sh +++ b/check.sh @@ -3,6 +3,10 @@ . ./benchmark.config . ./base/option_target.sh +GREEN='\033[0;32m' +RED='\033[0;31m' +NC='\033[0m' # No Color + for fw in `echo $param_targets` do if [ -d "$fw" ]; then @@ -13,10 +17,10 @@ do # expected to get the Hello World! + libs/output_data.php if ! [[ "$url_output" =~ ^('Hello World!')(.*)(([0-9]*):(([0-9]+([.][0-9]*)?|[.][0-9]+)):([0-9]*))$ ]]; then - echo -e "error: \n$url" + echo -e "${RED}error: \n$url${NC}" echo "$url_output" else - echo "done." + echo "${GREEN}done.${NC}" fi fi done \ No newline at end of file From f60daf34a2b81a5baae395c759731776a7fe07a0 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 23:29:32 +0200 Subject: [PATCH 10/24] Fix green color --- check.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check.sh b/check.sh index 0ce3b09..c17e0f7 100755 --- a/check.sh +++ b/check.sh @@ -20,7 +20,7 @@ do echo -e "${RED}error: \n$url${NC}" echo "$url_output" else - echo "${GREEN}done.${NC}" + echo "${GREEN}done!${NC}" fi fi done \ No newline at end of file From d7a048331c4f95b6fbe13c6f45ab50d05f953677 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sat, 22 Jul 2023 23:38:28 +0200 Subject: [PATCH 11/24] Fix green --- check.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check.sh b/check.sh index c17e0f7..4ff1273 100755 --- a/check.sh +++ b/check.sh @@ -20,7 +20,7 @@ do echo -e "${RED}error: \n$url${NC}" echo "$url_output" else - echo "${GREEN}done!${NC}" + echo -e "${GREEN}done!${NC}" fi fi done \ No newline at end of file From 9f374ef541fe308182d6a1d466a181c53b3dbec0 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 00:13:48 +0200 Subject: [PATCH 12/24] Change check.sh output --- check.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/check.sh b/check.sh index 4ff1273..574fd90 100755 --- a/check.sh +++ b/check.sh @@ -3,6 +3,9 @@ . ./benchmark.config . ./base/option_target.sh +OK='\U2714' +FAIL='\U274C' + GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' # No Color @@ -10,17 +13,17 @@ NC='\033[0m' # No Color for fw in `echo $param_targets` do if [ -d "$fw" ]; then - echo -n "/------- $fw: checking... " . "$fw/_benchmark/hello_world.sh" url_output=$(curl -s "$url") # expected to get the Hello World! + libs/output_data.php if ! [[ "$url_output" =~ ^('Hello World!')(.*)(([0-9]*):(([0-9]+([.][0-9]*)?|[.][0-9]+)):([0-9]*))$ ]]; then - echo -e "${RED}error: \n$url${NC}" + echo -e "${RED}${FAIL} $fw ${NC}" + echo "$url" echo "$url_output" else - echo -e "${GREEN}done!${NC}" + echo -e "${GREEN}${OK} $fw ${NC}" fi fi done \ No newline at end of file From 324b94827b378125c7fe30852de0557e3dd819ef Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 00:25:06 +0200 Subject: [PATCH 13/24] Add exit error to check.sh --- check.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/check.sh b/check.sh index 574fd90..d20d89a 100755 --- a/check.sh +++ b/check.sh @@ -10,6 +10,8 @@ GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' # No Color +FAIL=0 + for fw in `echo $param_targets` do if [ -d "$fw" ]; then @@ -22,8 +24,11 @@ do echo -e "${RED}${FAIL} $fw ${NC}" echo "$url" echo "$url_output" + FAIL=1 else echo -e "${GREEN}${OK} $fw ${NC}" fi fi -done \ No newline at end of file +done + +exit $FAIL \ No newline at end of file From 4960f0520bde075b4b32c33a4145a4a7b5c47000 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 00:29:14 +0200 Subject: [PATCH 14/24] Fix repeated var --- check.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/check.sh b/check.sh index d20d89a..1ed06e6 100755 --- a/check.sh +++ b/check.sh @@ -4,7 +4,7 @@ . ./base/option_target.sh OK='\U2714' -FAIL='\U274C' +ERROR='\U274C' GREEN='\033[0;32m' RED='\033[0;31m' @@ -21,7 +21,7 @@ do # expected to get the Hello World! + libs/output_data.php if ! [[ "$url_output" =~ ^('Hello World!')(.*)(([0-9]*):(([0-9]+([.][0-9]*)?|[.][0-9]+)):([0-9]*))$ ]]; then - echo -e "${RED}${FAIL} $fw ${NC}" + echo -e "${RED}${ERROR} $fw ${NC}" echo "$url" echo "$url_output" FAIL=1 From b8a5f25742cdd71b17993492e700fea86e3d77f8 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 00:38:48 +0200 Subject: [PATCH 15/24] Add php extensions for Symfony --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 26dc742..fd265f7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: uses: shivammathur/setup-php@v2 with: php-version: 8.2 - extensions: dom, curl, libxml, mbstring, zip, pcntl + extensions: dom, curl, libxml, mbstring, zip, pcntl, ctype, iconv coverage: none - name: Install Apache mod_php From b2bd0c4ab14f9ca7a0287d97522abc659739886b Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 01:07:09 +0200 Subject: [PATCH 16/24] Render the html error to be more informative --- check.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check.sh b/check.sh index 1ed06e6..0123071 100755 --- a/check.sh +++ b/check.sh @@ -23,7 +23,7 @@ do if ! [[ "$url_output" =~ ^('Hello World!')(.*)(([0-9]*):(([0-9]+([.][0-9]*)?|[.][0-9]+)):([0-9]*))$ ]]; then echo -e "${RED}${ERROR} $fw ${NC}" echo "$url" - echo "$url_output" + echo "$url_output" | w3m -dump -T text/html FAIL=1 else echo -e "${GREEN}${OK} $fw ${NC}" From 5f55a3038fff05ee2c60d51a72af6add5af2e7b3 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 01:10:17 +0200 Subject: [PATCH 17/24] Add w3m --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fd265f7..bf31a8b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v3 - name: Install WRK - run: sudo apt-get install wrk + run: sudo apt-get install wrk w3m - name: Setup PHP uses: shivammathur/setup-php@v2 From 2200b044bcf35f7e53a675737ce33981259f4c34 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 01:24:01 +0200 Subject: [PATCH 18/24] Check: validate that exist w3m else return normal --- check.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/check.sh b/check.sh index 0123071..662c33b 100755 --- a/check.sh +++ b/check.sh @@ -23,7 +23,11 @@ do if ! [[ "$url_output" =~ ^('Hello World!')(.*)(([0-9]*):(([0-9]+([.][0-9]*)?|[.][0-9]+)):([0-9]*))$ ]]; then echo -e "${RED}${ERROR} $fw ${NC}" echo "$url" - echo "$url_output" | w3m -dump -T text/html + if [ -x "$(command -v w3m)" ]; then + echo "$url_output" | w3m -dump -T text/html + else + echo "$url_output" + fi FAIL=1 else echo -e "${GREEN}${OK} $fw ${NC}" From ff6c07e8e3f581e674406d70cdc310bbc8a8cad1 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 01:25:01 +0200 Subject: [PATCH 19/24] Clean --- check.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/check.sh b/check.sh index 662c33b..dc3069d 100755 --- a/check.sh +++ b/check.sh @@ -23,11 +23,13 @@ do if ! [[ "$url_output" =~ ^('Hello World!')(.*)(([0-9]*):(([0-9]+([.][0-9]*)?|[.][0-9]+)):([0-9]*))$ ]]; then echo -e "${RED}${ERROR} $fw ${NC}" echo "$url" + if [ -x "$(command -v w3m)" ]; then echo "$url_output" | w3m -dump -T text/html else echo "$url_output" fi + FAIL=1 else echo -e "${GREEN}${OK} $fw ${NC}" From 2089162252c47cc80e7706c6768bcc983fc5c72d Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 01:52:20 +0200 Subject: [PATCH 20/24] Add intl extension --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf31a8b..d0b8539 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: uses: shivammathur/setup-php@v2 with: php-version: 8.2 - extensions: dom, curl, libxml, mbstring, zip, pcntl, ctype, iconv + extensions: dom, curl, libxml, mbstring, zip, pcntl, ctype, iconv, intl coverage: none - name: Install Apache mod_php From 5f1dabcdfea63314042b04949f6920d62dd6250f Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 03:06:36 +0200 Subject: [PATCH 21/24] Add permissions --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d0b8539..d656338 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,6 +33,7 @@ jobs: run: | sudo mkdir /var/www/html/PHP-Frameworks-Bench sudo cp -R ./* /var/www/html/PHP-Frameworks-Bench/ + sudo chown -R www-data:www-data /var/www/html - name: Restart apache server run: sudo service apache2 restart From b72cf7d3ca89602150f514dc9eaff8ca961e6f3c Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 03:16:43 +0200 Subject: [PATCH 22/24] Fix Laravel permissions --- laravel-10.0/_benchmark/setup.sh | 2 +- laravel-10.0/_benchmark/update.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/laravel-10.0/_benchmark/setup.sh b/laravel-10.0/_benchmark/setup.sh index 9e4f893..bc9ac70 100755 --- a/laravel-10.0/_benchmark/setup.sh +++ b/laravel-10.0/_benchmark/setup.sh @@ -10,6 +10,6 @@ yes|cp -rf _benchmark/laravel/. ./ # some enhancements composer install --optimize-autoloader --no-dev chmod o+w storage/* -sudo chmod o+w storage/framework/* +chmod o+w storage/framework/* php artisan optimize rm ./public/.htaccess \ No newline at end of file diff --git a/laravel-10.0/_benchmark/update.sh b/laravel-10.0/_benchmark/update.sh index a4d0562..aaf5f02 100755 --- a/laravel-10.0/_benchmark/update.sh +++ b/laravel-10.0/_benchmark/update.sh @@ -7,6 +7,6 @@ yes|cp -rf _benchmark/laravel/. ./ # some enhancements composer install --optimize-autoloader --no-dev chmod o+w storage/* -sudo chmod o+w storage/framework/* +chmod o+w storage/framework/* php artisan optimize rm ./public/.htaccess \ No newline at end of file From 35932008b595384d4fd28642883c3e464b4264da Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 13:14:39 +0200 Subject: [PATCH 23/24] Temporally disable artisan optimize Seems the problem --- laravel-10.0/_benchmark/setup.sh | 2 +- laravel-10.0/_benchmark/update.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/laravel-10.0/_benchmark/setup.sh b/laravel-10.0/_benchmark/setup.sh index bc9ac70..3668d35 100755 --- a/laravel-10.0/_benchmark/setup.sh +++ b/laravel-10.0/_benchmark/setup.sh @@ -11,5 +11,5 @@ yes|cp -rf _benchmark/laravel/. ./ composer install --optimize-autoloader --no-dev chmod o+w storage/* chmod o+w storage/framework/* -php artisan optimize +#php artisan optimize rm ./public/.htaccess \ No newline at end of file diff --git a/laravel-10.0/_benchmark/update.sh b/laravel-10.0/_benchmark/update.sh index aaf5f02..158d9e3 100755 --- a/laravel-10.0/_benchmark/update.sh +++ b/laravel-10.0/_benchmark/update.sh @@ -8,5 +8,5 @@ yes|cp -rf _benchmark/laravel/. ./ composer install --optimize-autoloader --no-dev chmod o+w storage/* chmod o+w storage/framework/* -php artisan optimize +#php artisan optimize rm ./public/.htaccess \ No newline at end of file From a821d4d1f1dbb41f1b6fd0f58fe29c6b0c195fc6 Mon Sep 17 00:00:00 2001 From: Joanhey Date: Sun, 23 Jul 2023 13:42:49 +0200 Subject: [PATCH 24/24] Add name to the job --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d656338..1e46c0d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,6 +3,7 @@ on: [ push, pull_request ] jobs: setup: + name: Check PHP frameworks runs-on: ubuntu-22.04 steps: